我想在我的C ++代码中使用isfinite
函数。
此功能在默认的math.h
中可用,但在cmath
的默认版本(-std = gnu ++ 98)中不可用。
因此,如果我包含math.h
并确保不包含cmath
,则isfinite
可用。
如果其他任何头文件(如valarray
包括cmath
),则isfinite
消失了。
GCC 4.3中的C ++ 11是实验性的,因此我不想打开它。
有没有办法在C ++ 98代码中使用C99 math.h
?
我发现this related question on testing NaN,并且非C ++ 11解决方案看起来非常难看。
编辑
正如@old_mountain在注释中指出的那样,当使用cmath
时,isfinite
仍然可用,但需要由std::isfinite
使用std
命名空间进行调用。
最佳答案
包括<cmath>
并将std::isfinite
与std
命名空间一起使用。
它应该work fine (g++4.3.6)