是否有可能在x86 Linux上将浮点异常(信号)转换为C++异常?
这是出于调试目的,因此非可移植性和不完美性是可以的(例如,如果不能100%保证所有析构函数都被调用).
在查看关于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;
Run Code Online (Sandbox Code Playgroud)
numeric_limits<double>::has_signaling_NaN 计算结果为true,因此它在我的系统上实现.
有任何想法吗?
我正在使用ms visual studio .net 2003的C++编译器.我回家时想在另一个地方测试它.
谢谢!
如何在Borland C++中使用NaN初始化数字?
复制:在C++中使用NaN?