Compilation errors after upgrading from 1.38 to 1.55

Hi, I'm trying to change our boost version from 1.38 to 1.55, and am getting these compilation errors: 1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_f wd.hpp(24): warning C4002: too many actual parameters for macro 'trunc' 1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_f wd.hpp(24): error C2027: use of undefined type 'boost::math::tools::promote_args' 1> D:\RootReferences\boost_1_55_0\boost/math/tools/promotion.hpp(120) : see declaration of 'boost::math::tools::promote_args' 1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_f wd.hpp(24): error C2226: syntax error : unexpected type 'T' 1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_f wd.hpp(24): error C2988: unrecognizable template declaration/definition 1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_f wd.hpp(24): error C2059: syntax error : '-' 1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_f wd.hpp(24): error C2059: syntax error : ')' 1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_f wd.hpp(26): error C2065: 'T' : undeclared identifier 1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_f wd.hpp(26): error C2988: unrecognizable template declaration/definition 1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_f wd.hpp(26): error C2059: syntax error : '-' 1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_f wd.hpp(26): error C2059: syntax error : ')' 1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_f wd.hpp(42): warning C4002: too many actual parameters for macro 'round' 1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_f wd.hpp(42): error C2027: use of undefined type 'boost::math::tools::promote_args' 1> D:\RootReferences\boost_1_55_0\boost/math/tools/promotion.hpp(120) : see declaration of 'boost::math::tools::promote_args' 1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_f wd.hpp(42): error C2226: syntax error : unexpected type 'T' 1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_f wd.hpp(42): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_f wd.hpp(42): error C2143: syntax error : missing ';' before '+' 1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_f wd.hpp(42): error C2059: syntax error : ')' 1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_f wd.hpp(42): error C2059: syntax error : ')' 1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_f wd.hpp(44): error C2065: 'T' : undeclared identifier 1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_f wd.hpp(44): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_f wd.hpp(44): error C2374: 'boost::math::floor' : redefinition; multiple initialization 1> D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_fwd .hpp(42) : see declaration of 'boost::math::floor' 1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_f wd.hpp(44): error C2143: syntax error : missing ';' before '+' 1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_f wd.hpp(44): error C2059: syntax error : ')' 1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_f wd.hpp(44): error C2059: syntax error : ')' The code doesn't matter as the errors occur as soon as I have an include for lexical_cast, i.e. #include <boost/lexical_cast.hpp> This is using Visual Studio 2010. Any ideas as to what the problem is? Thanks, Normand

AMDG On 04/04/2014 12:58 PM, Normand Mongeau wrote:
I'm trying to change our boost version from 1.38 to 1.55, and am getting these compilation errors:
1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_f wd.hpp(24): warning C4002: too many actual parameters for macro 'trunc'
<snip> Any ideas as to what the problem is?
Why is trunc defined as a macro? In VS2010, the cmath #defines are guarded by #ifndef __cplusplus In Christ, Steven Watanabe

Oh. Yes. I didn't see that. OK we have (we had) a name collision, it's now solved. Thank you -----Original Message----- From: Boost-users [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Steven Watanabe Sent: vendredi, 4 avril 2014 16:49 To: boost-users@lists.boost.org Subject: Re: [Boost-users] Compilation errors after upgrading from 1.38 to 1.55 AMDG On 04/04/2014 12:58 PM, Normand Mongeau wrote:
I'm trying to change our boost version from 1.38 to 1.55, and am getting these compilation errors:
1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/r 1>ound_f wd.hpp(24): warning C4002: too many actual parameters for macro 'trunc'
<snip> Any ideas as to what the problem is?
Why is trunc defined as a macro? In VS2010, the cmath #defines are guarded by #ifndef __cplusplus In Christ, Steven Watanabe _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
participants (2)
-
Normand Mongeau
-
Steven Watanabe