On Mon, 09 Aug 2010 10:11:39 -0400, Don <nos...@nospam.com> wrote:

Steven Schveighoffer wrote:
On Sun, 08 Aug 2010 17:56:25 -0400, simendsjo <simen.end...@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?
 -Steve

I think you're wrong. It's OK to cast away const, as long as you don't modify the thing which is supposed to be const. But if you modify it, there's no way the compiler can guarantee that your code will work. Anything could happen.

But then what is the point of casting away const? If you are not going to modify it, then there is no reason to cast it away.

What about how Rebindable works? It doesn't exactly cast away const, it uses a union, but the effect is the same. Is this OK simply because a union is used?

Also, see my reply to bearophile, with hypothetical example.

-Steve

Reply via email to