Неопределенное поведение во время выполнения в стандарте C++C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Неопределенное поведение во время выполнения в стандарте C++

Сообщение Anonymous »

В разделе 3.50 последней версии стандарта C++ есть такое определение:

Код: Выделить всё

3.50[defns.undefined.runtime]runtime-undefined behavior
behavior that is undefined except when it occurs during constant evaluation
[Note 1: During constant evaluation,
it is implementation-defined whether runtime-undefined behavior results in the expression being deemed non-constant (as specified in [expr.const]) and
runtime-undefined behavior has no other effect.
— end note]
Что касается претензии:

Код: Выделить всё

runtime-undefined behavior has no other effect.
Какова правильная интерпретация?
Я понимаю, что это утверждение в целом означает, по сути, следующее:

неопределенное поведение во время выполнения не является неопределенным во время постоянной оценки. вы можете либо сказать, что он непостоянный и не выполнить компиляцию И, несмотря ни на что, это не должно иметь никакого другого эффекта

Мне неясно, что означает отсутствие другого эффекта.
Одна из возможных интерпретаций заключается в том, что если вы все равно решите вычислить его и считать выражение константой, оно не должно повлиять на остальную часть программы за пределами этого выражения.

Подробнее здесь: https://stackoverflow.com/questions/793 ... c-standard
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»