Я компилирую следующий код с опцией -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.