У меня сильная головная боль от простого теста isnan
в моем коде. У меня есть трехмерный векторный класс с переменными x
, y
, z
типа double
и следующей функцией в заголовочном файле:
#ifdef WIN32
bool IsValid() const {return !_isnan(x) && _finite(x) && !_isnan(y) && _finite(y) && !_isnan(z) && _finite(z);} //is a valid vector? (funky windows _ versions...)
#else
bool IsValid() const {return !isnan(x) && finite(x) && !isnan(y) && finite(y) && !isnan(z) && finite(z);} //is a valid vector?
#endif
Я собираюсь в среде Linux GCC на Eclipse CDT и получаю следующую ошибку:
Function '__isnanl' could not be resolved
а также
Function '__isnanf' could not be resolved
для всех случаев isnan
. Использование std::isnan
, включая float.h
и math.h
, не решает проблему. Кто-нибудь знает, что происходит?