问题描述
我正在尝试将 EA61
设置为对除 feenableexcept
和 FE_INEXACT
之外的所有内容抛出异常。
但是,如果我使用 FE_UNDERFLOW
,下溢仍然会引发异常。如果我改为使用 feenableexcept( FE_ALL_EXCEPT & ~FE_INEXACT & ~FE_UNDERFLOW )
,那么他们不会。
我认为这些是等价的,但在我的编译代码中,似乎 feenableexcept( FE_DIVBYZERO | FE_INVALID | FE_OVERFLOW )
不 等于 FE_ALL_EXCEPT
。前者的值为 FE_DIVBYZERO | FE_INVALID | FE_OVERFLOW | FE_INEXACT | FE_UNDERFLOW
,后者的值为 63
(从下面的代码片段中获取的值)。
是否还有我遗漏的 61
异常宏?有什么方法可以查看或打印列表吗?使用 FE_
似乎对我有用,但我想了解两者之间的区别。
编译器:英特尔(Intel(R) C++ g++ 4.8 模式)
C++ 版本:C++11
feenableexcept( FE_DIVBYZERO | FE_INVALID | FE_OVERFLOW )
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)