Во время написания некоторых тестовых примеров и некоторых тестов проверяется результат NaN.
Я пытался использовать std::isnan
, но ошибка подтверждения:
Assertion `std::isnan(x)' failed.
После печатизначение x
, оказалось, это отрицательный NaN (-nan
), что полностью приемлемо в моем случае.
После попытки использовать тот факт, что NaN != NaN
и с использованием assert(x == x)
, компиляторделает мне «одолжение» и оптимизирует утверждение.
Создание моей собственной функции isNaN
также оптимизируется.
Как я могу проверить оба равенства NaN и -На?