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

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

Сообщение Anonymous »

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

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

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

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

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