複素数をサポートする 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 では、complex の実装が _Isinf や _Isnan などの内部関数で double にキャストしようとするため、エラー C2440 が発生します。
これは私の側のエラーですか?どうすればこれを修正できますか? より良いライブラリはありますか?