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_fwd.hpp(24): warning C4002: too many actual parameters for macro 'trunc'

1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_fwd.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_fwd.hpp(24): error C2226: syntax error : unexpected type 'T'

1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_fwd.hpp(24): error C2988: unrecognizable template declaration/definition

1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_fwd.hpp(24): error C2059: syntax error : '-'

1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_fwd.hpp(24): error C2059: syntax error : ')'

1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_fwd.hpp(26): error C2065: 'T' : undeclared identifier

1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_fwd.hpp(26): error C2988: unrecognizable template declaration/definition

1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_fwd.hpp(26): error C2059: syntax error : '-'

1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_fwd.hpp(26): error C2059: syntax error : ')'

1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_fwd.hpp(42): warning C4002: too many actual parameters for macro 'round'

1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_fwd.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_fwd.hpp(42): error C2226: syntax error : unexpected type 'T'

1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_fwd.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_fwd.hpp(42): error C2143: syntax error : missing ';' before '+'

1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_fwd.hpp(42): error C2059: syntax error : ')'

1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_fwd.hpp(42): error C2059: syntax error : ')'

1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_fwd.hpp(44): error C2065: 'T' : undeclared identifier

1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_fwd.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_fwd.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_fwd.hpp(44): error C2143: syntax error : missing ';' before '+'

1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_fwd.hpp(44): error C2059: syntax error : ')'

1>D:\RootReferences\boost_1_55_0\boost/math/special_functions/detail/round_fwd.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