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