如何解决FE_ALL_EXCEPT 不等于按位或其他异常
我正在尝试将 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 举报,一经查实,本站将立刻删除。