Это какое-то неопределенное поведение с const_cast?
blockquote>Да, ваша программа содержит неопределенное поведение.
Это означает, что вы не можете ожидать каких-либо ожиданий на его выходе. Причина дается в параграфе 7.1.6.1/4 стандарта C ++ 11:
За исключением того, что любой член класса, объявленный
blockquote>mutable
(7.1.1), может быть изменен, любая попытка изменить объектconst
в течение его времени жизни (3.8) приводит к неопределенному поведениюВ параграфе 5.2.11 / 7 на
const_cast
содержится еще одно предупреждение:[ Примечание : в зависимости от типа объекта, операция записи через указатель, lvalue или указатель на элемент данных, полученный в результате
blockquote>const_cast
, который отбрасываетconst
-квитатор, может производить неопределенное поведение (7.1.6.1). - end note ]