Как лучше всего использовать 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
, которая вызовет исключение с плавающей запятой при использовании?