【发布时间】:2010-09-19 02:54:36
【问题描述】:
在 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 是否有一个好的、可移植的替代方案,在使用时会引发浮点异常?
【问题讨论】:
-
嗯...我正在玩这个,因为我现在很好奇,但我无法让我的提出异常。你做了什么来获得异常?
-
@JeffreyMartinez 这不是一个普通的 C++ 异常,如果你这么想的话。这是一个浮点异常:参见注释here。
标签: c++ floating-point nan