As far as I'm aware, only C++11 supports calling a constructor from another constructor, which would unnecessarily limit what compilers would support nan.