在查看了关于 SO(在 C++ 中使用 NaN)的另一个问题后,我开始好奇std::numeric_limits<double>::signaling_NaN()
。
我无法让signaling_NaN 引发异常。我想也许通过发出信号它真的意味着一个信号,所以我尝试捕捉 SIGFPE 但不......
这是我的代码:
double my_nan = numeric_limits<double>::signaling_NaN();
my_nan++;
my_nan += 5;
my_nan = my_nan / 10;
my_nan = 15 / my_nan;
cout << my_nan << endl;
numeric_limits<double>::has_signaling_NaN
评估为真,所以它在我的系统上实现。
有任何想法吗?
我正在使用 ms visual studio .net 2003 的 C++ 编译器。我回家后想在另一个上测试它。
谢谢!