const(Class) is mangled as Class const* const
Jerry via Digitalmars-d
digitalmars-d at puremagic.com
Sun Mar 26 11:31:52 PDT 2017
On Sunday, 26 March 2017 at 15:29:02 UTC, Jonathan M Davis wrote:
> Personally, I don't think that the fact that you can't use
> const for head-const in D is really a loss, since it's almost
> never what you want. Tail-const is _way_ more useful. But it is
> true that by making D's const fully transitive, there are
> variations of constness that C++ can do that D can't. immutable
> pretty much forces that though, and it does simplify the
> language.
There are quite a few things wrong with const, it's so bad phobos
isn't even const-correct when it should be. In cmp() for example,
if you pass a lambda that takes the parameters by reference. You
will be modifying temporary values that cmp() created on the
stack. These should be const, but then what if it is a pointer?
It is a different situation and you don't really want const cause
you are going to be modifying the correct struct (the one pointed
to). It is just easier to not use const in D cause it makes your
code more difficult to actually use. That's exactly what Phobos
does, it ignores const for the most part because it is easier not
to use it.
More information about the Digitalmars-d
mailing list