> Apparently the "std::" is missing in front of "isnan"; should this not be > implicit?
No. Many people in the C++ community frowns upon even doing "using namespace std" at all, never mind implicitly. http://stackoverflow.com/questions/1265039/using-std-namespace If you include math.h , isnan is called ::isnan . If you include cmath , isnan is called std::isnan . Also, std::isnan was added with C++11, so it's a new feature. Are you compiling with a C++11 compiler? What are the compiler flags used?