Каков наилучший способ использования NaNs в C++?Использование NaN в C++?
Я нашел std::numeric_limits<double>::quiet_NaN()
и std::numeric_limits<double>::signaling_NaN()
. Я хотел бы использовать signaling_NaN
для представления неинициализированный переменную следующим образом:
double diameter = std::numeric_limits<double>::signaling_NaN();
Это, однако, сигналы (вызывает исключение) на назначение. Я хочу, чтобы он создавал исключение при использовании, а не при назначении.
Есть ли способ использовать signaling_NaN
без привлечения исключения при назначении? Есть ли хорошая, переносимая альтернатива signaling_NaN
, которая будет поднимать исключение с плавающей запятой при использовании?
Хмм ... Я играю с этим, потому что мне сейчас любопытно, но я не мог заставить мое возбуждать исключение. Что вы сделали, чтобы получить исключение? – 2008-10-25 00:08:52
@JeffreyMartinez Это не нормальное исключение C++, если это то, о чем вы думаете. Это исключение с плавающей запятой: см. Примечания [здесь] (http://en.cppreference.com/w/cpp/numeric/fenv). – bames53 2012-11-05 15:55:23