Boost logo

Boost :

From: david.abrahams_at_[hidden]
Date: 2002-08-21 07:22:56


Intel Linux C++ was reporting that uses of "arg<I>" by the bind
library were ambiguous. I've therefore applied the following trivial
(but large) patch to silence it:

--------

Index: boost/bind.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/bind.hpp,v
retrieving revision 1.19
diff -w -u -r1.19 bind.hpp
--- boost/bind.hpp 15 Jul 2002 14:07:00 -0000 1.19
+++ boost/bind.hpp 21 Aug 2002 12:20:42 -0000
@@ -166,9 +166,9 @@
 
     explicit list1(A1 a1): a1_(a1) {}
 
- A1 operator[] (arg<1>) const { return a1_; }
+ A1 operator[] (boost::arg<1>) const { return a1_; }
 
- A1 operator[] (arg<1> (*) ()) const { return a1_; }
+ A1 operator[] (boost::arg<1> (*) ()) const { return a1_; }
 
     template<class T> T & operator[] (value<T> & v) const { return v.get(); }
 
@@ -212,11 +212,11 @@
 
     list2(A1 a1, A2 a2): a1_(a1), a2_(a2) {}
 
- A1 operator[] (arg<1>) const { return a1_; }
- A2 operator[] (arg<2>) const { return a2_; }
+ A1 operator[] (boost::arg<1>) const { return a1_; }
+ A2 operator[] (boost::arg<2>) const { return a2_; }
 
- A1 operator[] (arg<1> (*) ()) const { return a1_; }
- A2 operator[] (arg<2> (*) ()) const { return a2_; }
+ A1 operator[] (boost::arg<1> (*) ()) const { return a1_; }
+ A2 operator[] (boost::arg<2> (*) ()) const { return a2_; }
 
     template<class T> T & operator[] (value<T> & v) const { return v.get(); }
 
@@ -262,13 +262,13 @@
 
     list3(A1 a1, A2 a2, A3 a3): a1_(a1), a2_(a2), a3_(a3) {}
 
- A1 operator[] (arg<1>) const { return a1_; }
- A2 operator[] (arg<2>) const { return a2_; }
- A3 operator[] (arg<3>) const { return a3_; }
-
- A1 operator[] (arg<1> (*) ()) const { return a1_; }
- A2 operator[] (arg<2> (*) ()) const { return a2_; }
- A3 operator[] (arg<3> (*) ()) const { return a3_; }
+ A1 operator[] (boost::arg<1>) const { return a1_; }
+ A2 operator[] (boost::arg<2>) const { return a2_; }
+ A3 operator[] (boost::arg<3>) const { return a3_; }
+
+ A1 operator[] (boost::arg<1> (*) ()) const { return a1_; }
+ A2 operator[] (boost::arg<2> (*) ()) const { return a2_; }
+ A3 operator[] (boost::arg<3> (*) ()) const { return a3_; }
 
     template<class T> T & operator[] (value<T> & v) const { return v.get(); }
 
@@ -316,15 +316,15 @@
 
     list4(A1 a1, A2 a2, A3 a3, A4 a4): a1_(a1), a2_(a2), a3_(a3), a4_(a4) {}
 
- A1 operator[] (arg<1>) const { return a1_; }
- A2 operator[] (arg<2>) const { return a2_; }
- A3 operator[] (arg<3>) const { return a3_; }
- A4 operator[] (arg<4>) const { return a4_; }
-
- A1 operator[] (arg<1> (*) ()) const { return a1_; }
- A2 operator[] (arg<2> (*) ()) const { return a2_; }
- A3 operator[] (arg<3> (*) ()) const { return a3_; }
- A4 operator[] (arg<4> (*) ()) const { return a4_; }
+ A1 operator[] (boost::arg<1>) const { return a1_; }
+ A2 operator[] (boost::arg<2>) const { return a2_; }
+ A3 operator[] (boost::arg<3>) const { return a3_; }
+ A4 operator[] (boost::arg<4>) const { return a4_; }
+
+ A1 operator[] (boost::arg<1> (*) ()) const { return a1_; }
+ A2 operator[] (boost::arg<2> (*) ()) const { return a2_; }
+ A3 operator[] (boost::arg<3> (*) ()) const { return a3_; }
+ A4 operator[] (boost::arg<4> (*) ()) const { return a4_; }
 
     template<class T> T & operator[] (value<T> & v) const { return v.get(); }
 
@@ -374,17 +374,17 @@
 
     list5(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5): a1_(a1), a2_(a2), a3_(a3), a4_(a4), a5_(a5) {}
 
- A1 operator[] (arg<1>) const { return a1_; }
- A2 operator[] (arg<2>) const { return a2_; }
- A3 operator[] (arg<3>) const { return a3_; }
- A4 operator[] (arg<4>) const { return a4_; }
- A5 operator[] (arg<5>) const { return a5_; }
-
- A1 operator[] (arg<1> (*) ()) const { return a1_; }
- A2 operator[] (arg<2> (*) ()) const { return a2_; }
- A3 operator[] (arg<3> (*) ()) const { return a3_; }
- A4 operator[] (arg<4> (*) ()) const { return a4_; }
- A5 operator[] (arg<5> (*) ()) const { return a5_; }
+ A1 operator[] (boost::arg<1>) const { return a1_; }
+ A2 operator[] (boost::arg<2>) const { return a2_; }
+ A3 operator[] (boost::arg<3>) const { return a3_; }
+ A4 operator[] (boost::arg
 
     template<class T> T & operator[] (value<T> & v) const { return v.get(); }
 
@@ -989,12 +989,12 @@
 
 template<int I> struct add_value< arg<I> >
 {
- typedef arg<I> type;
+ typedef boost::arg<I> type;
 };
 
 template<int I> struct add_value< arg<I> (*) () >
 {
- typedef arg<I> (*type) ();
+ typedef boost::arg<I> (*type) ();
 };
 
 template<class R, class F, class L> struct add_value< bind_t<R, F, L> >


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