如何在C++中使用NaN最佳方法?
我发现了std::numeric_limits<double>::quiet_NaN()
和std::numeric_limits<double>::signaling_NaN()
。我想要使用signaling_NaN
来表示未初始化的变量,如下所示:
double diameter = std::numeric_limits<double>::signaling_NaN();
然而,这会在赋值操作时发出信号(引发异常)。我希望它在使用时引发异常,而不是在赋值时。
有没有办法在指定 signaling_NaN
时不引发异常? 是否有一个很好的、可移植的替代 signaling_NaN
,在使用时会引发浮点异常?