Persistent list
Ola Fosheim Grøstad via Digitalmars-d
digitalmars-d at puremagic.com
Sun Nov 15 11:20:16 PST 2015
On Sunday, 15 November 2015 at 18:36:20 UTC, Jonathan M Davis
wrote:
> was originally defined to be const". And in general, _very_ few
> objects are likely to be constructed as const.
It is common in constructors.
> So, in general, in C++, you can cast away const and mutate as
> much as you'd like.
Well, since it is "shared const", the compiler cannot assume that
another thread does not write to the object without whole program
analysis. Which leaves the compiler writer with less incentive to
do things differently because the object is const locally. Not
sure if the FAQ reflects the standard or what current compilers
do.
I would expect it to change in the future though, since whole
program analysis is becoming more and more realistic. The FAQ
also end with this statement:
«Please don’t write saying version X of compiler Y on machine Z
lets you change a non-mutable member of a const object. I don’t
care — it is illegal according to the language and your code will
probably fail on a different compiler or even a different version
(an upgrade) of the same compiler. Just say no. Use mutable
instead. Write code that is guaranteed to work, not code that
doesn’t seem to break.»
More information about the Digitalmars-d
mailing list