次のコードを-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でも機能します。