1//
2// bind/bind_mf_cc.hpp - support for different calling conventions
3//
4// Do not include this header directly.
5//
6// Copyright (c) 2001 Peter Dimov and Multi Media Ltd.
7//
8// Distributed under the Boost Software License, Version 1.0. (See
9// accompanying file LICENSE_1_0.txt or copy at
10// http://www.boost.org/LICENSE_1_0.txt)
11//
12// See http://www.boost.org/libs/bind/bind.html for documentation.
13//
14
15// 0
16
17template<class R, class T,
18 class A1>
19 _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf0)<R, T>, typename _bi::list_av_1<A1>::type>
20 BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (), A1 a1)
21{
22 typedef _mfi::BOOST_BIND_MF_NAME(mf0)<R, T> F;
23 typedef typename _bi::list_av_1<A1>::type list_type;
24 return _bi::bind_t<R, F, list_type>(F(f), list_type(a1));
25}
26
27template<class R, class T,
28 class A1>
29 _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf0)<R, T>, typename _bi::list_av_1<A1>::type>
30 BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () const, A1 a1)
31{
32 typedef _mfi::BOOST_BIND_MF_NAME(cmf0)<R, T> F;
33 typedef typename _bi::list_av_1<A1>::type list_type;
34 return _bi::bind_t<R, F, list_type>(F(f), list_type(a1));
35}
36
37template<class Rt2, class R, class T,
38 class A1>
39 typename boost::enable_if_c<!boost::core::is_same<Rt2, R>::value,
40 _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf0)<R, T>, typename _bi::list_av_1<A1>::type>
41 >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (), A1 a1)
42{
43 typedef _mfi::BOOST_BIND_MF_NAME(mf0)<R, T> F;
44 typedef typename _bi::list_av_1<A1>::type list_type;
45 return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1));
46}
47
48template<class Rt2, class R, class T,
49 class A1>
50 typename boost::enable_if_c<!boost::core::is_same<Rt2, R>::value,
51 _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf0)<R, T>, typename _bi::list_av_1<A1>::type>
52 >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () const, A1 a1)
53{
54 typedef _mfi::BOOST_BIND_MF_NAME(cmf0)<R, T> F;
55 typedef typename _bi::list_av_1<A1>::type list_type;
56 return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1));
57}
58
59// 1
60
61template<class R, class T,
62 class B1,
63 class A1, class A2>
64 _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
65 BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1), A1 a1, A2 a2)
66{
67 typedef _mfi::BOOST_BIND_MF_NAME(mf1)<R, T, B1> F;
68 typedef typename _bi::list_av_2<A1, A2>::type list_type;
69 return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2));
70}
71
72template<class R, class T,
73 class B1,
74 class A1, class A2>
75 _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
76 BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) const, A1 a1, A2 a2)
77{
78 typedef _mfi::BOOST_BIND_MF_NAME(cmf1)<R, T, B1> F;
79 typedef typename _bi::list_av_2<A1, A2>::type list_type;
80 return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2));
81}
82
83template<class Rt2, class R, class T,
84 class B1,
85 class A1, class A2>
86 typename boost::enable_if_c<!boost::core::is_same<Rt2, R>::value,
87 _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
88 >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1), A1 a1, A2 a2)
89{
90 typedef _mfi::BOOST_BIND_MF_NAME(mf1)<R, T, B1> F;
91 typedef typename _bi::list_av_2<A1, A2>::type list_type;
92 return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2));
93}
94
95template<class Rt2, class R, class T,
96 class B1,
97 class A1, class A2>
98 typename boost::enable_if_c<!boost::core::is_same<Rt2, R>::value,
99 _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
100 >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) const, A1 a1, A2 a2)
101{
102 typedef _mfi::BOOST_BIND_MF_NAME(cmf1)<R, T, B1> F;
103 typedef typename _bi::list_av_2<A1, A2>::type list_type;
104 return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2));
105}
106
107// 2
108
109template<class R, class T,
110 class B1, class B2,
111 class A1, class A2, class A3>
112 _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
113 BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2), A1 a1, A2 a2, A3 a3)
114{
115 typedef _mfi::BOOST_BIND_MF_NAME(mf2)<R, T, B1, B2> F;
116 typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
117 return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3));
118}
119
120template<class R, class T,
121 class B1, class B2,
122 class A1, class A2, class A3>
123 _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
124 BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) const, A1 a1, A2 a2, A3 a3)
125{
126 typedef _mfi::BOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2> F;
127 typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
128 return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3));
129}
130
131template<class Rt2, class R, class T,
132 class B1, class B2,
133 class A1, class A2, class A3>
134 typename boost::enable_if_c<!boost::core::is_same<Rt2, R>::value,
135 _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(mf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
136 >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2), A1 a1, A2 a2, A3 a3)
137{
138 typedef _mfi::BOOST_BIND_MF_NAME(mf2)<R, T, B1, B2> F;
139 typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
140 return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3));
141}
142
143template<class Rt2, class R, class T,
144 class B1, class B2,
145 class A1, class A2, class A3>
146 typename boost::enable_if_c<!boost::core::is_same<Rt2, R>::value,
147 _bi::bind_t<Rt2, _mfi::BOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
148 >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) const, A1 a1, A2 a2, A3 a3)
149{
150 typedef _mfi::BOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2> F;
151 typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
152 return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3));
153}
154
155// 3
156
157template<class R, class T,
158 class B1, class B2, class B3,
159 class A1, class A2, class A3, class A4>
160 _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf3)<R, T, B1, B2, B3>, typename _bi::list_av_4<A1, A2, A3, A4>::type>
161 BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3), A1 a1, A2 a2, A3 a3, A4 a4)
162{
163 typedef _mfi::BOOST_BIND_MF_NAME(mf3)<R, T, B1, B2, B3> F;
164 typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
165 return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4));
166}
167
168template<class R, class T,
169 class B1, class B2, class B3,
170 class A1, class A2, class A3, class A4>
171 _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf3)<R, T, B1, B2, B3>, typename _bi::list_av_4<A1, A2, A3, A4>::type>
172 BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) const, A1 a1, A2 a2, A3 a3, A4 a4)
173{
174 typedef _mfi::BOOST_BIND_MF_NAME(cmf3)<R, T, B1, B2, B3> F;
175 typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
176 return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4));
177}
178
179template<class Rt2, class R, class T,
180 class B1, class B2, class B3,
181 class A1, class A2, class A3, class A4>
182 typename boost::enable_if_c<!boost::core::is_same<Rt2, R>::value,
183 _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>
184 >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3), A1 a1, A2 a2, A3 a3, A4 a4)
185{
186 typedef _mfi::BOOST_BIND_MF_NAME(mf3)<R, T, B1, B2, B3> F;
187 typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
188 return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4));
189}
190
191template<class Rt2, class R, class T,
192 class B1, class B2, class B3,
193 class A1, class A2, class A3, class A4>
194 typename boost::enable_if_c<!boost::core::is_same<Rt2, R>::value,
195 _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>
196 >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) const, A1 a1, A2 a2, A3 a3, A4 a4)
197{
198 typedef _mfi::BOOST_BIND_MF_NAME(cmf3)<R, T, B1, B2, B3> F;
199 typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
200 return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4));
201}
202
203// 4
204
205template<class R, class T,
206 class B1, class B2, class B3, class B4,
207 class A1, class A2, class A3, class A4, class A5>
208 _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf4)<R, T, B1, B2, B3, B4>, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
209 BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
210{
211 typedef _mfi::BOOST_BIND_MF_NAME(mf4)<R, T, B1, B2, B3, B4> F;
212 typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
213 return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5));
214}
215
216template<class R, class T,
217 class B1, class B2, class B3, class B4,
218 class A1, class A2, class A3, class A4, class A5>
219 _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf4)<R, T, B1, B2, B3, B4>, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
220 BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
221{
222 typedef _mfi::BOOST_BIND_MF_NAME(cmf4)<R, T, B1, B2, B3, B4> F;
223 typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
224 return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5));
225}
226
227template<class Rt2, class R, class T,
228 class B1, class B2, class B3, class B4,
229 class A1, class A2, class A3, class A4, class A5>
230 typename boost::enable_if_c<!boost::core::is_same<Rt2, R>::value,
231 _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>
232 >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
233{
234 typedef _mfi::BOOST_BIND_MF_NAME(mf4)<R, T, B1, B2, B3, B4> F;
235 typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
236 return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5));
237}
238
239template<class Rt2, class R, class T,
240 class B1, class B2, class B3, class B4,
241 class A1, class A2, class A3, class A4, class A5>
242 typename boost::enable_if_c<!boost::core::is_same<Rt2, R>::value,
243 _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>
244 >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
245{
246 typedef _mfi::BOOST_BIND_MF_NAME(cmf4)<R, T, B1, B2, B3, B4> F;
247 typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
248 return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5));
249}
250
251// 5
252
253template<class R, class T,
254 class B1, class B2, class B3, class B4, class B5,
255 class A1, class A2, class A3, class A4, class A5, class A6>
256 _bi::bind_t<R, _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>
257 BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
258{
259 typedef _mfi::BOOST_BIND_MF_NAME(mf5)<R, T, B1, B2, B3, B4, B5> F;
260 typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
261 return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6));
262}
263
264template<class R, class T,
265 class B1, class B2, class B3, class B4, class B5,
266 class A1, class A2, class A3, class A4, class A5, class A6>
267 _bi::bind_t<R, _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>
268 BOOST_BIND(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)
269{
270 typedef _mfi::BOOST_BIND_MF_NAME(cmf5)<R, T, B1, B2, B3, B4, B5> F;
271 typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
272 return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6));
273}
274
275template<class Rt2, class R, class T,
276 class B1, class B2, class B3, class B4, class B5,
277 class A1, class A2, class A3, class A4, class A5, class A6>
278 typename boost::enable_if_c<!boost::core::is_same<Rt2, R>::value,
279 _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>
280 >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
281{
282 typedef _mfi::BOOST_BIND_MF_NAME(mf5)<R, T, B1, B2, B3, B4, B5> F;
283 typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
284 return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6));
285}
286
287template<class Rt2, class R, class T,
288 class B1, class B2, class B3, class B4, class B5,
289 class A1, class A2, class A3, class A4, class A5, class A6>
290 typename boost::enable_if_c<!boost::core::is_same<Rt2, R>::value,
291 _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>
292 >::type BOOST_BIND(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)
293{
294 typedef _mfi::BOOST_BIND_MF_NAME(cmf5)<R, T, B1, B2, B3, B4, B5> F;
295 typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
296 return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6));
297}
298
299// 6
300
301template<class R, class T,
302 class B1, class B2, class B3, class B4, class B5, class B6,
303 class A1, class A2, class A3, class A4, class A5, class A6, class A7>
304 _bi::bind_t<R, _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>
305 BOOST_BIND(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)
306{
307 typedef _mfi::BOOST_BIND_MF_NAME(mf6)<R, T, B1, B2, B3, B4, B5, B6> F;
308 typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
309 return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7));
310}
311
312template<class R, class T,
313 class B1, class B2, class B3, class B4, class B5, class B6,
314 class A1, class A2, class A3, class A4, class A5, class A6, class A7>
315 _bi::bind_t<R, _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>
316 BOOST_BIND(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)
317{
318 typedef _mfi::BOOST_BIND_MF_NAME(cmf6)<R, T, B1, B2, B3, B4, B5, B6> F;
319 typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
320 return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7));
321}
322
323template<class Rt2, class R, class T,
324 class B1, class B2, class B3, class B4, class B5, class B6,
325 class A1, class A2, class A3, class A4, class A5, class A6, class A7>
326 typename boost::enable_if_c<!boost::core::is_same<Rt2, R>::value,
327 _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>
328 >::type BOOST_BIND(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)
329{
330 typedef _mfi::BOOST_BIND_MF_NAME(mf6)<R, T, B1, B2, B3, B4, B5, B6> F;
331 typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
332 return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7));
333}
334
335template<class Rt2, class R, class T,
336 class B1, class B2, class B3, class B4, class B5, class B6,
337 class A1, class A2, class A3, class A4, class A5, class A6, class A7>
338 typename boost::enable_if_c<!boost::core::is_same<Rt2, R>::value,
339 _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>
340 >::type BOOST_BIND(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)
341{
342 typedef _mfi::BOOST_BIND_MF_NAME(cmf6)<R, T, B1, B2, B3, B4, B5, B6> F;
343 typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
344 return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7));
345}
346
347// 7
348
349template<class R, class T,
350 class B1, class B2, class B3, class B4, class B5, class B6, class B7,
351 class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
352 _bi::bind_t<R, _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>
353 BOOST_BIND(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)
354{
355 typedef _mfi::BOOST_BIND_MF_NAME(mf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
356 typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
357 return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8));
358}
359
360template<class R, class T,
361 class B1, class B2, class B3, class B4, class B5, class B6, class B7,
362 class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
363 _bi::bind_t<R, _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>
364 BOOST_BIND(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)
365{
366 typedef _mfi::BOOST_BIND_MF_NAME(cmf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
367 typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
368 return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8));
369}
370
371template<class Rt2, class R, class T,
372 class B1, class B2, class B3, class B4, class B5, class B6, class B7,
373 class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
374 typename boost::enable_if_c<!boost::core::is_same<Rt2, R>::value,
375 _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>
376 >::type BOOST_BIND(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)
377{
378 typedef _mfi::BOOST_BIND_MF_NAME(mf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
379 typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
380 return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8));
381}
382
383template<class Rt2, class R, class T,
384 class B1, class B2, class B3, class B4, class B5, class B6, class B7,
385 class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
386 typename boost::enable_if_c<!boost::core::is_same<Rt2, R>::value,
387 _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>
388 >::type BOOST_BIND(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)
389{
390 typedef _mfi::BOOST_BIND_MF_NAME(cmf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
391 typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
392 return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8));
393}
394
395// 8
396
397template<class R, class T,
398 class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
399 class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
400 _bi::bind_t<R, _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>
401 BOOST_BIND(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)
402{
403 typedef _mfi::BOOST_BIND_MF_NAME(mf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
404 typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
405 return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
406}
407
408template<class R, class T,
409 class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
410 class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
411 _bi::bind_t<R, _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>
412 BOOST_BIND(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)
413{
414 typedef _mfi::BOOST_BIND_MF_NAME(cmf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
415 typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
416 return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
417}
418
419template<class Rt2, class R, class T,
420 class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
421 class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
422 typename boost::enable_if_c<!boost::core::is_same<Rt2, R>::value,
423 _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>
424 >::type BOOST_BIND(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)
425{
426 typedef _mfi::BOOST_BIND_MF_NAME(mf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
427 typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
428 return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
429}
430
431template<class Rt2, class R, class T,
432 class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
433 class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
434 typename boost::enable_if_c<!boost::core::is_same<Rt2, R>::value,
435 _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>
436 >::type BOOST_BIND(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)
437{
438 typedef _mfi::BOOST_BIND_MF_NAME(cmf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
439 typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
440 return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
441}
442

source code of boost/boost/bind/bind_mf_cc.hpp