Почему знаковое переполнение из-за вычислений по-прежнему неопределенное поведение в C++20C++

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

Сообщение Anonymous »

Благодаря этому ответу я узнал, что:

Знаковое переполнение из-за вычислений все еще является неопределенным поведением< /strong> в C++20, тогда как знаковое переполнение из-за преобразования четко определено в C++20 (который был реализацией, определенной для версий до C++20).

И это изменение в знаковом переполнении из-за преобразования связано с тем, что компиляторы C++20 требуют использования дополнения до 2.
Мой вопрос:
Если компиляторы обязаны использовать дополнение до 2 из C++20, то почему не происходит знакового переполнения из-за вычисление четко определено, как и для знакового переполнения из-за преобразования?
То есть, почему (как) существует разница между переполнением из-за вычисления и переполнением из-за преобразования. По сути, почему эти два типа переполнения обрабатываются по-разному.

Подробнее здесь: https://stackoverflow.com/questions/708 ... ior-in-c20
Ответить

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

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

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

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

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