2 // bind/bind_mf2_cc.hpp - member functions, type<> syntax
4 // Do not include this header directly.
6 // Copyright (c) 2001 Peter Dimov and Multi Media Ltd.
7 // Copyright (c) 2008 Peter Dimov
9 // Distributed under the Boost Software License, Version 1.0.
10 // See accompanying file LICENSE_1_0.txt or copy at
11 // http://www.boost.org/LICENSE_1_0.txt
13 // See http://www.boost.org/libs/bind/bind.html for documentation.
18 template<class Rt2
, class R
, class T
,
20 _bi::bind_t
<Rt2
, _mfi::BOOST_BIND_MF_NAME(mf0
)<R
, T
>, typename
_bi::list_av_1
<A1
>::type
>
21 BOOST_BIND(boost::type
<Rt2
>, R (BOOST_BIND_MF_CC
T::*f
) (), A1 a1
)
23 typedef _mfi::BOOST_BIND_MF_NAME(mf0
)<R
, T
> F
;
24 typedef typename
_bi::list_av_1
<A1
>::type list_type
;
25 return _bi::bind_t
<Rt2
, F
, list_type
>(F(f
), list_type(a1
));
28 template<class Rt2
, class R
, class T
,
30 _bi::bind_t
<Rt2
, _mfi::BOOST_BIND_MF_NAME(cmf0
)<R
, T
>, typename
_bi::list_av_1
<A1
>::type
>
31 BOOST_BIND(boost::type
<Rt2
>, R (BOOST_BIND_MF_CC
T::*f
) () const, A1 a1
)
33 typedef _mfi::BOOST_BIND_MF_NAME(cmf0
)<R
, T
> F
;
34 typedef typename
_bi::list_av_1
<A1
>::type list_type
;
35 return _bi::bind_t
<Rt2
, F
, list_type
>(F(f
), list_type(a1
));
40 template<class Rt2
, class R
, class T
,
43 _bi::bind_t
<Rt2
, _mfi::BOOST_BIND_MF_NAME(mf1
)<R
, T
, B1
>, typename
_bi::list_av_2
<A1
, A2
>::type
>
44 BOOST_BIND(boost::type
<Rt2
>, R (BOOST_BIND_MF_CC
T::*f
) (B1
), A1 a1
, A2 a2
)
46 typedef _mfi::BOOST_BIND_MF_NAME(mf1
)<R
, T
, B1
> F
;
47 typedef typename
_bi::list_av_2
<A1
, A2
>::type list_type
;
48 return _bi::bind_t
<Rt2
, F
, list_type
>(F(f
), list_type(a1
, a2
));
51 template<class Rt2
, class R
, class T
,
54 _bi::bind_t
<Rt2
, _mfi::BOOST_BIND_MF_NAME(cmf1
)<R
, T
, B1
>, typename
_bi::list_av_2
<A1
, A2
>::type
>
55 BOOST_BIND(boost::type
<Rt2
>, R (BOOST_BIND_MF_CC
T::*f
) (B1
) const, A1 a1
, A2 a2
)
57 typedef _mfi::BOOST_BIND_MF_NAME(cmf1
)<R
, T
, B1
> F
;
58 typedef typename
_bi::list_av_2
<A1
, A2
>::type list_type
;
59 return _bi::bind_t
<Rt2
, F
, list_type
>(F(f
), list_type(a1
, a2
));
64 template<class Rt2
, class R
, class T
,
66 class A1
, class A2
, class A3
>
67 _bi::bind_t
<Rt2
, _mfi::BOOST_BIND_MF_NAME(mf2
)<R
, T
, B1
, B2
>, typename
_bi::list_av_3
<A1
, A2
, A3
>::type
>
68 BOOST_BIND(boost::type
<Rt2
>, R (BOOST_BIND_MF_CC
T::*f
) (B1
, B2
), A1 a1
, A2 a2
, A3 a3
)
70 typedef _mfi::BOOST_BIND_MF_NAME(mf2
)<R
, T
, B1
, B2
> F
;
71 typedef typename
_bi::list_av_3
<A1
, A2
, A3
>::type list_type
;
72 return _bi::bind_t
<Rt2
, F
, list_type
>(F(f
), list_type(a1
, a2
, a3
));
75 template<class Rt2
, class R
, class T
,
77 class A1
, class A2
, class A3
>
78 _bi::bind_t
<Rt2
, _mfi::BOOST_BIND_MF_NAME(cmf2
)<R
, T
, B1
, B2
>, typename
_bi::list_av_3
<A1
, A2
, A3
>::type
>
79 BOOST_BIND(boost::type
<Rt2
>, R (BOOST_BIND_MF_CC
T::*f
) (B1
, B2
) const, A1 a1
, A2 a2
, A3 a3
)
81 typedef _mfi::BOOST_BIND_MF_NAME(cmf2
)<R
, T
, B1
, B2
> F
;
82 typedef typename
_bi::list_av_3
<A1
, A2
, A3
>::type list_type
;
83 return _bi::bind_t
<Rt2
, F
, list_type
>(F(f
), list_type(a1
, a2
, a3
));
88 template<class Rt2
, class R
, class T
,
89 class B1
, class B2
, class B3
,
90 class A1
, class A2
, class A3
, class A4
>
91 _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
>
92 BOOST_BIND(boost::type
<Rt2
>, R (BOOST_BIND_MF_CC
T::*f
) (B1
, B2
, B3
), A1 a1
, A2 a2
, A3 a3
, A4 a4
)
94 typedef _mfi::BOOST_BIND_MF_NAME(mf3
)<R
, T
, B1
, B2
, B3
> F
;
95 typedef typename
_bi::list_av_4
<A1
, A2
, A3
, A4
>::type list_type
;
96 return _bi::bind_t
<Rt2
, F
, list_type
>(F(f
), list_type(a1
, a2
, a3
, a4
));
99 template<class Rt2
, class R
, class T
,
100 class B1
, class B2
, class B3
,
101 class A1
, class A2
, class A3
, class A4
>
102 _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
>
103 BOOST_BIND(boost::type
<Rt2
>, R (BOOST_BIND_MF_CC
T::*f
) (B1
, B2
, B3
) const, A1 a1
, A2 a2
, A3 a3
, A4 a4
)
105 typedef _mfi::BOOST_BIND_MF_NAME(cmf3
)<R
, T
, B1
, B2
, B3
> F
;
106 typedef typename
_bi::list_av_4
<A1
, A2
, A3
, A4
>::type list_type
;
107 return _bi::bind_t
<Rt2
, F
, list_type
>(F(f
), list_type(a1
, a2
, a3
, a4
));
112 template<class Rt2
, class R
, class T
,
113 class B1
, class B2
, class B3
, class B4
,
114 class A1
, class A2
, class A3
, class A4
, class A5
>
115 _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
>
116 BOOST_BIND(boost::type
<Rt2
>, R (BOOST_BIND_MF_CC
T::*f
) (B1
, B2
, B3
, B4
), A1 a1
, A2 a2
, A3 a3
, A4 a4
, A5 a5
)
118 typedef _mfi::BOOST_BIND_MF_NAME(mf4
)<R
, T
, B1
, B2
, B3
, B4
> F
;
119 typedef typename
_bi::list_av_5
<A1
, A2
, A3
, A4
, A5
>::type list_type
;
120 return _bi::bind_t
<Rt2
, F
, list_type
>(F(f
), list_type(a1
, a2
, a3
, a4
, a5
));
123 template<class Rt2
, class R
, class T
,
124 class B1
, class B2
, class B3
, class B4
,
125 class A1
, class A2
, class A3
, class A4
, class A5
>
126 _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
>
127 BOOST_BIND(boost::type
<Rt2
>, R (BOOST_BIND_MF_CC
T::*f
) (B1
, B2
, B3
, B4
) const, A1 a1
, A2 a2
, A3 a3
, A4 a4
, A5 a5
)
129 typedef _mfi::BOOST_BIND_MF_NAME(cmf4
)<R
, T
, B1
, B2
, B3
, B4
> F
;
130 typedef typename
_bi::list_av_5
<A1
, A2
, A3
, A4
, A5
>::type list_type
;
131 return _bi::bind_t
<Rt2
, F
, list_type
>(F(f
), list_type(a1
, a2
, a3
, a4
, a5
));
136 template<class Rt2
, class R
, class T
,
137 class B1
, class B2
, class B3
, class B4
, class B5
,
138 class A1
, class A2
, class A3
, class A4
, class A5
, class A6
>
139 _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
>
140 BOOST_BIND(boost::type
<Rt2
>, R (BOOST_BIND_MF_CC
T::*f
) (B1
, B2
, B3
, B4
, B5
), A1 a1
, A2 a2
, A3 a3
, A4 a4
, A5 a5
, A6 a6
)
142 typedef _mfi::BOOST_BIND_MF_NAME(mf5
)<R
, T
, B1
, B2
, B3
, B4
, B5
> F
;
143 typedef typename
_bi::list_av_6
<A1
, A2
, A3
, A4
, A5
, A6
>::type list_type
;
144 return _bi::bind_t
<Rt2
, F
, list_type
>(F(f
), list_type(a1
, a2
, a3
, a4
, a5
, a6
));
147 template<class Rt2
, class R
, class T
,
148 class B1
, class B2
, class B3
, class B4
, class B5
,
149 class A1
, class A2
, class A3
, class A4
, class A5
, class A6
>
150 _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
>
151 BOOST_BIND(boost::type
<Rt2
>, 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
)
153 typedef _mfi::BOOST_BIND_MF_NAME(cmf5
)<R
, T
, B1
, B2
, B3
, B4
, B5
> F
;
154 typedef typename
_bi::list_av_6
<A1
, A2
, A3
, A4
, A5
, A6
>::type list_type
;
155 return _bi::bind_t
<Rt2
, F
, list_type
>(F(f
), list_type(a1
, a2
, a3
, a4
, a5
, a6
));
160 template<class Rt2
, class R
, class T
,
161 class B1
, class B2
, class B3
, class B4
, class B5
, class B6
,
162 class A1
, class A2
, class A3
, class A4
, class A5
, class A6
, class A7
>
163 _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
>
164 BOOST_BIND(boost::type
<Rt2
>, 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
)
166 typedef _mfi::BOOST_BIND_MF_NAME(mf6
)<R
, T
, B1
, B2
, B3
, B4
, B5
, B6
> F
;
167 typedef typename
_bi::list_av_7
<A1
, A2
, A3
, A4
, A5
, A6
, A7
>::type list_type
;
168 return _bi::bind_t
<Rt2
, F
, list_type
>(F(f
), list_type(a1
, a2
, a3
, a4
, a5
, a6
, a7
));
171 template<class Rt2
, class R
, class T
,
172 class B1
, class B2
, class B3
, class B4
, class B5
, class B6
,
173 class A1
, class A2
, class A3
, class A4
, class A5
, class A6
, class A7
>
174 _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
>
175 BOOST_BIND(boost::type
<Rt2
>, 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
)
177 typedef _mfi::BOOST_BIND_MF_NAME(cmf6
)<R
, T
, B1
, B2
, B3
, B4
, B5
, B6
> F
;
178 typedef typename
_bi::list_av_7
<A1
, A2
, A3
, A4
, A5
, A6
, A7
>::type list_type
;
179 return _bi::bind_t
<Rt2
, F
, list_type
>(F(f
), list_type(a1
, a2
, a3
, a4
, a5
, a6
, a7
));
184 template<class Rt2
, class R
, class T
,
185 class B1
, class B2
, class B3
, class B4
, class B5
, class B6
, class B7
,
186 class A1
, class A2
, class A3
, class A4
, class A5
, class A6
, class A7
, class A8
>
187 _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
>
188 BOOST_BIND(boost::type
<Rt2
>, 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
)
190 typedef _mfi::BOOST_BIND_MF_NAME(mf7
)<R
, T
, B1
, B2
, B3
, B4
, B5
, B6
, B7
> F
;
191 typedef typename
_bi::list_av_8
<A1
, A2
, A3
, A4
, A5
, A6
, A7
, A8
>::type list_type
;
192 return _bi::bind_t
<Rt2
, F
, list_type
>(F(f
), list_type(a1
, a2
, a3
, a4
, a5
, a6
, a7
, a8
));
195 template<class Rt2
, class R
, class T
,
196 class B1
, class B2
, class B3
, class B4
, class B5
, class B6
, class B7
,
197 class A1
, class A2
, class A3
, class A4
, class A5
, class A6
, class A7
, class A8
>
198 _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
>
199 BOOST_BIND(boost::type
<Rt2
>, 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
)
201 typedef _mfi::BOOST_BIND_MF_NAME(cmf7
)<R
, T
, B1
, B2
, B3
, B4
, B5
, B6
, B7
> F
;
202 typedef typename
_bi::list_av_8
<A1
, A2
, A3
, A4
, A5
, A6
, A7
, A8
>::type list_type
;
203 return _bi::bind_t
<Rt2
, F
, list_type
>(F(f
), list_type(a1
, a2
, a3
, a4
, a5
, a6
, a7
, a8
));
208 template<class Rt2
, class R
, class T
,
209 class B1
, class B2
, class B3
, class B4
, class B5
, class B6
, class B7
, class B8
,
210 class A1
, class A2
, class A3
, class A4
, class A5
, class A6
, class A7
, class A8
, class A9
>
211 _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
>
212 BOOST_BIND(boost::type
<Rt2
>, 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
)
214 typedef _mfi::BOOST_BIND_MF_NAME(mf8
)<R
, T
, B1
, B2
, B3
, B4
, B5
, B6
, B7
, B8
> F
;
215 typedef typename
_bi::list_av_9
<A1
, A2
, A3
, A4
, A5
, A6
, A7
, A8
, A9
>::type list_type
;
216 return _bi::bind_t
<Rt2
, F
, list_type
>(F(f
), list_type(a1
, a2
, a3
, a4
, a5
, a6
, a7
, a8
, a9
));
219 template<class Rt2
, class R
, class T
,
220 class B1
, class B2
, class B3
, class B4
, class B5
, class B6
, class B7
, class B8
,
221 class A1
, class A2
, class A3
, class A4
, class A5
, class A6
, class A7
, class A8
, class A9
>
222 _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
>
223 BOOST_BIND(boost::type
<Rt2
>, 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
)
225 typedef _mfi::BOOST_BIND_MF_NAME(cmf8
)<R
, T
, B1
, B2
, B3
, B4
, B5
, B6
, B7
, B8
> F
;
226 typedef typename
_bi::list_av_9
<A1
, A2
, A3
, A4
, A5
, A6
, A7
, A8
, A9
>::type list_type
;
227 return _bi::bind_t
<Rt2
, F
, list_type
>(F(f
), list_type(a1
, a2
, a3
, a4
, a5
, a6
, a7
, a8
, a9
));