Casting away const

Steven Schveighoffer schveiguy at yahoo.com
Mon Aug 9 07:48:38 PDT 2010


On Mon, 09 Aug 2010 10:24:56 -0400, BCS <none at anon.com> wrote:

> Hello Steven,
>
>> On Sun, 08 Aug 2010 17:56:25 -0400, simendsjo
>> <simen.endsjo at pandavre.com>  wrote:
>>
>>> I'm totally new to the const/immutable thing, so this might be a
>>> naive  question..
>>>  The spec says:
>>> "modification after casting away const" => "undefined behavior"
>> I thought it was "you're on your own", not undefined behavior.  The
>> former  implies there is some "right" way to do this if you know more
>> about the  data than the compiler, the latter implies that there is no
>> right way to  cast away const.  Am I wrong?
>
> I think you are right re the meaning of those terms but I think what you  
> thought it to be is more along the lines of what is correct. I /think/  
> the situation is that there are things that will work reliably and  
> things that result in undefined behavior and you're on your own figuring  
> out what is what.

I'm sort of interpreting what you're saying is:

In some cases, you can cast away const and modify the variable with no  
adverse effects, but we can't tell you which cases those are.

Which is kind of like saying "yes, casting away const is allowed, but only  
people who wrote the compiler can do it".

-Steve


More information about the Digitalmars-d-learn mailing list