在编写一些测试用例时,有些测试会检查NaN的结果.
我尝试使用std::isnan但断言错误:
Assertion `std::isnan(x)' failed.
Run Code Online (Sandbox Code Playgroud)
打印出值后x,结果显示它是负NaN(-nan),在我的情况下是完全可以接受的.
在尝试使用NaN != NaN和使用的事实之后assert(x == x),编译器给我一个'恩惠'并优化断言.
制作我自己的isNaN功能也正在优化.
如何检查NaN 和 -NaN的相等性?