3

有没有办法在常量表达式中模拟 nan/inf 而没有!使用 C 宏 HUGE_VAL 和 INFINITY 或任何其他的!另外,即使有它们,它仍然不是 constexpr。

我不希望使用 C++ 标准库或 C 标准库提供的任何标准函数。

当然,以下不会编译。编译器说 constexpr 变量必须用常量表达式初始化......

template<typename T = double>
constexpr T NaN = T(0.0 / 0.0);

MSVC 编译器使用的方法也无法编译:

template<typename T = double>
constexpr T NaN = T(1e+300); //with some changes, apparently having the float overflow

我知道这有点宽泛,但这是针对图书馆的,我正在寻找一些有根据的建议!谢谢!

4

0 回答 0