blob: 563deef17be43edf46a8d4eb58581c3bd7f41982 [file] [log] [blame]
Jeff Thompsonef2d5a42013-08-22 19:09:24 -07001//
2// bind/bind_mf2_cc.hpp - member functions, type<> syntax
3//
4// Do not include this header directly.
5//
6// Copyright (c) 2001 Peter Dimov and Multi Media Ltd.
7// Copyright (c) 2008 Peter Dimov
8//
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
12//
13// See http://www.boost.org/libs/bind/bind.html for documentation.
14//
15
16// 0
17
18template<class Rt2, class R, class T,
19 class A1>
Jeff Thompson3d613fd2013-10-15 15:39:04 -070020 _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(mf0)<R, T>, typename _bi::list_av_1<A1>::type>
21 NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (), A1 a1)
Jeff Thompsonef2d5a42013-08-22 19:09:24 -070022{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070023 typedef _mfi::NDNBOOST_BIND_MF_NAME(mf0)<R, T> F;
Jeff Thompsonef2d5a42013-08-22 19:09:24 -070024 typedef typename _bi::list_av_1<A1>::type list_type;
25 return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1));
26}
27
28template<class Rt2, class R, class T,
29 class A1>
Jeff Thompson3d613fd2013-10-15 15:39:04 -070030 _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(cmf0)<R, T>, typename _bi::list_av_1<A1>::type>
31 NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) () const, A1 a1)
Jeff Thompsonef2d5a42013-08-22 19:09:24 -070032{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070033 typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf0)<R, T> F;
Jeff Thompsonef2d5a42013-08-22 19:09:24 -070034 typedef typename _bi::list_av_1<A1>::type list_type;
35 return _bi::bind_t<Rt2, F, list_type>(F(f), list_type(a1));
36}
37
38// 1
39
40template<class Rt2, class R, class T,
41 class B1,
42 class A1, class A2>
Jeff Thompson3d613fd2013-10-15 15:39:04 -070043 _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(mf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
44 NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (B1), A1 a1, A2 a2)
Jeff Thompsonef2d5a42013-08-22 19:09:24 -070045{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070046 typedef _mfi::NDNBOOST_BIND_MF_NAME(mf1)<R, T, B1> F;
Jeff Thompsonef2d5a42013-08-22 19:09:24 -070047 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));
49}
50
51template<class Rt2, class R, class T,
52 class B1,
53 class A1, class A2>
Jeff Thompson3d613fd2013-10-15 15:39:04 -070054 _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(cmf1)<R, T, B1>, typename _bi::list_av_2<A1, A2>::type>
55 NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (B1) const, A1 a1, A2 a2)
Jeff Thompsonef2d5a42013-08-22 19:09:24 -070056{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070057 typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf1)<R, T, B1> F;
Jeff Thompsonef2d5a42013-08-22 19:09:24 -070058 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));
60}
61
62// 2
63
64template<class Rt2, class R, class T,
65 class B1, class B2,
66 class A1, class A2, class A3>
Jeff Thompson3d613fd2013-10-15 15:39:04 -070067 _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(mf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
68 NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2), A1 a1, A2 a2, A3 a3)
Jeff Thompsonef2d5a42013-08-22 19:09:24 -070069{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070070 typedef _mfi::NDNBOOST_BIND_MF_NAME(mf2)<R, T, B1, B2> F;
Jeff Thompsonef2d5a42013-08-22 19:09:24 -070071 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));
73}
74
75template<class Rt2, class R, class T,
76 class B1, class B2,
77 class A1, class A2, class A3>
Jeff Thompson3d613fd2013-10-15 15:39:04 -070078 _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
79 NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2) const, A1 a1, A2 a2, A3 a3)
Jeff Thompsonef2d5a42013-08-22 19:09:24 -070080{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070081 typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf2)<R, T, B1, B2> F;
Jeff Thompsonef2d5a42013-08-22 19:09:24 -070082 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));
84}
85
86// 3
87
88template<class Rt2, class R, class T,
89 class B1, class B2, class B3,
90 class A1, class A2, class A3, class A4>
Jeff Thompson3d613fd2013-10-15 15:39:04 -070091 _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(mf3)<R, T, B1, B2, B3>, typename _bi::list_av_4<A1, A2, A3, A4>::type>
92 NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3), A1 a1, A2 a2, A3 a3, A4 a4)
Jeff Thompsonef2d5a42013-08-22 19:09:24 -070093{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070094 typedef _mfi::NDNBOOST_BIND_MF_NAME(mf3)<R, T, B1, B2, B3> F;
Jeff Thompsonef2d5a42013-08-22 19:09:24 -070095 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));
97}
98
99template<class Rt2, class R, class T,
100 class B1, class B2, class B3,
101 class A1, class A2, class A3, class A4>
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700102 _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(cmf3)<R, T, B1, B2, B3>, typename _bi::list_av_4<A1, A2, A3, A4>::type>
103 NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3) const, A1 a1, A2 a2, A3 a3, A4 a4)
Jeff Thompsonef2d5a42013-08-22 19:09:24 -0700104{
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700105 typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf3)<R, T, B1, B2, B3> F;
Jeff Thompsonef2d5a42013-08-22 19:09:24 -0700106 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));
108}
109
110// 4
111
112template<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>
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700115 _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(mf4)<R, T, B1, B2, B3, B4>, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
116 NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
Jeff Thompsonef2d5a42013-08-22 19:09:24 -0700117{
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700118 typedef _mfi::NDNBOOST_BIND_MF_NAME(mf4)<R, T, B1, B2, B3, B4> F;
Jeff Thompsonef2d5a42013-08-22 19:09:24 -0700119 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));
121}
122
123template<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>
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700126 _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(cmf4)<R, T, B1, B2, B3, B4>, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
127 NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
Jeff Thompsonef2d5a42013-08-22 19:09:24 -0700128{
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700129 typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf4)<R, T, B1, B2, B3, B4> F;
Jeff Thompsonef2d5a42013-08-22 19:09:24 -0700130 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));
132}
133
134// 5
135
136template<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>
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700139 _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(mf5)<R, T, B1, B2, B3, B4, B5>, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
140 NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
Jeff Thompsonef2d5a42013-08-22 19:09:24 -0700141{
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700142 typedef _mfi::NDNBOOST_BIND_MF_NAME(mf5)<R, T, B1, B2, B3, B4, B5> F;
Jeff Thompsonef2d5a42013-08-22 19:09:24 -0700143 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));
145}
146
147template<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>
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700150 _bi::bind_t<Rt2, _mfi::NDNBOOST_BIND_MF_NAME(cmf5)<R, T, B1, B2, B3, B4, B5>, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
151 NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
Jeff Thompsonef2d5a42013-08-22 19:09:24 -0700152{
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700153 typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf5)<R, T, B1, B2, B3, B4, B5> F;
Jeff Thompsonef2d5a42013-08-22 19:09:24 -0700154 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));
156}
157
158// 6
159
160template<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>
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700163 _bi::bind_t<Rt2, _mfi::NDNBOOST_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 NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_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)
Jeff Thompsonef2d5a42013-08-22 19:09:24 -0700165{
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700166 typedef _mfi::NDNBOOST_BIND_MF_NAME(mf6)<R, T, B1, B2, B3, B4, B5, B6> F;
Jeff Thompsonef2d5a42013-08-22 19:09:24 -0700167 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));
169}
170
171template<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>
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700174 _bi::bind_t<Rt2, _mfi::NDNBOOST_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 NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_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)
Jeff Thompsonef2d5a42013-08-22 19:09:24 -0700176{
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700177 typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf6)<R, T, B1, B2, B3, B4, B5, B6> F;
Jeff Thompsonef2d5a42013-08-22 19:09:24 -0700178 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));
180}
181
182// 7
183
184template<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>
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700187 _bi::bind_t<Rt2, _mfi::NDNBOOST_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 NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_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)
Jeff Thompsonef2d5a42013-08-22 19:09:24 -0700189{
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700190 typedef _mfi::NDNBOOST_BIND_MF_NAME(mf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
Jeff Thompsonef2d5a42013-08-22 19:09:24 -0700191 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));
193}
194
195template<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>
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700198 _bi::bind_t<Rt2, _mfi::NDNBOOST_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 NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_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)
Jeff Thompsonef2d5a42013-08-22 19:09:24 -0700200{
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700201 typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf7)<R, T, B1, B2, B3, B4, B5, B6, B7> F;
Jeff Thompsonef2d5a42013-08-22 19:09:24 -0700202 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));
204}
205
206// 8
207
208template<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>
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700211 _bi::bind_t<Rt2, _mfi::NDNBOOST_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 NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_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)
Jeff Thompsonef2d5a42013-08-22 19:09:24 -0700213{
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700214 typedef _mfi::NDNBOOST_BIND_MF_NAME(mf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
Jeff Thompsonef2d5a42013-08-22 19:09:24 -0700215 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));
217}
218
219template<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>
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700222 _bi::bind_t<Rt2, _mfi::NDNBOOST_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 NDNBOOST_BIND(ndnboost::type<Rt2>, R (NDNBOOST_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)
Jeff Thompsonef2d5a42013-08-22 19:09:24 -0700224{
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700225 typedef _mfi::NDNBOOST_BIND_MF_NAME(cmf8)<R, T, B1, B2, B3, B4, B5, B6, B7, B8> F;
Jeff Thompsonef2d5a42013-08-22 19:09:24 -0700226 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));
228}