9

NaN 値の最初の出現について、デバッガーで C++ コードをチェックする簡単な方法はありますか?

4

3 に答える 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

val == val

アサートまたはソフトウェア ブレークポイントをトリガーするために使用できますが、コンパイラの最適化に注意してください。おそらく、デバッグビルドでは最適化されません

于 2012-08-13T12:13:38.740 に答える
2

assert(val >= 0 || val <= 0)NaN をキャッチするために an を入れることができます

于 2012-08-13T12:03:49.130 に答える