forked from boostorg/bind
Placeholders are now inline functions to avoid data in headers (idea by Yitzhak Sapir)
[SVN r13128]
This commit is contained in:
@@ -146,6 +146,8 @@ public:
|
||||
|
||||
A1 operator[] (arg<1>) const { return a1_; }
|
||||
|
||||
A1 operator[] (arg<1> (*) ()) const { return a1_; }
|
||||
|
||||
template<class T> T & operator[] (value<T> & v) const { return v.get(); }
|
||||
|
||||
template<class T> T const & operator[] (value<T> const & v) const { return v.get(); }
|
||||
@@ -191,6 +193,9 @@ public:
|
||||
A1 operator[] (arg<1>) const { return a1_; }
|
||||
A2 operator[] (arg<2>) const { return a2_; }
|
||||
|
||||
A1 operator[] (arg<1> (*) ()) const { return a1_; }
|
||||
A2 operator[] (arg<2> (*) ()) const { return a2_; }
|
||||
|
||||
template<class T> T & operator[] (value<T> & v) const { return v.get(); }
|
||||
|
||||
template<class T> T const & operator[] (value<T> const & v) const { return v.get(); }
|
||||
@@ -239,6 +244,10 @@ public:
|
||||
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_; }
|
||||
|
||||
template<class T> T & operator[] (value<T> & v) const { return v.get(); }
|
||||
|
||||
template<class T> T const & operator[] (value<T> const & v) const { return v.get(); }
|
||||
@@ -290,6 +299,11 @@ public:
|
||||
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_; }
|
||||
|
||||
template<class T> T & operator[] (value<T> & v) const { return v.get(); }
|
||||
|
||||
template<class T> T const & operator[] (value<T> const & v) const { return v.get(); }
|
||||
@@ -344,6 +358,12 @@ public:
|
||||
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_; }
|
||||
|
||||
template<class T> T & operator[] (value<T> & v) const { return v.get(); }
|
||||
|
||||
template<class T> T const & operator[] (value<T> const & v) const { return v.get(); }
|
||||
@@ -401,6 +421,13 @@ public:
|
||||
A5 operator[] (arg<5>) const { return a5_; }
|
||||
A6 operator[] (arg<6>) const { return a6_; }
|
||||
|
||||
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_; }
|
||||
A6 operator[] (arg<6> (*) ()) const { return a6_; }
|
||||
|
||||
template<class T> T & operator[] (value<T> & v) const { return v.get(); }
|
||||
|
||||
template<class T> T const & operator[] (value<T> const & v) const { return v.get(); }
|
||||
@@ -461,6 +488,14 @@ public:
|
||||
A6 operator[] (arg<6>) const { return a6_; }
|
||||
A7 operator[] (arg<7>) const { return a7_; }
|
||||
|
||||
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_; }
|
||||
A6 operator[] (arg<6> (*) ()) const { return a6_; }
|
||||
A7 operator[] (arg<7> (*) ()) const { return a7_; }
|
||||
|
||||
template<class T> T & operator[] (value<T> & v) const { return v.get(); }
|
||||
|
||||
template<class T> T const & operator[] (value<T> const & v) const { return v.get(); }
|
||||
@@ -524,6 +559,15 @@ public:
|
||||
A7 operator[] (arg<7>) const { return a7_; }
|
||||
A8 operator[] (arg<8>) const { return a8_; }
|
||||
|
||||
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_; }
|
||||
A6 operator[] (arg<6> (*) ()) const { return a6_; }
|
||||
A7 operator[] (arg<7> (*) ()) const { return a7_; }
|
||||
A8 operator[] (arg<8> (*) ()) const { return a8_; }
|
||||
|
||||
template<class T> T & operator[] (value<T> & v) const { return v.get(); }
|
||||
|
||||
template<class T> T const & operator[] (value<T> const & v) const { return v.get(); }
|
||||
@@ -590,6 +634,16 @@ public:
|
||||
A8 operator[] (arg<8>) const { return a8_; }
|
||||
A9 operator[] (arg<9>) const { return a9_; }
|
||||
|
||||
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_; }
|
||||
A6 operator[] (arg<6> (*) ()) const { return a6_; }
|
||||
A7 operator[] (arg<7> (*) ()) const { return a7_; }
|
||||
A8 operator[] (arg<8> (*) ()) const { return a8_; }
|
||||
A9 operator[] (arg<9> (*) ()) const { return a9_; }
|
||||
|
||||
template<class T> T & operator[] (value<T> & v) const { return v.get(); }
|
||||
|
||||
template<class T> T const & operator[] (value<T> const & v) const { return v.get(); }
|
||||
@@ -916,6 +970,11 @@ template<int I> struct add_value< arg<I> >
|
||||
typedef arg<I> type;
|
||||
};
|
||||
|
||||
template<int I> struct add_value< arg<I> (*) () >
|
||||
{
|
||||
typedef arg<I> (*type) ();
|
||||
};
|
||||
|
||||
template<class R, class F, class L> struct add_value< bind_t<R, F, L> >
|
||||
{
|
||||
typedef bind_t<R, F, L> type;
|
||||
@@ -947,6 +1006,7 @@ typedef char (&_avt_r2) [2];
|
||||
template<class T> _avt_r1 _avt_f(value<T>);
|
||||
template<class T> _avt_r1 _avt_f(reference_wrapper<T>);
|
||||
template<int I> _avt_r1 _avt_f(arg<I>);
|
||||
template<int I> _avt_r1 _avt_f(arg<I> (*) ());
|
||||
template<class R, class F, class L> _avt_r1 _avt_f(bind_t<R, F, L>);
|
||||
|
||||
_avt_r2 _avt_f(...);
|
||||
|
||||
Reference in New Issue
Block a user