how would D be different if string were const(char)[]?

Dicebot public at dicebot.lv
Thu Oct 17 15:41:14 PDT 2013


On Thursday, 17 October 2013 at 19:53:34 UTC, Jonathan M Davis 
wrote:
> For value types, there's no real difference between immutable 
> and const.
> Because they're value types, you can't have mutable references 
> to them. The
> differences between const and immutable only really come into 
> play once you're
> dealing with reference types, because then you can end up with 
> differently
> qualified references to the same data.

It is important to make clarify that this is true only for 
directly accessible value types. Once any single level of 
indirection is in question, `const` stops giving any guarantees. 
This is exactly the case for `const(char)[]` vs `immutable(char)` 
- `const(char)` itself is a value type but pointer to 
`const(char)` can also store pointer to mutable `char`.


More information about the Digitalmars-d-learn mailing list