我需要一个支持复数的类似 BSD 的许可 C(++) 多精度库,所以我尝试了 boost。
以下代码失败:
#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,因为 complex 的实现尝试在 _Isinf 或 _Isnan 等内部函数中强制转换为 double。
这是我的错误吗?我怎样才能解决这个问题?有更好的图书馆吗?