![]() |
Использую NaN для разметки области определения функции на плоскости. Удобно, т.к. любая арифметическая операция с ним даёт NaN, а сравнение false. Короче, всегда известно, когда вызезаю за границы множества при свёртках.
Проблема в том, что проверить результат NaN удаётся не всегда (особенно в релизе). Код:
double f = numeric_limits<double>::quiet_NaN(); Есть ли в C++ способ проверить на NaN? |
Обсуждалось как-то мимоходом :).
|
Круто! ...только сейчас я понял, что
Цитата:
|
pva
Залезьте в stl/limits и посмотрите, как определяется nanq. По идее, Вы всегда можете сравнить своё число с nanq: Код:
if (fSomeValue == numeric_limits<double>::quiet_NaN) ... Потом, есть же isnan() |
В том то и дело, что результат проверок с NaN всегда false! А isnan() посмотрю...
|
Цитата:
Цитата:
|
Действительно, нашёл isnan во всех компиляторах и в т.ч. в линуксе, попробовал - помогло, посмотрел как сделано - также как в
Цитата:
исходник - самое лучшее доказательство |
Время: 22:59. |
Время: 22:59.
© OSzone.net 2001-