Line data Source code
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 :
17 : template<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 0 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () BOOST_BIND_MF_NOEXCEPT, 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 0 : return _bi::bind_t<R, F, list_type>(F(f), list_type(a1));
25 : }
26 :
27 : template<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 BOOST_BIND_MF_NOEXCEPT, 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 :
37 : template<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) () BOOST_BIND_MF_NOEXCEPT, 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 :
48 : template<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 BOOST_BIND_MF_NOEXCEPT, 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 :
61 : template<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) BOOST_BIND_MF_NOEXCEPT, 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 :
72 : template<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 BOOST_BIND_MF_NOEXCEPT, 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 :
83 : template<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) BOOST_BIND_MF_NOEXCEPT, 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 :
95 : template<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 BOOST_BIND_MF_NOEXCEPT, 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 :
109 : template<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) BOOST_BIND_MF_NOEXCEPT, 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 :
120 : template<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 BOOST_BIND_MF_NOEXCEPT, 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 :
131 : template<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) BOOST_BIND_MF_NOEXCEPT, 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 :
143 : template<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 BOOST_BIND_MF_NOEXCEPT, 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 :
157 : template<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) BOOST_BIND_MF_NOEXCEPT, 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 :
168 : template<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 BOOST_BIND_MF_NOEXCEPT, 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 :
179 : template<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) BOOST_BIND_MF_NOEXCEPT, 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 :
191 : template<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 BOOST_BIND_MF_NOEXCEPT, 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 :
205 : template<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 0 : BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) BOOST_BIND_MF_NOEXCEPT, 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 0 : return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5));
214 : }
215 :
216 : template<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 BOOST_BIND_MF_NOEXCEPT, 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 :
227 : template<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) BOOST_BIND_MF_NOEXCEPT, 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 :
239 : template<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 BOOST_BIND_MF_NOEXCEPT, 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 :
253 : template<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) BOOST_BIND_MF_NOEXCEPT, 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 :
264 : template<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 BOOST_BIND_MF_NOEXCEPT, 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 :
275 : template<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) BOOST_BIND_MF_NOEXCEPT, 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 :
287 : template<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 BOOST_BIND_MF_NOEXCEPT, 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 :
301 : template<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) BOOST_BIND_MF_NOEXCEPT, 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 :
312 : template<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 BOOST_BIND_MF_NOEXCEPT, 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 :
323 : template<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) BOOST_BIND_MF_NOEXCEPT, 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 :
335 : template<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 BOOST_BIND_MF_NOEXCEPT, 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 :
349 : template<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) BOOST_BIND_MF_NOEXCEPT, 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 :
360 : template<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 BOOST_BIND_MF_NOEXCEPT, 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 :
371 : template<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) BOOST_BIND_MF_NOEXCEPT, 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 :
383 : template<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 BOOST_BIND_MF_NOEXCEPT, 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 :
397 : template<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) BOOST_BIND_MF_NOEXCEPT, 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 :
408 : template<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 BOOST_BIND_MF_NOEXCEPT, 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 :
419 : template<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) BOOST_BIND_MF_NOEXCEPT, 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 :
431 : template<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 BOOST_BIND_MF_NOEXCEPT, 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 : }
|