Re: детектировать переполнения при целочисленных операциях
От: DiPaolo Россия  
Дата: 14.08.22 14:52
Оценка: 3 (1)
S>Какие есть ещё варианты?

1) ловить исключение. Стандартная библиотека это не поддерживает, но буст может:

The mathematical functions of the standard library components do not throw this exception (mathematical functions report overflow errors as specified in math_errhandling). Third-party libraries, however, use this. For example, boost.math throws std::overflow_error if boost::math::policies::throw_on_error is enabled (the default setting).

(https://en.cppreference.com/w/cpp/error/overflow_error)

2) заморочиться с логикой на битах. Типа, если у нас сложение, и старшие биты обеих чисел нули, то можно спокойно складывать целочисленно, ну и так далее для других операций.
Патриот здравого смысла
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.