On 09/23/2011 08:21 PM, Mehrdad wrote:
Er, you answered a question about const with an answer about immutable. :\
My point is, what in the world does transitive const have to do with
transitive immutable?
Can't you have immutable(T) be transitive while const(T) being "normal",
as in C/C++? If not, why not?
const(T)
/ \
/ \
/ \
/ \
/ \
immutable(T) T
const(T) is a common 'supertype' of immutable(T) and T.
D const means: This could be immutable or mutable. You are not allowed
to change it because it might be immutable.
C++ const means: This is head-const and you are not allowed to call any
non-const member functions on that object, well, unless you cast away const.
The two concepts are different. D const is transitive because immutable
is transitive.