My issue with the initialization of float to NaN is that it is inconsistent with integer initialization with zero. Both are numbers, both should be treated as much as possible in the same way: either both are initialized with an undefined value or both should be initialized with zero.
It is a bad idea to define an undefined value for integers due to the performance loss (which has only a very small increase in maintainability) so it should be zero for both. BR.
