Мне нужна BSD-подобная лицензионная библиотека C (++) с поддержкой точных чисел, поэтому я попытался повысить ее.
Сбой следующего кода:
#include <boost/multiprecision/cpp_dec_float.hpp>
#include <complex>
using namespace boost::multiprecision;
std::complex<cpp_dec_float_50>(1.0, 2.0) / std::complex<cpp_dec_float_50>(1.0, 2.0)
в Visual Studio 2012 с ошибкой C2440, потому что реализация сложных пытается привести к удвоению во внутренних функциях, таких как _Isinf или _Isnan.
Это ошибка с моей стороны? Как я могу это исправить? Есть ли лучшие библиотеки?
Из C ++ 11 26,4 / 2:
Эффект создания шаблона комплекса для любого другого типа
чем float, double или long double не указано.
Таким образом, вы не можете надежно использовать std::complex
с другими типами, но, возможно, повышение имеет complex
тип, который работает с cpp_dec_float_50
,
GCC 4.7 позволит вам использовать расширенные мультиточные поплавки с std::complex<>
,