I have found this section in the cpp_dec_float source file:
struct initializer
{
initializer()
{
cpp_dec_float<Digits10, ExponentType, Allocator>::nan();
cpp_dec_float<Digits10, ExponentType, Allocator>::inf();
(cpp_dec_float<Digits10, ExponentType, Allocator>::min)();
(cpp_dec_float<Digits10, ExponentType, Allocator>::max)();
cpp_dec_float<Digits10, ExponentType, Allocator>::zero();
cpp_dec_float<Digits10, ExponentType, Allocator>::one();
cpp_dec_float<Digits10, ExponentType, Allocator>::two();
cpp_dec_float<Digits10, ExponentType, Allocator>::half();
cpp_dec_float<Digits10, ExponentType, Allocator>::double_min();
cpp_dec_float<Digits10, ExponentType, Allocator>::double_max();
cpp_dec_float<Digits10, ExponentType, Allocator>::long_double_max();
cpp_dec_float<Digits10, ExponentType, Allocator>::long_double_min();
cpp_dec_float<Digits10, ExponentType, Allocator>::long_long_max();
cpp_dec_float<Digits10, ExponentType, Allocator>::long_long_min();
cpp_dec_float<Digits10, ExponentType, Allocator>::ulong_long_max();
cpp_dec_float<Digits10, ExponentType, Allocator>::eps();
cpp_dec_float<Digits10, ExponentType, Allocator>::pow2(0);
}
void do_nothing(){}
};
I'd like to use some of those values such as zero, one, two, and half rather than declaring global const variables.
Is it possible to use those values inline? If so, how?
#include <boost/multiprecision/number.hpp>
#include <boost/multiprecision/cpp_dec_float.hpp>
#include <iostream>
namespace mp = boost::multiprecision;
int main()
{
typedef mp::number<mp::cpp_dec_float<100>> mp_type;
mp_type test_num("7.0710678");
test_num *= mp_type.two();
std::cout << test_num.str( 0, std::ios_base::scientific ) << '\n';
}
boost::multiprecision::numberrepeats its first template argument as a public member typebackend_type. So,