NaN como argumento especial

Estoy escribiendo una pequeña biblioteca donde puedes establecer un rango; Los puntos de inicio y final son dobles. La biblioteca tiene algunos valores predeterminados incorporados o calculados para ese rango, pero una vez que están configurados por la función de configuración de rango, no hay manera de volver al valor predeterminado.

Por lo tanto, lo que me gusta es usar el valor NaN como indicador para usar el valor predeterminado, pero no he encontrado ninguna definición estándar de NaN, y al leer el manual de gcc dice que hay plataformas que no admiten NaN. .

Mis preguntas son:

¿Hay plataformas recientes que no utilicen números de punto flotante IEEE 754? No me importan algunos dispositivos incrustados oscuros, porque la biblioteca se centra en plataformas con GUI, para ser precisos en el cairo.

Y la segunda pregunta, ¿usaría el valor de NaN como argumento para tal propósito? No tengo ningún problema en definirlo en algún lugar del encabezado.

NaN no es igual a ningún número, ni siquiera a sí mismo. Por lo tanto, usarlo como un indicador conducirá a un código complicado o incluso a errores. No lo usaría de esta manera.

No usaría un NaN para este propósito; más allá de la cuestión de qué NaN usar (y hay muchos), sería mejor agregar una API de llamada de función para restablecer los valores predeterminados.

Los NaN son algo raros de manejar en código, y ciertamente no me gustaría que una biblioteca los use para fines para los cuales no están diseñados.

Edición: Otro problema en el que acabo de pensar es que si un cálculo da como resultado NaN, y se pasa como argumento, obtendrá un comportamiento no deseado. Por ejemplo:

MyFunc(SomeCalculation()); //if SomeCalculation() is assumed to not be NaN, //this will cause unintended behavior