Boost logo

Boost :

From: Doug Gregor (doug.gregor_at_[hidden])
Date: 2006-09-20 09:07:38


GCC 3.3.x seems to have some ADL-related trouble with visit_each that is
causing some failures in Signals. Bind already has workarounds for this
problem; we need only enable them for this version of GCC.
I've committed the patch below to RC_1_34_0 and HEAD.

  Cheers,
  Doug

Index: bind.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/bind.hpp,v
retrieving revision 1.55.2.1
diff -u -p -r1.55.2.1 bind.hpp
--- bind.hpp 27 Apr 2006 16:20:59 -0000 1.55.2.1
+++ bind.hpp 20 Sep 2006 13:03:18 -0000
@@ -1161,7 +1161,8 @@ BOOST_BIND_OPERATOR( >=, greater_equal )

 // visit_each, ADL

-#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined(
__BORLANDC__ )
+#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined(
__BORLANDC__ )\
+ && !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3)

 template<class V, class T> void visit_each( V & v, value<T> const & t, int
)
 {
@@ -1180,7 +1181,8 @@ template<class V, class R, class F, clas

 // visit_each, no ADL

-#if defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) || defined( __BORLANDC__
)
+#if defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) || defined( __BORLANDC__
) \
+ || (defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3)

 template<class V, class T> void visit_each( V & v, _bi::value<T> const & t,
int )
 {


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