|
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