Chris@16
|
1 //
|
Chris@16
|
2 // bind/bind_template.hpp
|
Chris@16
|
3 //
|
Chris@16
|
4 // Do not include this header directly.
|
Chris@16
|
5 //
|
Chris@16
|
6 // Copyright (c) 2001-2004 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 typedef typename result_traits<R, F>::type result_type;
|
Chris@16
|
16
|
Chris@16
|
17 result_type operator()()
|
Chris@16
|
18 {
|
Chris@16
|
19 list0 a;
|
Chris@16
|
20 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
21 }
|
Chris@16
|
22
|
Chris@16
|
23 result_type operator()() const
|
Chris@16
|
24 {
|
Chris@16
|
25 list0 a;
|
Chris@16
|
26 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
27 }
|
Chris@16
|
28
|
Chris@16
|
29 template<class A1> result_type operator()(A1 & a1)
|
Chris@16
|
30 {
|
Chris@16
|
31 list1<A1 &> a(a1);
|
Chris@16
|
32 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
33 }
|
Chris@16
|
34
|
Chris@16
|
35 template<class A1> result_type operator()(A1 & a1) const
|
Chris@16
|
36 {
|
Chris@16
|
37 list1<A1 &> a(a1);
|
Chris@16
|
38 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
39 }
|
Chris@16
|
40
|
Chris@16
|
41 #if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
|
Chris@16
|
42 && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
|
Chris@16
|
43
|
Chris@16
|
44 template<class A1> result_type operator()(A1 const & a1)
|
Chris@16
|
45 {
|
Chris@16
|
46 list1<A1 const &> a(a1);
|
Chris@16
|
47 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
48 }
|
Chris@16
|
49
|
Chris@16
|
50 template<class A1> result_type operator()(A1 const & a1) const
|
Chris@16
|
51 {
|
Chris@16
|
52 list1<A1 const &> a(a1);
|
Chris@16
|
53 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
54 }
|
Chris@16
|
55
|
Chris@16
|
56 #endif
|
Chris@16
|
57
|
Chris@16
|
58 template<class A1, class A2> result_type operator()(A1 & a1, A2 & a2)
|
Chris@16
|
59 {
|
Chris@16
|
60 list2<A1 &, A2 &> a(a1, a2);
|
Chris@16
|
61 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
62 }
|
Chris@16
|
63
|
Chris@16
|
64 template<class A1, class A2> result_type operator()(A1 & a1, A2 & a2) const
|
Chris@16
|
65 {
|
Chris@16
|
66 list2<A1 &, A2 &> a(a1, a2);
|
Chris@16
|
67 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
68 }
|
Chris@16
|
69
|
Chris@16
|
70 #if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
|
Chris@16
|
71 && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
|
Chris@16
|
72
|
Chris@16
|
73 template<class A1, class A2> result_type operator()(A1 const & a1, A2 & a2)
|
Chris@16
|
74 {
|
Chris@16
|
75 list2<A1 const &, A2 &> a(a1, a2);
|
Chris@16
|
76 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
77 }
|
Chris@16
|
78
|
Chris@16
|
79 template<class A1, class A2> result_type operator()(A1 const & a1, A2 & a2) const
|
Chris@16
|
80 {
|
Chris@16
|
81 list2<A1 const &, A2 &> a(a1, a2);
|
Chris@16
|
82 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
83 }
|
Chris@16
|
84
|
Chris@16
|
85
|
Chris@16
|
86 template<class A1, class A2> result_type operator()(A1 & a1, A2 const & a2)
|
Chris@16
|
87 {
|
Chris@16
|
88 list2<A1 &, A2 const &> a(a1, a2);
|
Chris@16
|
89 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
90 }
|
Chris@16
|
91
|
Chris@16
|
92 template<class A1, class A2> result_type operator()(A1 & a1, A2 const & a2) const
|
Chris@16
|
93 {
|
Chris@16
|
94 list2<A1 &, A2 const &> a(a1, a2);
|
Chris@16
|
95 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
96 }
|
Chris@16
|
97
|
Chris@16
|
98
|
Chris@16
|
99 template<class A1, class A2> result_type operator()(A1 const & a1, A2 const & a2)
|
Chris@16
|
100 {
|
Chris@16
|
101 list2<A1 const &, A2 const &> a(a1, a2);
|
Chris@16
|
102 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
103 }
|
Chris@16
|
104
|
Chris@16
|
105 template<class A1, class A2> result_type operator()(A1 const & a1, A2 const & a2) const
|
Chris@16
|
106 {
|
Chris@16
|
107 list2<A1 const &, A2 const &> a(a1, a2);
|
Chris@16
|
108 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
109 }
|
Chris@16
|
110
|
Chris@16
|
111 #endif
|
Chris@16
|
112
|
Chris@16
|
113 template<class A1, class A2, class A3> result_type operator()(A1 & a1, A2 & a2, A3 & a3)
|
Chris@16
|
114 {
|
Chris@16
|
115 list3<A1 &, A2 &, A3 &> a(a1, a2, a3);
|
Chris@16
|
116 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
117 }
|
Chris@16
|
118
|
Chris@16
|
119 template<class A1, class A2, class A3> result_type operator()(A1 & a1, A2 & a2, A3 & a3) const
|
Chris@16
|
120 {
|
Chris@16
|
121 list3<A1 &, A2 &, A3 &> a(a1, a2, a3);
|
Chris@16
|
122 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
123 }
|
Chris@16
|
124
|
Chris@16
|
125 #if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
|
Chris@16
|
126 && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
|
Chris@16
|
127
|
Chris@16
|
128 template<class A1, class A2, class A3> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3)
|
Chris@16
|
129 {
|
Chris@16
|
130 list3<A1 const &, A2 const &, A3 const &> a(a1, a2, a3);
|
Chris@16
|
131 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
132 }
|
Chris@16
|
133
|
Chris@16
|
134 template<class A1, class A2, class A3> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3) const
|
Chris@16
|
135 {
|
Chris@16
|
136 list3<A1 const &, A2 const &, A3 const &> a(a1, a2, a3);
|
Chris@16
|
137 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
138 }
|
Chris@16
|
139
|
Chris@16
|
140 #endif
|
Chris@16
|
141
|
Chris@16
|
142 template<class A1, class A2, class A3, class A4> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4)
|
Chris@16
|
143 {
|
Chris@16
|
144 list4<A1 &, A2 &, A3 &, A4 &> a(a1, a2, a3, a4);
|
Chris@16
|
145 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
146 }
|
Chris@16
|
147
|
Chris@16
|
148 template<class A1, class A2, class A3, class A4> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4) const
|
Chris@16
|
149 {
|
Chris@16
|
150 list4<A1 &, A2 &, A3 &, A4 &> a(a1, a2, a3, a4);
|
Chris@16
|
151 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
152 }
|
Chris@16
|
153
|
Chris@16
|
154 #if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
|
Chris@16
|
155 && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
|
Chris@16
|
156
|
Chris@16
|
157 template<class A1, class A2, class A3, class A4> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4)
|
Chris@16
|
158 {
|
Chris@16
|
159 list4<A1 const &, A2 const &, A3 const &, A4 const &> a(a1, a2, a3, a4);
|
Chris@16
|
160 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
161 }
|
Chris@16
|
162
|
Chris@16
|
163 template<class A1, class A2, class A3, class A4> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4) const
|
Chris@16
|
164 {
|
Chris@16
|
165 list4<A1 const &, A2 const &, A3 const &, A4 const &> a(a1, a2, a3, a4);
|
Chris@16
|
166 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
167 }
|
Chris@16
|
168
|
Chris@16
|
169 #endif
|
Chris@16
|
170
|
Chris@16
|
171 template<class A1, class A2, class A3, class A4, class A5> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5)
|
Chris@16
|
172 {
|
Chris@16
|
173 list5<A1 &, A2 &, A3 &, A4 &, A5 &> a(a1, a2, a3, a4, a5);
|
Chris@16
|
174 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
175 }
|
Chris@16
|
176
|
Chris@16
|
177 template<class A1, class A2, class A3, class A4, class A5> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5) const
|
Chris@16
|
178 {
|
Chris@16
|
179 list5<A1 &, A2 &, A3 &, A4 &, A5 &> a(a1, a2, a3, a4, a5);
|
Chris@16
|
180 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
181 }
|
Chris@16
|
182
|
Chris@16
|
183 #if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
|
Chris@16
|
184 && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
|
Chris@16
|
185
|
Chris@16
|
186 template<class A1, class A2, class A3, class A4, class A5> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5)
|
Chris@16
|
187 {
|
Chris@16
|
188 list5<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &> a(a1, a2, a3, a4, a5);
|
Chris@16
|
189 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
190 }
|
Chris@16
|
191
|
Chris@16
|
192 template<class A1, class A2, class A3, class A4, class A5> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5) const
|
Chris@16
|
193 {
|
Chris@16
|
194 list5<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &> a(a1, a2, a3, a4, a5);
|
Chris@16
|
195 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
196 }
|
Chris@16
|
197
|
Chris@16
|
198 #endif
|
Chris@16
|
199
|
Chris@16
|
200 template<class A1, class A2, class A3, class A4, class A5, class A6> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6)
|
Chris@16
|
201 {
|
Chris@16
|
202 list6<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &> a(a1, a2, a3, a4, a5, a6);
|
Chris@16
|
203 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
204 }
|
Chris@16
|
205
|
Chris@16
|
206 template<class A1, class A2, class A3, class A4, class A5, class A6> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6) const
|
Chris@16
|
207 {
|
Chris@16
|
208 list6<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &> a(a1, a2, a3, a4, a5, a6);
|
Chris@16
|
209 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
210 }
|
Chris@16
|
211
|
Chris@16
|
212 #if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
|
Chris@16
|
213 && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
|
Chris@16
|
214
|
Chris@16
|
215 template<class A1, class A2, class A3, class A4, class A5, class A6> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6)
|
Chris@16
|
216 {
|
Chris@16
|
217 list6<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &, A6 const &> a(a1, a2, a3, a4, a5, a6);
|
Chris@16
|
218 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
219 }
|
Chris@16
|
220
|
Chris@16
|
221 template<class A1, class A2, class A3, class A4, class A5, class A6> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6) const
|
Chris@16
|
222 {
|
Chris@16
|
223 list6<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &, A6 const &> a(a1, a2, a3, a4, a5, a6);
|
Chris@16
|
224 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
225 }
|
Chris@16
|
226
|
Chris@16
|
227 #endif
|
Chris@16
|
228
|
Chris@16
|
229 template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7)
|
Chris@16
|
230 {
|
Chris@16
|
231 list7<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &, A7 &> a(a1, a2, a3, a4, a5, a6, a7);
|
Chris@16
|
232 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
233 }
|
Chris@16
|
234
|
Chris@16
|
235 template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7) const
|
Chris@16
|
236 {
|
Chris@16
|
237 list7<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &, A7 &> a(a1, a2, a3, a4, a5, a6, a7);
|
Chris@16
|
238 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
239 }
|
Chris@16
|
240
|
Chris@16
|
241 #if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
|
Chris@16
|
242 && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
|
Chris@16
|
243
|
Chris@16
|
244 template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7)
|
Chris@16
|
245 {
|
Chris@16
|
246 list7<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &, A6 const &, A7 const &> a(a1, a2, a3, a4, a5, a6, a7);
|
Chris@16
|
247 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
248 }
|
Chris@16
|
249
|
Chris@16
|
250 template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7) const
|
Chris@16
|
251 {
|
Chris@16
|
252 list7<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &, A6 const &, A7 const &> a(a1, a2, a3, a4, a5, a6, a7);
|
Chris@16
|
253 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
254 }
|
Chris@16
|
255
|
Chris@16
|
256 #endif
|
Chris@16
|
257
|
Chris@16
|
258 template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8)
|
Chris@16
|
259 {
|
Chris@16
|
260 list8<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &, A7 &, A8 &> a(a1, a2, a3, a4, a5, a6, a7, a8);
|
Chris@16
|
261 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
262 }
|
Chris@16
|
263
|
Chris@16
|
264 template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8) const
|
Chris@16
|
265 {
|
Chris@16
|
266 list8<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &, A7 &, A8 &> a(a1, a2, a3, a4, a5, a6, a7, a8);
|
Chris@16
|
267 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
268 }
|
Chris@16
|
269
|
Chris@16
|
270 #if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
|
Chris@16
|
271 && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
|
Chris@16
|
272
|
Chris@16
|
273 template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8)
|
Chris@16
|
274 {
|
Chris@16
|
275 list8<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &, A6 const &, A7 const &, A8 const &> a(a1, a2, a3, a4, a5, a6, a7, a8);
|
Chris@16
|
276 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
277 }
|
Chris@16
|
278
|
Chris@16
|
279 template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8) const
|
Chris@16
|
280 {
|
Chris@16
|
281 list8<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &, A6 const &, A7 const &, A8 const &> a(a1, a2, a3, a4, a5, a6, a7, a8);
|
Chris@16
|
282 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
283 }
|
Chris@16
|
284
|
Chris@16
|
285 #endif
|
Chris@16
|
286
|
Chris@16
|
287 template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9)
|
Chris@16
|
288 {
|
Chris@16
|
289 list9<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &, A7 &, A8 &, A9 &> a(a1, a2, a3, a4, a5, a6, a7, a8, a9);
|
Chris@16
|
290 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
291 }
|
Chris@16
|
292
|
Chris@16
|
293 template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9) const
|
Chris@16
|
294 {
|
Chris@16
|
295 list9<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &, A7 &, A8 &, A9 &> a(a1, a2, a3, a4, a5, a6, a7, a8, a9);
|
Chris@16
|
296 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
297 }
|
Chris@16
|
298
|
Chris@16
|
299 #if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
|
Chris@16
|
300 && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
|
Chris@16
|
301
|
Chris@16
|
302 template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9)
|
Chris@16
|
303 {
|
Chris@16
|
304 list9<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &, A6 const &, A7 const &, A8 const &, A9 const &> a(a1, a2, a3, a4, a5, a6, a7, a8, a9);
|
Chris@16
|
305 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
306 }
|
Chris@16
|
307
|
Chris@16
|
308 template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9) const
|
Chris@16
|
309 {
|
Chris@16
|
310 list9<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &, A6 const &, A7 const &, A8 const &, A9 const &> a(a1, a2, a3, a4, a5, a6, a7, a8, a9);
|
Chris@16
|
311 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
312 }
|
Chris@16
|
313
|
Chris@16
|
314 #endif
|
Chris@16
|
315
|
Chris@16
|
316 template<class A> result_type eval(A & a)
|
Chris@16
|
317 {
|
Chris@16
|
318 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
319 }
|
Chris@16
|
320
|
Chris@16
|
321 template<class A> result_type eval(A & a) const
|
Chris@16
|
322 {
|
Chris@16
|
323 BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
|
Chris@16
|
324 }
|
Chris@16
|
325
|
Chris@16
|
326 template<class V> void accept(V & v) const
|
Chris@16
|
327 {
|
Chris@16
|
328 #if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( __BORLANDC__ )
|
Chris@16
|
329
|
Chris@16
|
330 using boost::visit_each;
|
Chris@16
|
331
|
Chris@16
|
332 #endif
|
Chris@16
|
333 BOOST_BIND_VISIT_EACH(v, f_, 0);
|
Chris@16
|
334 l_.accept(v);
|
Chris@16
|
335 }
|
Chris@16
|
336
|
Chris@16
|
337 bool compare(this_type const & rhs) const
|
Chris@16
|
338 {
|
Chris@16
|
339 return ref_compare(f_, rhs.f_, 0) && l_ == rhs.l_;
|
Chris@16
|
340 }
|
Chris@16
|
341
|
Chris@16
|
342 private:
|
Chris@16
|
343
|
Chris@16
|
344 F f_;
|
Chris@16
|
345 L l_;
|