我决定使用NAN
(也尝试过std::numeric_limits::quiet_NaN()
)作为该函数参数的默认值,但是当我尝试使用进行检查时std::isnan
,它返回了false
。在同一时间使用qDebug()
和我将值打印到控制台nan
。
我也尝试检查NAN
使用x != x
规则。它工作了NAN != NAN
,但是得到false
了x != x
。
最后一次尝试是NAN
在函数内部定义double变量,然后尝试使用这两种方法进行检查,但结果相同。
我不明白什么是错的。
例:
double abc = NAN;
qDebug()<< abc << (abc != abc) << std::isnan(abc);
输出:
nan false false
我不知道我们正在-ffast-math
项目中使用它。这就是导致问题的原因。感谢您的关注和评论。如果使用,则没有解决方案-ffast-math
。您只需要寻找另一种解决问题的方法(无需NAN
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句