2
// bind/bind_mf2_cc.hpp - member functions, type<> syntax
4
// Do not include this header directly.
6
// Copyright (c) 2001 Peter Dimov and Multi Media Ltd.
7
// Copyright (c) 2008 Peter Dimov
9
// Distributed under the Boost Software License, Version 1.0.
10
// See accompanying file LICENSE_1_0.txt or copy at
11
// http://www.boost.org/LICENSE_1_0.txt
13
// See http://www.boost.org/libs/bind/bind.html for documentation.
18
template<class Rt2, class R, class T,
20
_bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf0)<R, T>, typename _bi::list_av_1<A1>::type>
21
BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (), A1 a1)
23
typedef _mfi::BOOST_BIND_MF_NAME(mf0)<R, T> F;
24
typedef typename _bi::list_av_1<A1>::type list_type;
25
return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1));
28
template<class Rt2, class R, class T,
30
_bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf0)<R, T>, typename _bi::list_av_1<A1>::type>
31
BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) () const, A1 a1)
33
typedef _mfi::BOOST_BIND_MF_NAME(cmf0)<R, T> F;
34
typedef typename _bi::list_av_1<A1>::type list_type;
35
return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1));
40
template<class Rt2, class R, class T,
43
_bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
44
BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1), A1 a1, A2 a2)
46
typedef _mfi::BOOST_BIND_MF_NAME(mf1)<R, T, B1> F;
47
typedef typename _bi::list_av_2<A1, A2>::type list_type;
48
return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2));
51
template<class Rt2, class R, class T,
54
_bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
55
BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1) const, A1 a1, A2 a2)
57
typedef _mfi::BOOST_BIND_MF_NAME(cmf1)<R, T, B1> F;
58
typedef typename _bi::list_av_2<A1, A2>::type list_type;
59
return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2));
64
template<class Rt2, class R, class T,
66
class A1, class A2, class A3>
67
_bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
68
BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2), A1 a1, A2 a2, A3 a3)
70
typedef _mfi::BOOST_BIND_MF_NAME(mf2)<R, T, B1, B2> F;
71
typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
72
return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3));
75
template<class Rt2, class R, class T,
77
class A1, class A2, class A3>
78
_bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
79
BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2) const, A1 a1, A2 a2, A3 a3)
81
typedef _mfi::BOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2> F;
82
typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
83
return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3));
88
template<class Rt2, class R, class T,
89
class B1, class B2, class B3,
90
class A1, class A2, class A3, class A4>
91
_bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf3)<R, T, B1, B2, B3>, typename _bi::list_av_4<A1, A2, A3, A4>::type>
92
BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3), A1 a1, A2 a2, A3 a3, A4 a4)
94
typedef _mfi::BOOST_BIND_MF_NAME(mf3)<R, T, B1, B2, B3> F;
95
typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
96
return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4));
99
template<class Rt2, class R, class T,
100
class B1, class B2, class B3,
101
class A1, class A2, class A3, class A4>
102
_bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf3)<R, T, B1, B2, B3>, typename _bi::list_av_4<A1, A2, A3, A4>::type>
103
BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) const, A1 a1, A2 a2, A3 a3, A4 a4)
105
typedef _mfi::BOOST_BIND_MF_NAME(cmf3)<R, T, B1, B2, B3> F;
106
typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
107
return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4));
112
template<class Rt2, class R, class T,
113
class B1, class B2, class B3, class B4,
114
class A1, class A2, class A3, class A4, class A5>
115
_bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf4)<R, T, B1, B2, B3, B4>, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
116
BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
118
typedef _mfi::BOOST_BIND_MF_NAME(mf4)<R, T, B1, B2, B3, B4> F;
119
typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
120
return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5));
123
template<class Rt2, class R, class T,
124
class B1, class B2, class B3, class B4,
125
class A1, class A2, class A3, class A4, class A5>
126
_bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf4)<R, T, B1, B2, B3, B4>, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
127
BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
129
typedef _mfi::BOOST_BIND_MF_NAME(cmf4)<R, T, B1, B2, B3, B4> F;
130
typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
131
return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5));
136
template<class Rt2, class R, class T,
137
class B1, class B2, class B3, class B4, class B5,
138
class A1, class A2, class A3, class A4, class A5, class A6>
139
_bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf5)<R, T, B1, B2, B3, B4, B5>, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
140
BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
142
typedef _mfi::BOOST_BIND_MF_NAME(mf5)<R, T, B1, B2, B3, B4, B5> F;
143
typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
144
return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6));
147
template<class Rt2, class R, class T,
148
class B1, class B2, class B3, class B4, class B5,
149
class A1, class A2, class A3, class A4, class A5, class A6>
150
_bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf5)<R, T, B1, B2, B3, B4, B5>, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
151
BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
153
typedef _mfi::BOOST_BIND_MF_NAME(cmf5)<R, T, B1, B2, B3, B4, B5> F;
154
typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
155
return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6));
160
template<class Rt2, class R, class T,
161
class B1, class B2, class B3, class B4, class B5, class B6,
162
class A1, class A2, class A3, class A4, class A5, class A6, class A7>
163
_bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf6)<R, T, B1, B2, B3, B4, B5, B6>, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
164
BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
166
typedef _mfi::BOOST_BIND_MF_NAME(mf6)<R, T, B1, B2, B3, B4, B5, B6> F;
167
typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
168
return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7));
171
template<class Rt2, class R, class T,
172
class B1, class B2, class B3, class B4, class B5, class B6,
173
class A1, class A2, class A3, class A4, class A5, class A6, class A7>
174
_bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf6)<R, T, B1, B2, B3, B4, B5, B6>, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
175
BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
177
typedef _mfi::BOOST_BIND_MF_NAME(cmf6)<R, T, B1, B2, B3, B4, B5, B6> F;
178
typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
179
return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7));
184
template<class Rt2, class R, class T,
185
class B1, class B2, class B3, class B4, class B5, class B6, class B7,
186
class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
187
_bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf7)<R, T, B1, B2, B3, B4, B5, B6, B7>, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
188
BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
190
typedef _mfi::BOOST_BIND_MF_NAME(mf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
191
typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
192
return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8));
195
template<class Rt2, class R, class T,
196
class B1, class B2, class B3, class B4, class B5, class B6, class B7,
197
class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
198
_bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf7)<R, T, B1, B2, B3, B4, B5, B6, B7>, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
199
BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
201
typedef _mfi::BOOST_BIND_MF_NAME(cmf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
202
typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
203
return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8));
208
template<class Rt2, class R, class T,
209
class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
210
class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
211
_bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8>, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
212
BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
214
typedef _mfi::BOOST_BIND_MF_NAME(mf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
215
typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
216
return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
219
template<class Rt2, class R, class T,
220
class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
221
class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
222
_bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8>, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
223
BOOST_BIND(boost::type<Rt2>, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
225
typedef _mfi::BOOST_BIND_MF_NAME(cmf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
226
typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
227
return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));