Почему целочисленное переполнение без знака определяется поведением, а переполнение со знаком - нет?

Целочисленное переполнение без знака хорошо определяется стандартами C и C ++. Например,Стандарт С99 (§6.2.5/9) состояния

Вычисления с участием беззнаковых операндов никогда не могут переполниться, потому что результат, который не может быть представлен результирующим целочисленным типом без знака, уменьшается по модулю на число, которое на единицу больше наибольшего значения, которое может быть представлено результирующим типом.

Однако оба стандарта утверждают, что целочисленное переполнение со знаком является неопределенным поведением. Опять из стандарта С99 (§3.4.3/1)

Примером неопределенного поведения является поведение на целочисленном потоке

Есть ли историческая или (еще лучше!) Техническая причина этого несоответствия?

Ответы на вопрос(5)

Ваш ответ на вопрос