Boost logo

Boost :

From: Ralf W. Grosse-Kunstleve (rwgk_at_[hidden])
Date: 2006-10-13 11:06:11


Updating to the latest boost CVS HEAD broke our Tru64 Unix builds (both cxx 6.5-042 and cxx 7.1-006) of Boost.Python. The failure is due to this patch: RCS file: /cvsroot/boost/boost/boost/lexical_cast.hpp,v ---------------------------- revision 1.29 date: 2006/10/11 19:43:54; author: alnsn; state: Exp; lines: +3 -21 Set precision correctly for builtin and UDT floating types. ---------------------------- It turns out that simply compiling this one line... #include <boost/detail/lcast_precision.hpp> leads to the same errors (below). With a little guesswork I came up with this fix: Index: boost/detail/lcast_precision.hpp =================================================================== RCS file: /cvsroot/boost/boost/boost/detail/lcast_precision.hpp,v retrieving revision 1.3 diff -u -r1.3 lcast_precision.hpp --- boost/detail/lcast_precision.hpp 12 Oct 2006 06:39:14 -0000 1.3 +++ boost/detail/lcast_precision.hpp 13 Oct 2006 14:44:35 -0000 @@ -15,7 +15,9 @@ #include <boost/config.hpp> #include <boost/integer_traits.hpp> -#ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS +#include <boost/detail/workaround.hpp> +#if defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) \ + || BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(70190006)) #include <boost/assert.hpp> #define BOOST_DETAIL_LCAST_ASSERT(cond) BOOST_ASSERT(cond) #else Is this a reasonable workaround? BTW: The #include <boost/detail/workaround.hpp> is missing in any case. Without it compiling the original code with -DBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS fails. Thanks! Cheers, Ralf This is the error with lcast_precision.cpp as in CVS (rev. 1.3): cxx -c -std strict_ansi -tlocal -Iboost include_lcast_precision.cpp cxx: Error: boost/boost/detail/lcast_precision.hpp, line 63: constant value is not known BOOST_DETAIL_LCAST_ASSERT(!is_specialized_binary || ------------^ cxx: Error: boost/boost/detail/lcast_precision.hpp, line 63: incomplete type is not allowed BOOST_DETAIL_LCAST_ASSERT(!is_specialized_binary || ------------^ cxx: Error: boost/boost/detail/lcast_precision.hpp, line 74: constant value is not known BOOST_DETAIL_LCAST_ASSERT(!is_specialized_decimal || ------------^ cxx: Error: boost/boost/detail/lcast_precision.hpp, line 74: incomplete type is not allowed BOOST_DETAIL_LCAST_ASSERT(!is_specialized_decimal || ------------^ cxx: Info: 4 errors detected in the compilation of "include_lcast_precision.cpp".


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk