Boost.Multiprecision изо всех сил пытается реализовать std::цифровые_ограничения
для всех типов, насколько это возможно и значимо, потому что опыт с Boost. Мат показал, что это помогает переносимости.
Стандартная библиотека std::цифровые_ограничения
в разделе 18.3.2.
Это, в свою очередь, относится к стандарту C SC22/WG11 N507 ПРОЕКТ МЕЖДУНАРОДНЫЙ ISO/IEC STANDARD WD 10967-1 Язык информационных технологий Часть 1: Интегер и арифметика с плавающей точкой.
Этот стандарт C в свою очередь относится к
IEEE754 стандарт IEEE для бинарных Floating-Point Arithmetic
Есть полезное резюме на С++ ссылка.
Выбранный backend часто определяет, как полностью std::нумерные_ограничения
доступны.
Параметры компилятора, тип процессора и определение макросов или инструкций сборщика для управления денормальными числами изменят значения в таблицах, приведенных ниже.
![[Warning]](/img/warning.png) |
Warning |
GMP's mpf_t не имеет понятия переполненности: операции, которые приводят к перетеканию, в конечном итоге заканчиваются из ресурсов и заканчиваются с переполнением стека (часто через несколько секунд). |