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