Просто используйте WeakReferences
для отбрасываемых результатов, тогда они будут отброшены, если необходимо, по соображениям пространства.
Посмотрите на -ftrapv
и -fwrapv
:
-ftrapv
Эта опция генерирует ловушки для переполнения со знаком при сложении, вычитании, операции умножения.
-fwrapv
Этот параметр заставляет компилятор предполагать, что знаковое арифметическое переполнение сложения, вычитания и умножения оборачивается с использованием представления с двойным дополнением. Этот флаг включает некоторые оптимизации и отключает другие. Эта опция включена по умолчанию для внешнего интерфейса Java, как того требует спецификация языка Java.
См. Также Целочисленное переполнение в C: стандарты и компиляторы и Полезные флаги GCC для C .
clang теперь поддерживает динамические проверки переполнения для целых чисел со знаком и без знака. Смотрите переключатель -fsanitize = integer . На данный момент это только один компилятор C ++ с полностью поддерживаемой динамической проверкой переполнения для целей отладки.