
Further experiments show that the issue is present in boost 1.42, but fixed in boost 1.45. Sorry for the noise :) Thanks, -Gabe On Mon, Jan 3, 2011 at 11:53 AM, Gabriel Redner <gredner@gmail.com> wrote:
Hi all,
The following code fails to compile with icc 11.1 under Linux:
========== #include <boost/math/special_functions/fpclassify.hpp> int main() {} ==========
The full error is:
========== /usr/include/c++/4.4.5/cmath(500): error: identifier "__builtin_fpclassify" is undefined return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, ^ detected during: instantiation of "__gnu_cxx::__enable_if<std::__is_arithmetic<_Tp>::__value, int>::__type std::fpclassify(_Tp) [with _Tp=long double]" at line 104 of "/usr/include/boost/math/special_functions/fpclassify.hpp" instantiation of "bool boost::math_detail::is_nan_helper(T, const boost::true_type &) [with T=long double]" at line 137 of "/usr/include/boost/math/special_functions/fpclassify.hpp" instantiation of "int boost::math::detail::fpclassify_imp(T, const boost::math::detail::generic_tag<true> &) [with T=long double]" at line 242 of "/usr/include/boost/math/special_functions/fpclassify.hpp"
compilation aborted for main.cpp (code 2) ==========
The same code compiles fine under icc 12.0.
I also tried explicitly adding: #define BOOST_MATH_DISABLE_STD_FPCLASSIFY before including the header, but got the same error.
The math library docs say that icc 10.0 and later are fully supported with no serious caveats, so I presume this is a bug. Should I file a ticket? Please let me know if there is any other information about my system which could be useful to know.
Thanks, -Gabe