2
// bind/bind_mf_cc.hpp - support for different calling conventions
4
// Do not include this header directly.
6
// Copyright (c) 2001 Peter Dimov and Multi Media Ltd.
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)
12
// See http://www.boost.org/libs/bind/bind.html for documentation.
17
template<class R, class T,
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)
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));
27
template<class R, class T,
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)
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));
39
template<class R, class T,
42
_bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
43
BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1), A1 a1, A2 a2)
45
typedef _mfi::BOOST_BIND_MF_NAME(mf1)<R, T, B1> F;
46
typedef typename _bi::list_av_2<A1, A2>::type list_type;
47
return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2));
50
template<class R, class T,
53
_bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
54
BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) const, A1 a1, A2 a2)
56
typedef _mfi::BOOST_BIND_MF_NAME(cmf1)<R, T, B1> F;
57
typedef typename _bi::list_av_2<A1, A2>::type list_type;
58
return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2));
63
template<class R, class T,
65
class A1, class A2, class A3>
66
_bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
67
BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2), A1 a1, A2 a2, A3 a3)
69
typedef _mfi::BOOST_BIND_MF_NAME(mf2)<R, T, B1, B2> F;
70
typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
71
return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3));
74
template<class R, class T,
76
class A1, class A2, class A3>
77
_bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
78
BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) const, A1 a1, A2 a2, A3 a3)
80
typedef _mfi::BOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2> F;
81
typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
82
return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3));
87
template<class R, class T,
88
class B1, class B2, class B3,
89
class A1, class A2, class A3, class A4>
90
_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>
91
BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3), A1 a1, A2 a2, A3 a3, A4 a4)
93
typedef _mfi::BOOST_BIND_MF_NAME(mf3)<R, T, B1, B2, B3> F;
94
typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
95
return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4));
98
template<class R, class T,
99
class B1, class B2, class B3,
100
class A1, class A2, class A3, class A4>
101
_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>
102
BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) const, A1 a1, A2 a2, A3 a3, A4 a4)
104
typedef _mfi::BOOST_BIND_MF_NAME(cmf3)<R, T, B1, B2, B3> F;
105
typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
106
return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4));
111
template<class R, class T,
112
class B1, class B2, class B3, class B4,
113
class A1, class A2, class A3, class A4, class A5>
114
_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>
115
BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
117
typedef _mfi::BOOST_BIND_MF_NAME(mf4)<R, T, B1, B2, B3, B4> F;
118
typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
119
return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5));
122
template<class R, class T,
123
class B1, class B2, class B3, class B4,
124
class A1, class A2, class A3, class A4, class A5>
125
_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>
126
BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
128
typedef _mfi::BOOST_BIND_MF_NAME(cmf4)<R, T, B1, B2, B3, B4> F;
129
typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
130
return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5));
135
template<class R, class T,
136
class B1, class B2, class B3, class B4, class B5,
137
class A1, class A2, class A3, class A4, class A5, class A6>
138
_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>
139
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)
141
typedef _mfi::BOOST_BIND_MF_NAME(mf5)<R, T, B1, B2, B3, B4, B5> F;
142
typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
143
return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6));
146
template<class R, class T,
147
class B1, class B2, class B3, class B4, class B5,
148
class A1, class A2, class A3, class A4, class A5, class A6>
149
_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>
150
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)
152
typedef _mfi::BOOST_BIND_MF_NAME(cmf5)<R, T, B1, B2, B3, B4, B5> F;
153
typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
154
return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6));
159
template<class R, class T,
160
class B1, class B2, class B3, class B4, class B5, class B6,
161
class A1, class A2, class A3, class A4, class A5, class A6, class A7>
162
_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>
163
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)
165
typedef _mfi::BOOST_BIND_MF_NAME(mf6)<R, T, B1, B2, B3, B4, B5, B6> F;
166
typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
167
return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7));
170
template<class R, class T,
171
class B1, class B2, class B3, class B4, class B5, class B6,
172
class A1, class A2, class A3, class A4, class A5, class A6, class A7>
173
_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>
174
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)
176
typedef _mfi::BOOST_BIND_MF_NAME(cmf6)<R, T, B1, B2, B3, B4, B5, B6> F;
177
typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
178
return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7));
183
template<class R, class T,
184
class B1, class B2, class B3, class B4, class B5, class B6, class B7,
185
class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
186
_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>
187
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)
189
typedef _mfi::BOOST_BIND_MF_NAME(mf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
190
typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
191
return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8));
194
template<class R, class T,
195
class B1, class B2, class B3, class B4, class B5, class B6, class B7,
196
class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
197
_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>
198
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)
200
typedef _mfi::BOOST_BIND_MF_NAME(cmf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
201
typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
202
return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8));
207
template<class R, class T,
208
class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
209
class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
210
_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>
211
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)
213
typedef _mfi::BOOST_BIND_MF_NAME(mf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
214
typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
215
return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
218
template<class R, class T,
219
class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8,
220
class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
221
_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>
222
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)
224
typedef _mfi::BOOST_BIND_MF_NAME(cmf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
225
typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
226
return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));