On Tuesday, 12 July 2016 at 05:15:09 UTC, Shachar Shemesh wrote:
C++ fully defines when it is okay to cast away constness, gives you aids so that you know that that's what you are doing, and nothing else, and gives you a method by which you can do it without a cast if the circumstances support it.

D says any such cast is UB.

Shachar

Yeah C++ defines how you can modify const data after saying you can never modify data from a const qualified access path. §7.1.​6.1/3[1]

I still haven't found someone who can explain how C++ can define the behavior of modifying a variable after casting away const. Sure it says that if the original object was mutable (not stored in ROM) than you can modify it, but that is true of D as well, but the language doesn't know the object is not stored in ROM so it can't tell you what it will do when you try to modify it, only you can.

1. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4296.pdf

Reply via email to