LINUX.ORG.RU

История изменений

Исправление alysnix, (текущая версия) :

«ключег -ftrapv gcc для генерации кода перехвата переполнений» не входит в стандарт.

и что? по жизни нужны три вида арифметики - циклическая(игнорируем переполнение), с перехватом переполнения(сигналим) и с переносом (не сигналим, расширяем результат). может еще какие виды.

если все это вводить в стандарт - то как-то жирно получается.

а в плюсах, за счет переопределения операторов, вы можете нарисовать любую арифметику.

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

ps вот примерчик контроля переполнения. оверхед просто чудовищный. чтобы посмотреть, что будет без контроля - убрать -ftrapv из опций компилятора

https://godbolt.org/z/zv3Tbnvra

Исправление alysnix, :

«ключег -ftrapv gcc для генерации кода перехвата переполнений» не входит в стандарт.

и что? по жизни нужны три вида арифметики - циклическая(игнорируем переполнение), с перехватом переполнения(сигналим) и с переносом (не сигналим, расширяем результат). может еще какие виды.

если все это вводить в стандарт - то как-то жирно получается.

а в плюсах, за счет переопределения операторов, вы можете нарисовать любую арифметику.

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

вот примерчик контроля переполнения. оверхед просто чудовищный. чтобы посмотреть? что будет без контроля - убрать -ftrapv из опций компилятора

https://godbolt.org/z/zv3Tbnvra

Исходная версия alysnix, :

«ключег -ftrapv gcc для генерации кода перехвата переполнений» не входит в стандарт.

и что? по жизни нужны три вида арифметики - циклическая(игнорируем переполнение), с перехватом переполнения(сигналим) и с переносом (не сигналим, расширяем результат). может еще какие виды.

если все это вводить в стандарт - то как-то жирно получается.

а в плюсах, за счет переопределения операторов, вы можете нарисовать любую арифметику.

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