[math] svn rev 48294 (2008-08-22) breaks gcc 3.2 builds

Hi, This svn revision... ------------------------------------------------------------------------ r48294 | johnmaddock | 2008-08-22 05:51:40 -0700 (Fri, 22 Aug 2008) | 1 line Merged changes from sandbox, and regenerated the docs. ------------------------------------------------------------------------ broke our gcc 3.2 builds. (Sorry I couldn't report this earlier; I was out of town.) The minimal reproducer is simply: #include <boost/math/special_functions/atanh.hpp> % g++ -c -Iboost atanh.cpp In file included from boost/boost/math/special_functions/atanh.hpp:24, from atanh.cpp:1: boost/boost/math/special_functions/log1p.hpp:456: new declaration ` template<class T> T boost::math::log1pmx(T)' boost/boost/math/special_functions/math_fwd.hpp:491: ambiguates old declaration `template<class T> boost::math::tools::promote_args<RT, float, float, float, float, float>::type boost::math::log1pmx(T)' % g++ --version g++ (GCC) 3.2.3 20030502 (Red Hat Linux 3.2.3-20) I can make the error go away with the simple-minded patch below, just to prove that the ifdefed-out code is the only problem for us. I'd be happy to try out ideas for proper workarounds. Ralf Index: boost/math/special_functions/log1p.hpp =================================================================== --- boost/math/special_functions/log1p.hpp (revision 48578) +++ boost/math/special_functions/log1p.hpp (working copy) @@ -451,11 +451,13 @@ return result; } +#if !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ == 2) template <class T> inline T log1pmx(T x) { return log1pmx(x, policies::policy<>()); } +#endif } // namespace math } // namespace boost
participants (1)
-
Ralf W. Grosse-Kunstleve