用于win32/Unix的C++ portable NaN

Sta*_*tan 2 c++ unix winapi gcc

在gcc库中,在数学库中定义了一个NaN,用于初始化未定义的双变量等情况.但是,这个NaN没有在win32 math lib中定义,我想知道是否有任何方法可以使这个便携式?基本上,我只想给"double"类型变量一个默认值.

Ada*_*erg 7

C++保证这0.0/0.0NaN,所以这是表达它的最简单方法.

请记住NaN != NaN,所以(0.0/0.0) == (0.0/0.0)实际上是假的.要测试NaN-ness,如果你没有某个库is_nan,只需要检查x != x一些候选人double x.


Ale*_*Sin 5

编写可移植C++代码时,请尝试使用标准库中定义的NaN <limits>.例如,double您可能想要使用的类型std::numeric_limits<double>::quiet_NaN().