On 8/28/2011 12:44 PM, David Nadlinger wrote:
It is already in D, and in an, in my personal opinion, much worse way: You can
just cast away const/immutable with cast().

True, but such is explicitly undefined behavior, and is not allowed in safe 
mode.


What do you propose for the situations where you need to cast away const? (Yes
you'll find yourself in one of them from time to time in the real world, e.g.
when dealing with legacy/C code…)

That's why D does allow this, in a user visible manner, rather than forcing one to do it in a backdoor manner (like using inline asm).


I know that this is not the general consensus, but I very much like the C++
casting operators, because you can quickly get a rough idea what is going on
when you see a cast in the code, whereas for D, cast() be anything between a
perfectly harmless downcast (if checking for null, obviously), changing the
storage class (const/immutable/shared), or causing the bytes stored to be
interpreted in a completely different way!

To cast away const, use:

   cast()expr

i.e. there is a special syntax for it.

Reply via email to