можно было изменить const value, с помощью undefined behaviour, то остался ли до сих пор такой способ с использованиями новых стандартов?
Если раньше это было возможно:
int a = 1;
const int& b = a; // I promise I will not change
a = 3; // I am a liar, I am now 3
cout << b; // As I will now show 3
То сейчас в процессе выполнения появляется Exception thrown: write access violation.
Можно ли такое же как-то провернуть сейчас?
Ну дак, что изменилось? Ты словил undefined behavior, как и тогда ловил.
И сейчас можно, но не нужно. И раньше можно было. Естественно, всё через UB.
Михаил, у тебя тут нет UB в приведённом коде, и он НЕ МОЖЕТЬ вызвать описанное тобой исключение. Поэтому, если есть проблемы, опубликуй реальный или более близкий к реальному код.
Вопрос поставлен некорректно, использование уб противоречит использованию стандарта
Обсуждают сегодня