Dav*_*ave 9 c++ floating-point nan floating-point-exceptions visual-studio
我已经将Visual Studio配置为通过_controlfp函数抛出浮点异常.这适用于NAN和INF,但不适用于QNAN.即安静的NaNs不会引发异常.Visual Studio 2008/2010是否有任何函数或配置选项会强制QNAN为NAN,以便它们抛出异常?
一些有用的提示,尽管我从来没有远程做过这样的事情:
阅读: http: //www.cisl.ucar.edu/docs/trap.error/errortypes.html
在互联网上搜索的结果(我实际上只花了大约 30 秒),让我相信这通常是通过编译器选项启用的。
然而,我似乎还记得这种陷阱的启用/禁用可以通过编程方式指定,特别是在Windows中,这可以通过几乎任何程序来完成,例如当使用打印机进行打印时。此外,如果您以编程方式更改此选项,请尽快将其设置回以前的值,否则如果来自 .NET 的人员尝试使用您的代码,他们可能会遇到问题。
(换句话说,您对 _controlfp 的使用可能会被其他一些例程覆盖,假设这确实是正确的使用方法)
另请参阅Visual Studio C++ 2008 / 2010 - float NaN 上的中断