Есть много вопросов об обнаружении целочисленного переполнения перед фактическим добавлением/вычитанием из-за возможного undefined behavior
. Итак, мой вопрос:
Почему он будет производить этот undefined behavior
в первую очередь?
Я могу думать о 2 причинах:
1) Процессор, который генерирует исключение в этом случае. Конечно, он может быть отключен, и, скорее всего, это хорошо написанный CRT сделает это.
2) Процессор, который использует другие двоичные представления чисел (1 дополнение? base 10?). В этом случае поведение undefined будет проявляться как отличный результат (но не будет сбой!). Ну, мы могли бы жить с этим.
Итак, почему кто-то избегает его? Я что-то пропустил?