История изменений
Исправление
hateyoufeel,
(текущая версия)
:
нормальный вариант - отлавливать такие ошибки в компилтайме - но не понятно, как
Да вполне понятно как. Я видел подобные проверки на жидком хацкелле и FramaC.
http://blog.frama-c.com/index.php?post/2012/02/10/Overflow-checking
Вот даже целый пост по теме.
Алсо, если не хочется возни с SMT-солверами и прочим матаном, можно просто сделать, чтобы сложение и умножение выдавали результат большего типа. Например, int64*int64 -> int128 и т.п.
Исходная версия
hateyoufeel,
:
нормальный вариант - отлавливать такие ошибки в компилтайме - но не понятно, как
Да вполне понятно как. Я видел подобные проверки на жидком хацкелле и FramaC.
http://blog.frama-c.com/index.php?post/2012/02/10/Overflow-checking
Вот даже целый пост по теме.