title: Is isnan in the std:: namespace? More in general, when is std:: necessary, optional or to be avoided?
body: <p>With Mingw 4.7.2, I have a library that doesn't compile because of a call to <code>isnan</code>.
  The compiler says "everything will be fine" if I use <code>std::isnan</code>, and indeed I manage to compile my file.</p>
  
  <p>But if I check <a href="http://www.cplusplus.com/reference/cmath/isnan/" rel="noreferrer">here</a> (<em>Edit:</em> but maybe I should have checked also <a href="http://en.cppreference.com/w/cpp/numeric/math/isnan" rel="noreferrer">here</a> :-) ), the <code>std::</code> doesn't seem to be necessary. If I add it, will the file be portable?</p>
  
  <p>More in general, for each case is there a general way to understand when putting <code>std::</code> is necessary (for portability), optional or to be avoided?</p>
  
  <p><strong>Edit</strong></p>
  
  <p>Indeed among the origins of the problem is that there are multiple header inclusions, and some of the included headers include <code>&lt;cmath&gt;</code>, while this cpp file tries to include <code>&lt;math.h&gt;</code> (when <code>&lt;cmath&gt;</code> has already been included).</p>