次のコードを-ffast-math
オプション付きでコンパイルしています。
#include <limits>
#include <cmath>
#include <iostream>
int main() {
std::cout << std::isnan(std::numeric_limits<double>::quiet_NaN() ) << std::endl;
}
出力として0を取得しています。コードを使用してコンパイルしたときに、浮動小数点数がNaNであるかどうかをコードでどのように判断できますか-ffast-math
?
注:Linuxでは、std::isnanは-ffast-mathでも機能します。