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