|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r58093 - in trunk: boost/bind libs/bind/test
From: pdimov_at_[hidden]
Date: 2009-12-02 05:47:01
Author: pdimov
Date: 2009-12-02 05:47:01 EST (Wed, 02 Dec 2009)
New Revision: 58093
URL: http://svn.boost.org/trac/boost/changeset/58093
Log:
Fix Borland regression. Refs #3003.
Text files modified:
trunk/boost/bind/mem_fn_template.hpp | 81 ++++++++++++++++++++++++++-------------
trunk/libs/bind/test/mem_fn_unary_addr_test.cpp | 10 ++++
2 files changed, 64 insertions(+), 27 deletions(-)
Modified: trunk/boost/bind/mem_fn_template.hpp
==============================================================================
--- trunk/boost/bind/mem_fn_template.hpp (original)
+++ trunk/boost/bind/mem_fn_template.hpp 2009-12-02 05:47:01 EST (Wed, 02 Dec 2009)
@@ -51,14 +51,16 @@
template<class U> R operator()(U & u) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ));
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p);
}
#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
template<class U> R operator()(U const & u) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ));
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p);
}
#endif
@@ -109,7 +111,8 @@
template<class U> R operator()(U const & u) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ));
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p);
}
R operator()(T const & t) const
@@ -164,14 +167,16 @@
template<class U> R operator()(U & u, A1 a1) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ), a1);
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p, a1);
}
#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
template<class U> R operator()(U const & u, A1 a1) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ), a1);
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p, a1);
}
#endif
@@ -223,7 +228,8 @@
template<class U> R operator()(U const & u, A1 a1) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ), a1);
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p, a1);
}
R operator()(T const & t, A1 a1) const
@@ -276,14 +282,16 @@
template<class U> R operator()(U & u, A1 a1, A2 a2) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ), a1, a2);
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p, a1, a2);
}
#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
template<class U> R operator()(U const & u, A1 a1, A2 a2) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ), a1, a2);
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p, a1, a2);
}
#endif
@@ -333,7 +341,8 @@
template<class U> R operator()(U const & u, A1 a1, A2 a2) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ), a1, a2);
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p, a1, a2);
}
R operator()(T const & t, A1 a1, A2 a2) const
@@ -386,14 +395,16 @@
template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ), a1, a2, a3);
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3);
}
#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ), a1, a2, a3);
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3);
}
#endif
@@ -443,7 +454,8 @@
template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ), a1, a2, a3);
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3);
}
R operator()(T const & t, A1 a1, A2 a2, A3 a3) const
@@ -496,14 +508,16 @@
template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ), a1, a2, a3, a4);
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4);
}
#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ), a1, a2, a3, a4);
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4);
}
#endif
@@ -553,7 +567,8 @@
template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ), a1, a2, a3, a4);
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4);
}
R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4) const
@@ -606,14 +621,16 @@
template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ), a1, a2, a3, a4, a5);
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5);
}
#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ), a1, a2, a3, a4, a5);
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5);
}
#endif
@@ -663,7 +680,8 @@
template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ), a1, a2, a3, a4, a5);
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5);
}
R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const
@@ -716,14 +734,16 @@
template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ), a1, a2, a3, a4, a5, a6);
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6);
}
#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ), a1, a2, a3, a4, a5, a6);
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6);
}
#endif
@@ -773,7 +793,8 @@
template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ), a1, a2, a3, a4, a5, a6);
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6);
}
R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const
@@ -826,14 +847,16 @@
template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ), a1, a2, a3, a4, a5, a6, a7);
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7);
}
#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ), a1, a2, a3, a4, a5, a6, a7);
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7);
}
#endif
@@ -883,7 +906,8 @@
template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ), a1, a2, a3, a4, a5, a6, a7);
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7);
}
R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const
@@ -936,14 +960,16 @@
template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ), a1, a2, a3, a4, a5, a6, a7, a8);
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7, a8);
}
#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS
template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ), a1, a2, a3, a4, a5, a6, a7, a8);
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7, a8);
}
#endif
@@ -998,7 +1024,8 @@
template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
{
- BOOST_MEM_FN_RETURN call(u, static_cast< U const * >( 0 ), a1, a2, a3, a4, a5, a6, a7, a8);
+ U const * p = 0;
+ BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7, a8);
}
R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
Modified: trunk/libs/bind/test/mem_fn_unary_addr_test.cpp
==============================================================================
--- trunk/libs/bind/test/mem_fn_unary_addr_test.cpp (original)
+++ trunk/libs/bind/test/mem_fn_unary_addr_test.cpp 2009-12-02 05:47:01 EST (Wed, 02 Dec 2009)
@@ -1,4 +1,5 @@
#include <boost/config.hpp>
+#include <boost/detail/workaround.hpp>
#if defined(BOOST_MSVC)
#pragma warning(disable: 4786) // identifier truncated in debug info
@@ -82,11 +83,20 @@
}
};
+#if defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x620 ) )
+namespace boost
+{
+#endif
+
template<class T> T * get_pointer( Y< T > const & y )
{
return y.get();
}
+#if defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x620 ) )
+} // namespace boost
+#endif
+
int detect_errors(bool x)
{
if( x )
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk