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

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

Сообщение Anonymous »

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

3.50[defns.undefined.runtime]runtime-undefined поведение
Поведение, которое не определено, за исключением случаев, когда оно возникает во время постоянной оценки
[Примечание 1: Во время постоянной оценки
определяется реализацией, приводит ли поведение, неопределенное во время выполнения, к выражению считается непостоянным (как указано в [expr.const]), и
неопределенное поведение во время выполнения не имеет другого эффекта.
— последнее примечание]
По поводу претензии:

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

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++»