Я понимаю, что стандарты до C ++ 20 не определяют представление подписанных целых чисел. Следовательно, когда оставляют отрицательное число, результат не определен, поскольку это зависит от базового представления. Однако, почему, когда дело доходит до правильного сдвига, поведение становится определяемой реализацией, а не неопределенным? Разве результат все еще не зависит от базового представления?
Подробнее здесь: https://stackoverflow.com/questions/795 ... defined-be
Мобильная версия