struct foo
{
const int A;
int B;
foo() : A(10), B(20) {}
};
void main()
{
foo f1;
const_cast<int&>(f1.A) = 4; //line 1
const foo f2;
const_cast<int&>(f2.B) = 4; //line 2
}
Обе линии 1 и 2 демонстрируют неопределенное поведение?Поведение было бы другим, если бы f1
и f2
были shared_ptr
типов, перечисленных в коде выше?