¿Cuál es la mejor manera de usar NaNs en C++?Usando NaN en C++?
Encontré std::numeric_limits<double>::quiet_NaN()
y std::numeric_limits<double>::signaling_NaN()
. Me gustaría utilizar signaling_NaN
para representar una variable sin inicializar de la siguiente manera:
double diameter = std::numeric_limits<double>::signaling_NaN();
Esto, sin embargo, las señales (lanza una excepción) en la asignación. Quiero que haga una excepción sobre el uso, no sobre la asignación.
¿Hay alguna forma de usar signaling_NaN
sin generar una excepción en la asignación? ¿Existe una buena alternativa portátil a signaling_NaN
que genere una excepción de punto flotante cuando se usa?
hmm ... estoy jugando con esto porque soy curioso ahora, pero no pude conseguir mina para lanzar una excepción. ¿Qué hiciste para obtener la excepción? –
@JeffreyMartinez No es una excepción C++ normal, si eso es lo que estás pensando. Es una excepción de punto flotante: vea las notas [aquí] (http://en.cppreference.com/w/cpp/numeric/fenv). – bames53