Заголовок<<boost/cstdfloat.hpp>
>обеспечиваетНеобязательноСтандартизированная плавающая точка<typedef
>[править править код]. Они полезны для написания портативного кода, потому что они должны вести себя одинаково на всех платформах. Эти<typedef
>являются аналогом целочисленных чисел с плавающей точкой в<<cstdint>
>и<stdint.h
>.
<typedef
>s основаны наN3626, предложенных для нового стандартного заголовка C++14<<cstdfloat>
>, иN1703, предложенных для нового стандартного заголовка языка C<<stdfloat.h>
>.
Все<typedef
>s находятся в<namespaceboost
>(будет в пространстве имен<std
>, если в конечном итоге стандартизированы).
<typedef
>s включают<float16_t,float32_t,float64_t,float80_t,float128_t
>, их соответствующие наименьшие и быстрые типы и соответствующий тип максимальной ширины.<typedef
>s основаны на базовых встроенных типах, таких как<float
>,<double
>или<long
double
>, или предлагаемомтипе короткого поплавка N2016, или на основе других нестандартизированных типов, специфичных для компилятора, таких как<__float128
>. Основные типы этих<typedef
>s должны соответствовать соответствующим спецификациям бинарных 16, бинарных 32, бинарных 64 и бинарных 128 вIEEE_floating_pointв формате с плавающей точкой и<std::numeric_limits<>::is_iec559
==true
>.
128-битный тип с плавающей точкой (большой интерес к научному и численному программированию) не требуется в заголовке Boost и не может быть предоставлен для всех платформ / компиляторов, потому что поддержка компилятора для 128-битного типа с плавающей точкой не требуется ни стандартом C, ни стандартом C++.
Если поддерживается 128-битная плавающая точка, то включение<boost/cstdfloat.hpp
>обеспечиваетнативный128-битный тип и включает в себя другие заголовки в папке<boost/math/cstdfloat
>, которые обеспечивают четырехъядерную поддержкуC математических функцийв<<cmath>
>,<<limits>
>,<<iostream>
>,<<complex>
>и доступных типах плавающей точки.
Можно также, более надежно, включить<boost/multiprecision/float128.hpp
>, и это обеспечивает тонкую обертку, выбирающую подходящий 128-битный нативный тип из<cstdfloat
>, если он доступен, или 128-битный многоточный тип.
См.Янке-Эмден-Ламбда пример функциидля примера, использующего как функцию<<cmath>
>, так и усилитель. Математическая функция для оценки умеренно интересной функции, функцияЯнке-Эмден-Ламбдаинормальное распределениев качестве примера статистического распределения от Boost. Математика.