Using NaN in C++?

After looking into this some more, it looks like signaling_NaN is useless as provided. If floating point exceptions are enabled, then calling it counts as processing a signaling NaN, so it immediately raises an exception. If floating point exceptions are disabled, then processing a signaling NaN automatically demotes it to a quiet NaN, so signaling_NaN doesn’t work either way.

Menkboy’s code works, but trying to use signaling NaNs runs into other problems: there’s no portable way to enable or disable floating point exceptions (as alluded to here and here), and if you’re relying on exceptions being enabled, third party code may disable them (as described here).

So it seems like Motti’s solution is really the best choice.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)