Я однажды задал вопрос для Java о аппаратно-зависимых значениях NaN, и было замечено, что некоторые процессоры будут молча преобразовывать «сигнальный NaN» в «тихий NaN» (настройкаБит NaN), когда значение NaN загружается в регистр процессора. Таким образом, по крайней мере один из битов, тихий бит NaN, вы не можете использовать для хранения произвольных данных.
Использование других битов, пока установлен тихий бит NaN, равно вероятно безопасно. Но, тем не менее, здесь, похоже, есть место для зависимости от реализации, и, следовательно, нет гарантии.
Проблема такого рода заключается в том, что обычные языковые операции избегают делать что-либо, зависящее от внутреннего значения NaN, и предпочитают обрабатыватьвсе NaNs как "просто NaN".