有没有一种简单的方法来检查调试器中的 C++ 代码是否首次出现 NaN 值?
问问题
6575 次
3 回答
10
答案在这里给出:https ://stackoverflow.com/a/5394095/1326595
只包括
#include <fenv.h>
并将以下行添加到代码中:
feenableexcept(FE_INVALID | FE_OVERFLOW);
调试器能够捕获信号并显示 NaN 的第一次出现。
于 2012-08-14T05:59:49.137 回答
5
根据 IEEE 标准,以下条件false
适用于NaN
's:
val == val
您可以使用它来触发断言或软件断点,但要注意编译器优化。可能在调试版本中它不会被优化掉
于 2012-08-13T12:13:38.740 回答
2
你可以放一个assert(val >= 0 || val <= 0)
来捕捉一个 NaN
于 2012-08-13T12:03:49.130 回答