Head Const

Ola Fosheim Grøstad via Digitalmars-d digitalmars-d at puremagic.com
Tue Feb 16 21:56:41 PST 2016


On Wednesday, 17 February 2016 at 02:51:06 UTC, Walter Bright 
wrote:
> The trouble with that is you're relying on the programmer to 
> ensure correctness. It'll revert D to C++ "trust the 
> programmer" semantics.

You might end up in a worse position than C++, as people will 
cast away constness / immutability in third party libraries to 
get around the limitations.

C++ added "mutable" keyword for a reason... with head const which 
is much less limiting to begin with...


> Furthermore, with the current mechanical guarantee of 
> immutability, it opens up the possibility of relying on such 
> beyond merely observable behavior - such as immutable data 
> being placed in ROM, or special GC semantics.

A nonissue.

1. The compiler has access to all reachable types. It can easily 
determine if there are reachable types with @mutable fields.

2. This is not a good argument for transitivity of immutability 
as head-immutability is sufficient.



More information about the Digitalmars-d mailing list