Isnan é no std :: namespace? Mais em geral, quando é std :: necessário, opcional ou a ser evitado?

Com o Mingw 4.7.2, eu tenho uma biblioteca que não compila por causa de uma chamada paraisnan. O compilador diz "tudo ficará bem" se eu usarstd::isnane de fato eu consigo compilar meu arquivo.

Mas se eu verificarAqui (Editar: mas talvez eu deveria ter verificado tambémAqui :-) ), astd:: não parece ser necessário. Se eu adicioná-lo, o arquivo será portável?

Mais em geral, para cada caso existe uma maneira geral de entender quandostd:: é necessário (para portabilidade), opcional ou a ser evitado?

Editar

De fato, entre as origens do problema, há várias inclusões de cabeçalho, e alguns dos cabeçalhos incluídos incluem<cmath>, enquanto este arquivo cpp tenta incluir<math.h> (quando<cmath> já foi incluído).

questionAnswers(2)

yourAnswerToTheQuestion