On Friday, 17 August 2012 at 00:13:58 UTC, bearophile wrote:
Mehrdad:

On the note of casting away const, I don't believe that is the operation which is undefined, however modifying const is undefined as it could be pointing to immutable data.

Oh, then that's not what I'd understood. Seems just like C++ then.

Are you sure?


Yes, I'm pretty sure that something like

        const int x = 5;
        int* p = const_cast<int*>(&x);
        *p = 6;

is undefined behavior, because x is a const object.

However,

        int y = 5;
        const int& x = y;
        int* p = const_cast<int*>(&x);
        *p = 6;

is well-defined, because the object is mutable.



At least, that's my understanding of C++; feel free to correct me if I'm wrong.

Reply via email to