gpt4 book ai didi

c++ - 强制所有 QNaN 改为普通 NaN (SNaN),以便抛出异常

转载 作者:可可西里 更新时间:2023-11-01 16:48:22 25 4
gpt4 key购买 nike

我已将 Visual Studio 配置为通过 _controlfp 函数抛出浮点异常。这适用于 NAN 和 INF,但不适用于 QNAN。 IE。安静的 NaN 不会引发异常。 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 - break on float NaN

关于c++ - 强制所有 QNaN 改为普通 NaN (SNaN),以便抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4455145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com