Могу ли я убедиться, что исключение не происходит при переполнении целочисленного miltiplication?

Я пишу код, который выполняет некоторую арифметику с длинными значениями, и он НЕ должен генерировать исключение переполнения.

Код должен быть скомпилирован как в Windows (Visual Studio), так и в Linux (ARM Linux).

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

Главное здесь:

1- Работает как на Windows, так и на Linux

2- Независимо от общей конфигурации проекта, этот раздел не должен генерировать исключение переполнения. (поэтому установка параметра в проекте не является хорошим решением).

1

Решение

Я не знаю ни о какой реализации, которая будет генерировать
исключение переполнения для выражений с целочисленным типом. Но
Вопрос в том, что вы хотите от этого. Все о Windows и
Компиляторы Linux, которых я знаю, просто молча дадут неправильное
результаты, и я не могу придумать ситуацию, когда это будет
предпочтительнее любой альтернатива.

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

0

Другие решения

Других решений пока нет …