Boost logo

Boost :

From: AlisdairM (alisdair.meredith_at_[hidden])
Date: 2006-06-05 03:21:36


John Maddock wrote:

> Almost certainly, but I don't see the diffs attached?

Aaargh! They were there before I hit Post, honest ;?)

See below for a second attempt (diff good from this morning on
RC_1_34_0)

cvs diff -u -wb -- array.hpp complex.hpp memory.hpp regex.hpp
utility.hpp (in directory E:\sourceforge\rc_1_34_0\boost\boost\tr1\)
Index: array.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/tr1/array.hpp,v
retrieving revision 1.3
diff -u -w -b -r1.3 array.hpp
--- array.hpp 1 Dec 2005 17:39:18 -0000 1.3
+++ array.hpp 4 Jun 2006 09:04:22 -0000
@@ -22,7 +22,7 @@
 
 using ::boost::array;
 
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570))
+#if !BOOST_WORKAROUND(__BORLANDC__, <= 0x570 )
 // [6.1.3.2] Tuple creation functions
 using ::boost::swap;
 #endif
Index: complex.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/tr1/complex.hpp,v
retrieving revision 1.4
diff -u -w -b -r1.4 complex.hpp
--- complex.hpp 16 Nov 2005 18:33:14 -0000 1.4
+++ complex.hpp 4 Jun 2006 10:39:14 -0000
@@ -89,7 +89,7 @@
    return ct;
 }
 
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570)) &&
!BOOST_WORKAROUND(BOOST_MSVC, < 1310)
+#if !BOOST_WORKAROUND(__BORLANDC__, <=0x570) &&
!BOOST_WORKAROUND(BOOST_MSVC, < 1310)
 inline complex<double> polar(const char& rho, const char& theta = 0)
 { return ::std::polar(static_cast<double>(rho),
static_cast<double>(theta)); }
 inline complex<double> polar(const unsigned char& rho, const unsigned
char& theta = 0)
@@ -121,10 +121,10 @@
 #endif
 
 template<class T, class U>
-inline complex<typename ::boost::tr1_detail::promote_to_real<T,
U>::type>
+inline complex<typename boost::tr1_detail::promote_to_real<T, U>::type>
    polar(const T& rho, const U& theta)
 {
- typedef typename ::boost::tr1_detail::promote_to_real<T, U>::type
real_type;
+ typedef typename boost::tr1_detail::promote_to_real<T, U>::type
real_type;
    return std::polar(static_cast<real_type>(rho),
static_cast<real_type>(theta));
 }
 #endif
@@ -187,7 +187,7 @@
    pow (const complex<T>& x, const U& y)
 {
    typedef typename boost::tr1_detail::promote_to_real<T, U>::type
real_type;
- typedef complex<typename ::boost::tr1_detail::promote_to_real<T,
U>::type> result_type;
+ typedef complex<typename boost::tr1_detail::promote_to_real<T,
U>::type> result_type;
    typedef typename boost::mpl::if_<boost::is_same<result_type,
complex<T> >, result_type const&, result_type>::type cast1_type;
    real_type r = y;
    cast1_type x1(x);
@@ -200,7 +200,7 @@
    pow (const T& x, const complex<U>& y)
 {
    typedef typename boost::tr1_detail::promote_to_real<T, U>::type
real_type;
- typedef complex<typename ::boost::tr1_detail::promote_to_real<T,
U>::type> result_type;
+ typedef complex<typename boost::tr1_detail::promote_to_real<T,
U>::type> result_type;
    typedef typename boost::mpl::if_<boost::is_same<result_type,
complex<U> >, result_type const&, result_type>::type cast_type;
    real_type r = x;
    std::complex<real_type> x1(r);
Index: memory.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/tr1/memory.hpp,v
retrieving revision 1.3
diff -u -w -b -r1.3 memory.hpp
--- memory.hpp 8 Nov 2005 18:52:29 -0000 1.3
+++ memory.hpp 4 Jun 2006 10:41:34 -0000
@@ -42,7 +42,7 @@
 
    using ::boost::bad_weak_ptr;
    using ::boost::shared_ptr;
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570))
+#if !BOOST_WORKAROUND(__BORLANDC__, <= 0x570)
    using ::boost::swap;
 #endif
    using ::boost::static_pointer_cast;
Index: regex.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/tr1/regex.hpp,v
retrieving revision 1.3
diff -u -w -b -r1.3 regex.hpp
--- regex.hpp 15 Nov 2005 19:18:28 -0000 1.3
+++ regex.hpp 4 Jun 2006 10:40:22 -0000
@@ -77,7 +77,7 @@
 using ::boost::wregex;
 #endif
 
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570))
+#if !BOOST_WORKAROUND(__BORLANDC__, <= 0x570)
 // [7.8.6] basic_regex swap
 using ::boost::swap;
 #endif
Index: utility.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/tr1/utility.hpp,v
retrieving revision 1.3
diff -u -w -b -r1.3 utility.hpp
--- utility.hpp 1 Dec 2005 17:39:18 -0000 1.3
+++ utility.hpp 4 Jun 2006 13:31:30 -0000
@@ -61,8 +61,14 @@
    struct const_tuple_get_result
    {
       typedef typename boost::mpl::if_c<I==0, T1, T2>::type t1;
+# if BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x582))
+ // I have absolutely no idea why add_const is not working here
for Borland!
+ // It passes all other free-standing tests, some strange
interaction going on
+ typedef typename boost::add_reference< const t1 >::type type;
+# else
       typedef typename boost::add_const<t1>::type t2;
       typedef typename boost::add_reference<t2>::type type;
+# endif
    };
 
 template<int I, class T1, class T2>

-- 
AlisdairM

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