What guarantees does D 'const' provide, compared to C++?

Mehrdad wfunction at hotmail.com
Thu Aug 16 18:51:36 PDT 2012


On Friday, 17 August 2012 at 01:33:29 UTC, Chris Cain wrote:
> Also, if the only view of the data you have is that const view, 
> it's effectively the same as immutable (it couldn't be changed 
> by any valid code).


So you're saying casting away a const _pointer_ is undefined, 
even if the target was originally created as mutable. (Otherwise, 
the code would certainly be "valid", just like in C++.)


Which means you can effectively _never_ cast away constness of a 
pointer/reference, no matter how certain you are about the target 
object, right?

If you did, then the code would be invalid, and the compiler 
could simply format your C: drive instead of modifying the object.

If so, then why is such an undefined cast allowed in the first 
place?


More information about the Digitalmars-d mailing list