是否可以在 x86 Linux 上将浮点异常(信号)转换为 C++ 异常?
这是出于调试目的,因此不可移植性和不完善性是可以的(例如,如果不能 100% 保证调用所有析构函数)。
如果您的 C++ 标准库实现支持 TR1 函数fetestexcept
, feraiseexcept
and feclearexcept
(我的还没有,所以我无法测试这一点)您可以检测五种浮点错误,然后您可以抛出任何您想要的异常。
See here http://en.cppreference.com/w/cpp/numeric/fenv有关这些功能的说明。
我还推荐本书的第 12.3 节“管理浮点环境”C++ 标准库扩展:教程和参考作者:Pete Becker,ISBN-13:9780321412997,通过示例代码对这些函数进行了精彩的描述。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)