История изменений
Исправление vbr, (текущая версия) :
Что с ним не так? Переполнение не является UB, если что, компилятор не начнёт выдавать безумные оптимизации, если увидит что-то вроде if (a+1 < a)
Возможно я не очень понял, о чём ты пишешь, но он буквально это и делает: https://godbolt.org/z/zYrer5oY7 т.е. он просто выкидывает тело условного оператора. Если заменить int a на unsigned a то условие остаётся.
Иными словами компилятор считает, что условие a + 1 < a никогда не является истинным, если переменная a является знаковым целым числом. Хотя, конечно же, на практике это может случиться.
Исходная версия vbr, :
Что с ним не так? Переполнение не является UB, если что, компилятор не начнёт выдавать безумные оптимизации, если увидит что-то вроде if (a+1 < a)
Возможно я не очень понял, о чём ты пишешь, но он буквально это и делает: https://godbolt.org/z/zYrer5oY7 т.е. он просто выкидывает тело условного оператора. Если заменить int a на unsigned a то условие остаётся.