Postblit bug
monarch_dodra via Digitalmars-d
digitalmars-d at puremagic.com
Fri Oct 17 07:18:30 PDT 2014
On Friday, 17 October 2014 at 00:55:25 UTC, ketmar via
Digitalmars-d wrote:
> On Fri, 17 Oct 2014 00:42:24 +0000
> IgorStepanov via Digitalmars-d <digitalmars-d at puremagic.com>
> wrote:
>
>> Can someone comment this code? Should I think that it's a bug.
> it's just an anomaly. const postblit can do alot of things
> besides
> adjusting struct fields, and it's logical that compiler cannot
> call
> non-const methods for const objects.
>
> yet it's still on of those "unforseen consequences" that arises
> from
> conjunction of different features.
>
> i don't think that it's a bug, but i think that this must be
> discussed
> anyway, and then documented.
AFAIK, Kenji has submitted a DIP, and has begun working on
"fixing" the const/immutable/inout posblit issue.
However, there are some very subtle corner cases, so (afaik) work
is slow.
To be honest, I think people use "const" way too much in D. It's
*not* the C++ head const you can use anywhere. It's really just
the "base" attribute between mutable and immutable data. In
particular, due to the transitive nature of const, any time you
use const it means "you can't modify this, or anything produced
or acquired from this, ever". It's usually not what people think
they are signing for...
When it makes little sense to have your type as immutable, then I
don't think you should bother much
More information about the Digitalmars-d
mailing list