dynamic arrays of immutable question: Are the elements actually mutable
monarch_dodra
monarchdodra at gmail.com
Wed Jan 9 10:04:40 PST 2013
On Wednesday, 9 January 2013 at 17:22:25 UTC, ollie wrote:
> My question is about immutable and casting in general. I've
> heard Walter
> say of immutable, "Turtles all the way down.". If say I have a
> plug-in
> system with a defined interface and I pass it an immutable
> array (ie
> immutable(int)[]) then it uses a cast to mutate, that seems to
> defeat the
> purpose of immutable. When the plug-in returns, I now have an
> immutable
> array that has been mutated. Is this how immutable and casting
> are
> supposed to work?
Seems you are raising two different issues:
"Turtles all the way down" means the immutability is transitive.
For example, an "immutable(int*)" means both the pointer AND
pointee are immutable. This is in contrast to C++, where you can
have a const pointer to non const data. This is impossible in D.
As for the cast question: Casting is a means to do *anything* you
want, no guarantees. If you want to do something illegal, there's
no one left to stop you. Not really any different from C++
actually.
More information about the Digitalmars-d-learn
mailing list