]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
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> | |
b32b8144 | 20 | BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () BOOST_BIND_MF_NOEXCEPT, A1 a1) |
7c673cae FG |
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 | ||
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> | |
b32b8144 | 30 | BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () const BOOST_BIND_MF_NOEXCEPT, A1 a1) |
7c673cae FG |
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> | |
b32b8144 | 41 | >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () BOOST_BIND_MF_NOEXCEPT, A1 a1) |
7c673cae FG |
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> | |
b32b8144 | 52 | >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () const BOOST_BIND_MF_NOEXCEPT, A1 a1) |
7c673cae FG |
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> | |
b32b8144 | 65 | BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2) |
7c673cae FG |
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> | |
b32b8144 | 76 | BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2) |
7c673cae FG |
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> | |
b32b8144 | 88 | >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2) |
7c673cae FG |
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> | |
b32b8144 | 100 | >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2) |
7c673cae FG |
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> | |
b32b8144 | 113 | BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3) |
7c673cae FG |
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> | |
b32b8144 | 124 | BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3) |
7c673cae FG |
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> | |
b32b8144 | 136 | >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3) |
7c673cae FG |
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> | |
b32b8144 | 148 | >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3) |
7c673cae FG |
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> | |
b32b8144 | 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) |
7c673cae FG |
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> | |
b32b8144 | 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) |
7c673cae FG |
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> | |
b32b8144 | 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) |
7c673cae FG |
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> | |
b32b8144 | 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) |
7c673cae FG |
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> | |
b32b8144 | 209 | 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) |
7c673cae FG |
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 | ||
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> | |
b32b8144 | 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) |
7c673cae FG |
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> | |
b32b8144 | 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) |
7c673cae FG |
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> | |
b32b8144 | 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) |
7c673cae FG |
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> | |
b32b8144 | 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) |
7c673cae FG |
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> | |
b32b8144 | 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) |
7c673cae FG |
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> | |
b32b8144 | 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) |
7c673cae FG |
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> | |
b32b8144 | 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) |
7c673cae FG |
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> | |
b32b8144 | 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) |
7c673cae FG |
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> | |
b32b8144 | 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) |
7c673cae FG |
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> | |
b32b8144 | 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) |
7c673cae FG |
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> | |
b32b8144 | 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) |
7c673cae FG |
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> | |
b32b8144 | 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) |
7c673cae FG |
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> | |
b32b8144 | 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) |
7c673cae FG |
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> | |
b32b8144 | 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) |
7c673cae FG |
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> | |
b32b8144 | 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) |
7c673cae FG |
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> | |
b32b8144 | 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) |
7c673cae FG |
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> | |
b32b8144 | 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) |
7c673cae FG |
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> | |
b32b8144 | 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) |
7c673cae FG |
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> | |
b32b8144 | 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) |
7c673cae FG |
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 | } |