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::isnan
e 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).