Boost multiprecision失败是因为complex的实现试图在_Isinf或_Isnan等内部函数中强制转
Boost multiprecision fails because the implementation of complex tries to cast to double in internal functions like _Isinf or _Isnan
我需要一个类似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。
这是我的错误吗?我该如何解决这个问题?有没有更好的图书馆?
From c++ 116.4/2:
为任何其他类型实例化模板复合体的效果
所以你不能可靠地将std::complex
与其他类型一起使用,但也许boost有一个complex
类型与cpp_dec_float_50
一起工作。
GCC 4.7将允许您在std::complex<>
中使用升压多精度浮点数
相关文章:
- 为什么std::isnan 不是 constexpr?
- CUDA:重载函数"isnan"的多个实例
- 为什么 std::isnan() 对于具有 NAN 值的双变量返回 false
- 为什么 g++ 4.9.0 默认有 std::isnan?
- 如何使用glm :: isnan()
- 整型的 std::isnan 和 std::isinf 的重载
- val != std::numeric_limits:<double>:infinity() 或 !isinf(val) 或 isfinite(val)
- STD :: Isnan尚未被宣布为G -5
- 浮点格式和isinf()
- 为什么对isnan的呼吁并不含糊?a.k.a.关键字使用引入两次相似的函数声明
- 为什么我不能在C++生成器中编译 IsNan
- "isNaN(INFINITY)==false"是假的
- 为什么 isnan、isinf 和 isfinite 返回 int 而不是布尔值
- isnan 是否在 std:: 命名空间中?更一般地说,何时是 std::必要、可选或要避免
- IsNan vs价值!=64位的VS2010上的值
- 如何将isnan用作std::find_if(c++11)的谓词函数
- isnan()函数的实现
- c++中函数bool isnan(…)的定点实现
- <cmath> 在 C++14 / C++11 中隐藏 Isnan<math.h>?
- std::isinf不适用于-fast数学.如何检查无穷大