Я пишу код, который выполняет некоторую арифметику с длинными значениями, и он НЕ должен генерировать исключение переполнения.
Код должен быть скомпилирован как в Windows (Visual Studio), так и в Linux (ARM Linux).
Существует ли какая-либо директива прагмы или времени компиляции, которую я могу использовать, чтобы сообщить компиляции, что она не должна генерировать исключение переполнения для этого конкретного кода.
Главное здесь:
1- Работает как на Windows, так и на Linux
2- Независимо от общей конфигурации проекта, этот раздел не должен генерировать исключение переполнения. (поэтому установка параметра в проекте не является хорошим решением).
Я не знаю ни о какой реализации, которая будет генерировать
исключение переполнения для выражений с целочисленным типом. Но
Вопрос в том, что вы хотите от этого. Все о Windows и
Компиляторы Linux, которых я знаю, просто молча дадут неправильное
результаты, и я не могу придумать ситуацию, когда это будет
предпочтительнее любой альтернатива.
Обычный способ решения такой проблемы — использование
предварительные проверки перед началом расчетов. Вы
знать расчеты, которые будут сделаны, так что вы можете
определить диапазон значений, которые можно безопасно обрабатывать
без переполнения, и вы убедитесь, что вход находится в этом диапазоне
до начала.
Других решений пока нет …