我想在我的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::isfinitestd命名空间一起使用。

它应该work fine (g++4.3.6)

08-07 20:21