我想在我的C++代碼中使用isfinite
函數。如何使用GCC 4.3在-std = gnu ++ 98模式下提供C99數學函數?
此功能在默認math.h
中可用,但不在默認版本(-std = gnu ++ 98)cmath
中。
所以,如果我包括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'獲得錯誤嗎?顯然它運行良好[g ++ 4.3.6](http://melpon.org/wandbox/permlink/fFGmUSXLyMYxmQpx)。如果你只使用'isfinite'(沒有命名空間),你會得到一個錯誤 –
是噓或'std :: tr1'不是一個選項? – NathanOliver