namespace boost{ namespace multiprecision{
template <unsigned Digits10>
class gmp_float;
typedef number<gmp_float<50> > mpf_float_50;
typedef number<gmp_float<100> > mpf_float_100;
typedef number<gmp_float<500> > mpf_float_500;
typedef number<gmp_float<1000> > mpf_float_1000;
typedef number<gmp_float<0> > mpf_float;
}}
Шаблон класса gmp_float
соответствует всем требованиям для типа Backend. Его члены и функции, не являющиеся членами, умышленно не документируются: они считаются деталями осуществления, которые подлежат изменению.
Класс имеет один параметр шаблона - Digits10
- это число десятичных цифр точности, которую должен поддерживать тип. Когда этот параметр равен нулю, то точность может быть установлена в рабочее время через номер::default_precision
и Номер:: точность>. Обратите внимание, что этот тип никоим образом не меняет глобальное состояние библиотеки GMP (например, он не меняет точность по умолчанию типа данных mpf_t), поэтому вы можете безопасно смешивать этот тип с существующим кодом, который использует GMP, а также смешивать gmp_float
с различной точностью.
Тип number_category<cpp_int<Args...> >::type
является mpl::int_<Номер_kind_floating_point>
.
Более подробную информацию об этом типе можно найти в tutorial.