const_cast и UB

$ 5.2.11 / 7 - "[Примечание: в зависимости от тип объекта, операция записи через указатель, lvalue или указатель к члену данных в результате const_cast, который отбрасывает const-qualifier68) может производить неопределенное поведение (7.1.5.1). ] "

Формулировки этого раздела (C ++ 03) меня удивляют. Удивительны две вещи.

а) Во-первых, использование слова« может ». Почему это« может »? Другое места в Стандарте очень точно определяют поведение undefined

б) Почему отказ от константности изначально константного объекта не сразу «неопределенное поведение». Почему для запуска UB требуется запись ?

5
задан Chubsdad 28 October 2010 в 11:55
поделиться