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