On Friday, 17 October 2014 at 14:18:31 UTC, monarch_dodra wrote:
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@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

What happends if we will ignore const/immutable modifier for postblits? Is it create any holes?

Reply via email to