Chris@16
|
1 // -- bind_functions.hpp -- Boost Lambda Library
|
Chris@16
|
2 //
|
Chris@16
|
3 // Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
|
Chris@16
|
4 //
|
Chris@16
|
5 // Distributed under the Boost Software License, Version 1.0. (See
|
Chris@16
|
6 // accompanying file LICENSE_1_0.txt or copy at
|
Chris@16
|
7 // http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
8 //
|
Chris@16
|
9 // For more information, see http://www.boost.org
|
Chris@16
|
10
|
Chris@16
|
11 // ----------------------------------------------------------------
|
Chris@16
|
12
|
Chris@16
|
13 #ifndef BOOST_LAMBDA_BIND_FUNCTIONS_HPP
|
Chris@16
|
14 #define BOOST_LAMBDA_BIND_FUNCTIONS_HPP
|
Chris@16
|
15
|
Chris@16
|
16
|
Chris@16
|
17 namespace boost {
|
Chris@16
|
18 namespace lambda {
|
Chris@16
|
19
|
Chris@16
|
20 #ifdef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
|
Chris@16
|
21
|
Chris@16
|
22 // gcc 2.96 instantiates bind functions it does not even call.
|
Chris@16
|
23 // These instantiations lead to incorrect types in the return type,
|
Chris@16
|
24 // and a compilation error results.
|
Chris@16
|
25 // This tweaking is to prevent the formation of the erroneous type.
|
Chris@16
|
26 namespace detail {
|
Chris@16
|
27
|
Chris@16
|
28 template<class T> struct constify_non_funcs {
|
Chris@16
|
29 typedef typename
|
Chris@16
|
30 detail::IF_type<boost::is_function<T>::value,
|
Chris@16
|
31 boost::add_reference<T>,
|
Chris@16
|
32 boost::add_const<T>
|
Chris@16
|
33 >::type type;
|
Chris@16
|
34 };
|
Chris@16
|
35
|
Chris@16
|
36 }
|
Chris@16
|
37 #endif
|
Chris@16
|
38 // 1-argument bind functions --------------------------
|
Chris@16
|
39 #ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
|
Chris@16
|
40 template <class Result>
|
Chris@16
|
41 inline const
|
Chris@16
|
42 lambda_functor<
|
Chris@16
|
43 lambda_functor_base<
|
Chris@16
|
44 action<1, function_action<1, Result> >,
|
Chris@16
|
45 typename detail::bind_tuple_mapper<Result(&)()>::type
|
Chris@16
|
46 >
|
Chris@16
|
47 >
|
Chris@16
|
48
|
Chris@16
|
49 bind(Result(& a1)()) {
|
Chris@16
|
50 return
|
Chris@16
|
51 lambda_functor_base<
|
Chris@16
|
52 action<1, function_action<1, Result> >,
|
Chris@16
|
53 typename detail::bind_tuple_mapper<Result(&)()>::type
|
Chris@16
|
54 >
|
Chris@16
|
55 ( typename detail::bind_tuple_mapper<Result(&)()>::type
|
Chris@16
|
56 (a1)
|
Chris@16
|
57 );
|
Chris@16
|
58 }
|
Chris@16
|
59 #endif
|
Chris@16
|
60
|
Chris@16
|
61 #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
|
Chris@16
|
62 template <class Arg1>
|
Chris@16
|
63 inline const
|
Chris@16
|
64 lambda_functor<
|
Chris@16
|
65 lambda_functor_base<
|
Chris@16
|
66 action<1, function_action<1> >,
|
Chris@16
|
67 typename detail::bind_tuple_mapper<const Arg1>::type
|
Chris@16
|
68 >
|
Chris@16
|
69 >
|
Chris@16
|
70
|
Chris@16
|
71 bind(const Arg1& a1) {
|
Chris@16
|
72 return
|
Chris@16
|
73 lambda_functor_base<
|
Chris@16
|
74 action<1, function_action<1> >,
|
Chris@16
|
75 typename detail::bind_tuple_mapper<const Arg1>::type
|
Chris@16
|
76 >
|
Chris@16
|
77 ( typename detail::bind_tuple_mapper<const Arg1>::type
|
Chris@16
|
78 (a1)
|
Chris@16
|
79 );
|
Chris@16
|
80 }
|
Chris@16
|
81
|
Chris@16
|
82 template <class Result, class Arg1>
|
Chris@16
|
83 inline const
|
Chris@16
|
84 lambda_functor<
|
Chris@16
|
85 lambda_functor_base<
|
Chris@16
|
86 action<1, function_action<1, Result> >,
|
Chris@16
|
87 typename detail::bind_tuple_mapper<const Arg1>::type
|
Chris@16
|
88 >
|
Chris@16
|
89 >
|
Chris@16
|
90
|
Chris@16
|
91 bind(const Arg1& a1) {
|
Chris@16
|
92 return
|
Chris@16
|
93 lambda_functor_base<
|
Chris@16
|
94 action<1, function_action<1, Result> >,
|
Chris@16
|
95 typename detail::bind_tuple_mapper<const Arg1>::type
|
Chris@16
|
96 >
|
Chris@16
|
97 ( typename detail::bind_tuple_mapper<const Arg1>::type
|
Chris@16
|
98 (a1)
|
Chris@16
|
99 );
|
Chris@16
|
100 }
|
Chris@16
|
101
|
Chris@16
|
102
|
Chris@16
|
103 #else
|
Chris@16
|
104 template <class Arg1>
|
Chris@16
|
105 inline const
|
Chris@16
|
106 lambda_functor<
|
Chris@16
|
107 lambda_functor_base<
|
Chris@16
|
108 action<1, function_action<1> >,
|
Chris@16
|
109 typename detail::bind_tuple_mapper<
|
Chris@16
|
110 typename detail::constify_non_funcs<Arg1>::type
|
Chris@16
|
111 >::type
|
Chris@16
|
112 >
|
Chris@16
|
113 >
|
Chris@16
|
114
|
Chris@16
|
115 bind(const Arg1& a1) {
|
Chris@16
|
116 return
|
Chris@16
|
117 lambda_functor_base<
|
Chris@16
|
118 action<1, function_action<1> >,
|
Chris@16
|
119 typename detail::bind_tuple_mapper<
|
Chris@16
|
120 typename detail::constify_non_funcs<Arg1>::type
|
Chris@16
|
121 >::type
|
Chris@16
|
122 >
|
Chris@16
|
123 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
124 typename detail::constify_non_funcs<Arg1>::type
|
Chris@16
|
125 >::type
|
Chris@16
|
126 (a1)
|
Chris@16
|
127 );
|
Chris@16
|
128 }
|
Chris@16
|
129
|
Chris@16
|
130 template <class Result, class Arg1>
|
Chris@16
|
131 inline const
|
Chris@16
|
132 lambda_functor<
|
Chris@16
|
133 lambda_functor_base<
|
Chris@16
|
134 action<1, function_action<1, Result> >,
|
Chris@16
|
135 typename detail::bind_tuple_mapper<
|
Chris@16
|
136 typename detail::constify_non_funcs<Arg1>::type
|
Chris@16
|
137 >::type
|
Chris@16
|
138 >
|
Chris@16
|
139 >
|
Chris@16
|
140
|
Chris@16
|
141 bind(const Arg1& a1) {
|
Chris@16
|
142 return
|
Chris@16
|
143 lambda_functor_base<
|
Chris@16
|
144 action<1, function_action<1, Result> >,
|
Chris@16
|
145 typename detail::bind_tuple_mapper<
|
Chris@16
|
146 typename detail::constify_non_funcs<Arg1>::type
|
Chris@16
|
147 >::type
|
Chris@16
|
148 >
|
Chris@16
|
149 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
150 typename detail::constify_non_funcs<Arg1>::type
|
Chris@16
|
151 >::type
|
Chris@16
|
152 (a1)
|
Chris@16
|
153 );
|
Chris@16
|
154 }
|
Chris@16
|
155
|
Chris@16
|
156 template <class Result>
|
Chris@16
|
157 inline const
|
Chris@16
|
158 lambda_functor<
|
Chris@16
|
159 lambda_functor_base<
|
Chris@16
|
160 action<1, function_action<1, Result> >,
|
Chris@16
|
161 typename detail::bind_tuple_mapper<Result(*)()>::type
|
Chris@16
|
162 >
|
Chris@16
|
163 >
|
Chris@16
|
164
|
Chris@16
|
165 bind(Result(* const & a1)()) {
|
Chris@16
|
166 return
|
Chris@16
|
167 lambda_functor_base<
|
Chris@16
|
168 action<1, function_action<1, Result> >,
|
Chris@16
|
169 typename detail::bind_tuple_mapper<Result(*)()>::type
|
Chris@16
|
170 >
|
Chris@16
|
171 ( typename detail::bind_tuple_mapper<Result(*)()>::type
|
Chris@16
|
172 (a1)
|
Chris@16
|
173 );
|
Chris@16
|
174 }
|
Chris@16
|
175
|
Chris@16
|
176
|
Chris@16
|
177 #endif
|
Chris@16
|
178
|
Chris@16
|
179 // 2-argument bind functions --------------------------
|
Chris@16
|
180 #ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
|
Chris@16
|
181 template <class Result, class Par1, class Arg2>
|
Chris@16
|
182 inline const
|
Chris@16
|
183 lambda_functor<
|
Chris@16
|
184 lambda_functor_base<
|
Chris@16
|
185 action<2, function_action<2, Result> >,
|
Chris@16
|
186 typename detail::bind_tuple_mapper<Result(&)(Par1), const Arg2>::type
|
Chris@16
|
187 >
|
Chris@16
|
188 >
|
Chris@16
|
189
|
Chris@16
|
190 bind(Result(&a1)(Par1), const Arg2& a2) {
|
Chris@16
|
191 return
|
Chris@16
|
192 lambda_functor_base<
|
Chris@16
|
193 action<2, function_action<2, Result> >,
|
Chris@16
|
194 typename detail::bind_tuple_mapper<Result(&)(Par1), const Arg2>::type
|
Chris@16
|
195 >
|
Chris@16
|
196 ( typename detail::bind_tuple_mapper<Result(&)(Par1), const Arg2>::type
|
Chris@16
|
197 (a1, a2)
|
Chris@16
|
198 );
|
Chris@16
|
199 }
|
Chris@16
|
200 #endif
|
Chris@16
|
201
|
Chris@16
|
202 #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
|
Chris@16
|
203 template <class Arg1, class Arg2>
|
Chris@16
|
204 inline const
|
Chris@16
|
205 lambda_functor<
|
Chris@16
|
206 lambda_functor_base<
|
Chris@16
|
207 action<2, function_action<2> >,
|
Chris@16
|
208 typename detail::bind_tuple_mapper<const Arg1, const Arg2>::type
|
Chris@16
|
209 >
|
Chris@16
|
210 >
|
Chris@16
|
211
|
Chris@16
|
212 bind(const Arg1& a1, const Arg2& a2) {
|
Chris@16
|
213 return
|
Chris@16
|
214 lambda_functor_base<
|
Chris@16
|
215 action<2, function_action<2> >,
|
Chris@16
|
216 typename detail::bind_tuple_mapper<const Arg1, const Arg2>::type
|
Chris@16
|
217 >
|
Chris@16
|
218 ( typename detail::bind_tuple_mapper<const Arg1, const Arg2>::type
|
Chris@16
|
219 (a1, a2)
|
Chris@16
|
220 );
|
Chris@16
|
221 }
|
Chris@16
|
222
|
Chris@16
|
223 template <class Result, class Arg1, class Arg2>
|
Chris@16
|
224 inline const
|
Chris@16
|
225 lambda_functor<
|
Chris@16
|
226 lambda_functor_base<
|
Chris@16
|
227 action<2, function_action<2, Result> >,
|
Chris@16
|
228 typename detail::bind_tuple_mapper<const Arg1, const Arg2>::type
|
Chris@16
|
229 >
|
Chris@16
|
230 >
|
Chris@16
|
231
|
Chris@16
|
232 bind(const Arg1& a1, const Arg2& a2) {
|
Chris@16
|
233 return
|
Chris@16
|
234 lambda_functor_base<
|
Chris@16
|
235 action<2, function_action<2, Result> >,
|
Chris@16
|
236 typename detail::bind_tuple_mapper<const Arg1, const Arg2>::type
|
Chris@16
|
237 >
|
Chris@16
|
238 ( typename detail::bind_tuple_mapper<const Arg1, const Arg2>::type
|
Chris@16
|
239 (a1, a2)
|
Chris@16
|
240 );
|
Chris@16
|
241 }
|
Chris@16
|
242
|
Chris@16
|
243
|
Chris@16
|
244 #else
|
Chris@16
|
245 template <class Arg1, class Arg2>
|
Chris@16
|
246 inline const
|
Chris@16
|
247 lambda_functor<
|
Chris@16
|
248 lambda_functor_base<
|
Chris@16
|
249 action<2, function_action<2> >,
|
Chris@16
|
250 typename detail::bind_tuple_mapper<
|
Chris@16
|
251 typename detail::constify_non_funcs<Arg1>::type, const Arg2
|
Chris@16
|
252 >::type
|
Chris@16
|
253 >
|
Chris@16
|
254 >
|
Chris@16
|
255
|
Chris@16
|
256 bind(const Arg1& a1, const Arg2& a2) {
|
Chris@16
|
257 return
|
Chris@16
|
258 lambda_functor_base<
|
Chris@16
|
259 action<2, function_action<2> >,
|
Chris@16
|
260 typename detail::bind_tuple_mapper<
|
Chris@16
|
261 typename detail::constify_non_funcs<Arg1>::type, const Arg2
|
Chris@16
|
262 >::type
|
Chris@16
|
263 >
|
Chris@16
|
264 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
265 typename detail::constify_non_funcs<Arg1>::type, const Arg2
|
Chris@16
|
266 >::type
|
Chris@16
|
267 (a1, a2)
|
Chris@16
|
268 );
|
Chris@16
|
269 }
|
Chris@16
|
270
|
Chris@16
|
271 template <class Result, class Arg1, class Arg2>
|
Chris@16
|
272 inline const
|
Chris@16
|
273 lambda_functor<
|
Chris@16
|
274 lambda_functor_base<
|
Chris@16
|
275 action<2, function_action<2, Result> >,
|
Chris@16
|
276 typename detail::bind_tuple_mapper<
|
Chris@16
|
277 typename detail::constify_non_funcs<Arg1>::type, const Arg2
|
Chris@16
|
278 >::type
|
Chris@16
|
279 >
|
Chris@16
|
280 >
|
Chris@16
|
281
|
Chris@16
|
282 bind(const Arg1& a1, const Arg2& a2) {
|
Chris@16
|
283 return
|
Chris@16
|
284 lambda_functor_base<
|
Chris@16
|
285 action<2, function_action<2, Result> >,
|
Chris@16
|
286 typename detail::bind_tuple_mapper<
|
Chris@16
|
287 typename detail::constify_non_funcs<Arg1>::type, const Arg2
|
Chris@16
|
288 >::type
|
Chris@16
|
289 >
|
Chris@16
|
290 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
291 typename detail::constify_non_funcs<Arg1>::type, const Arg2
|
Chris@16
|
292 >::type
|
Chris@16
|
293 (a1, a2)
|
Chris@16
|
294 );
|
Chris@16
|
295 }
|
Chris@16
|
296
|
Chris@16
|
297 template <class Result, class Par1, class Arg2>
|
Chris@16
|
298 inline const
|
Chris@16
|
299 lambda_functor<
|
Chris@16
|
300 lambda_functor_base<
|
Chris@16
|
301 action<2, function_action<2, Result> >,
|
Chris@16
|
302 typename detail::bind_tuple_mapper<Result(*)(Par1), const Arg2>::type
|
Chris@16
|
303 >
|
Chris@16
|
304 >
|
Chris@16
|
305
|
Chris@16
|
306 bind(Result(* const & a1)(Par1), const Arg2& a2) {
|
Chris@16
|
307 return
|
Chris@16
|
308 lambda_functor_base<
|
Chris@16
|
309 action<2, function_action<2, Result> >,
|
Chris@16
|
310 typename detail::bind_tuple_mapper<Result(*)(Par1), const Arg2>::type
|
Chris@16
|
311 >
|
Chris@16
|
312 ( typename detail::bind_tuple_mapper<Result(*)(Par1), const Arg2>::type
|
Chris@16
|
313 (a1, a2)
|
Chris@16
|
314 );
|
Chris@16
|
315 }
|
Chris@16
|
316
|
Chris@16
|
317
|
Chris@16
|
318 #endif
|
Chris@16
|
319
|
Chris@16
|
320 // 3-argument bind functions --------------------------
|
Chris@16
|
321 #ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
|
Chris@16
|
322 template <class Result, class Par1, class Par2, class Arg2, class Arg3>
|
Chris@16
|
323 inline const
|
Chris@16
|
324 lambda_functor<
|
Chris@16
|
325 lambda_functor_base<
|
Chris@16
|
326 action<3, function_action<3, Result> >,
|
Chris@16
|
327 typename detail::bind_tuple_mapper<
|
Chris@16
|
328 Result(&)(Par1, Par2), const Arg2, const Arg3
|
Chris@16
|
329 >::type
|
Chris@16
|
330 >
|
Chris@16
|
331 >
|
Chris@16
|
332
|
Chris@16
|
333 bind(Result(&a1)(Par1, Par2), const Arg2& a2, const Arg3& a3) {
|
Chris@16
|
334 return
|
Chris@16
|
335 lambda_functor_base<
|
Chris@16
|
336 action<3, function_action<3, Result> >,
|
Chris@16
|
337 typename detail::bind_tuple_mapper<
|
Chris@16
|
338 Result(&)(Par1, Par2), const Arg2, const Arg3
|
Chris@16
|
339 >::type
|
Chris@16
|
340 >
|
Chris@16
|
341 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
342 Result(&)(Par1, Par2), const Arg2, const Arg3
|
Chris@16
|
343 >::type
|
Chris@16
|
344 (a1, a2, a3)
|
Chris@16
|
345 );
|
Chris@16
|
346 }
|
Chris@16
|
347 #endif
|
Chris@16
|
348
|
Chris@16
|
349 #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
|
Chris@16
|
350 template <class Arg1, class Arg2, class Arg3>
|
Chris@16
|
351 inline const
|
Chris@16
|
352 lambda_functor<
|
Chris@16
|
353 lambda_functor_base<
|
Chris@16
|
354 action<3, function_action<3> >,
|
Chris@16
|
355 typename detail::bind_tuple_mapper<
|
Chris@16
|
356 const Arg1, const Arg2, const Arg3
|
Chris@16
|
357 >::type
|
Chris@16
|
358 >
|
Chris@16
|
359 >
|
Chris@16
|
360
|
Chris@16
|
361 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3) {
|
Chris@16
|
362 return
|
Chris@16
|
363 lambda_functor_base<
|
Chris@16
|
364 action<3, function_action<3> >,
|
Chris@16
|
365 typename detail::bind_tuple_mapper<
|
Chris@16
|
366 const Arg1, const Arg2, const Arg3
|
Chris@16
|
367 >::type
|
Chris@16
|
368 >
|
Chris@16
|
369 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
370 const Arg1, const Arg2, const Arg3
|
Chris@16
|
371 >::type
|
Chris@16
|
372 (a1, a2, a3)
|
Chris@16
|
373 );
|
Chris@16
|
374 }
|
Chris@16
|
375
|
Chris@16
|
376 template <class Result, class Arg1, class Arg2, class Arg3>
|
Chris@16
|
377 inline const
|
Chris@16
|
378 lambda_functor<
|
Chris@16
|
379 lambda_functor_base<
|
Chris@16
|
380 action<3, function_action<3, Result> >,
|
Chris@16
|
381 typename detail::bind_tuple_mapper<
|
Chris@16
|
382 const Arg1, const Arg2, const Arg3
|
Chris@16
|
383 >::type
|
Chris@16
|
384 >
|
Chris@16
|
385 >
|
Chris@16
|
386
|
Chris@16
|
387 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3) {
|
Chris@16
|
388 return
|
Chris@16
|
389 lambda_functor_base<
|
Chris@16
|
390 action<3, function_action<3, Result> >,
|
Chris@16
|
391 typename detail::bind_tuple_mapper<
|
Chris@16
|
392 const Arg1, const Arg2, const Arg3
|
Chris@16
|
393 >::type
|
Chris@16
|
394 >
|
Chris@16
|
395 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
396 const Arg1, const Arg2, const Arg3
|
Chris@16
|
397 >::type
|
Chris@16
|
398 (a1, a2, a3)
|
Chris@16
|
399 );
|
Chris@16
|
400 }
|
Chris@16
|
401
|
Chris@16
|
402
|
Chris@16
|
403 #else
|
Chris@16
|
404 template <class Arg1, class Arg2, class Arg3>
|
Chris@16
|
405 inline const
|
Chris@16
|
406 lambda_functor<
|
Chris@16
|
407 lambda_functor_base<
|
Chris@16
|
408 action<3, function_action<3> >,
|
Chris@16
|
409 typename detail::bind_tuple_mapper<
|
Chris@16
|
410 typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3
|
Chris@16
|
411 >::type
|
Chris@16
|
412 >
|
Chris@16
|
413 >
|
Chris@16
|
414
|
Chris@16
|
415 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3) {
|
Chris@16
|
416 return
|
Chris@16
|
417 lambda_functor_base<
|
Chris@16
|
418 action<3, function_action<3> >,
|
Chris@16
|
419 typename detail::bind_tuple_mapper<
|
Chris@16
|
420 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
421 const Arg3
|
Chris@16
|
422 >::type
|
Chris@16
|
423 >
|
Chris@16
|
424 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
425 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
426 const Arg3
|
Chris@16
|
427 >::type
|
Chris@16
|
428 (a1, a2, a3)
|
Chris@16
|
429 );
|
Chris@16
|
430 }
|
Chris@16
|
431
|
Chris@16
|
432 template <class Result, class Arg1, class Arg2, class Arg3>
|
Chris@16
|
433 inline const
|
Chris@16
|
434 lambda_functor<
|
Chris@16
|
435 lambda_functor_base<
|
Chris@16
|
436 action<3, function_action<3, Result> >,
|
Chris@16
|
437 typename detail::bind_tuple_mapper<
|
Chris@16
|
438 typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3
|
Chris@16
|
439 >::type
|
Chris@16
|
440 >
|
Chris@16
|
441 >
|
Chris@16
|
442
|
Chris@16
|
443 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3) {
|
Chris@16
|
444 return
|
Chris@16
|
445 lambda_functor_base<
|
Chris@16
|
446 action<3, function_action<3, Result> >,
|
Chris@16
|
447 typename detail::bind_tuple_mapper<
|
Chris@16
|
448 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
449 const Arg3
|
Chris@16
|
450 >::type
|
Chris@16
|
451 >
|
Chris@16
|
452 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
453 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
454 const Arg3
|
Chris@16
|
455 >::type
|
Chris@16
|
456 (a1, a2, a3)
|
Chris@16
|
457 );
|
Chris@16
|
458 }
|
Chris@16
|
459
|
Chris@16
|
460 template <class Result, class Par1, class Par2, class Arg2, class Arg3>
|
Chris@16
|
461 inline const
|
Chris@16
|
462 lambda_functor<
|
Chris@16
|
463 lambda_functor_base<
|
Chris@16
|
464 action<3, function_action<3, Result> >,
|
Chris@16
|
465 typename detail::bind_tuple_mapper<
|
Chris@16
|
466 Result(*)(Par1, Par2), const Arg2, const Arg3
|
Chris@16
|
467 >::type
|
Chris@16
|
468 >
|
Chris@16
|
469 >
|
Chris@16
|
470
|
Chris@16
|
471 bind(Result(* const & a1)(Par1, Par2), const Arg2& a2, const Arg3& a3) {
|
Chris@16
|
472 return
|
Chris@16
|
473 lambda_functor_base<
|
Chris@16
|
474 action<3, function_action<3, Result> >,
|
Chris@16
|
475 typename detail::bind_tuple_mapper<
|
Chris@16
|
476 Result(*)(Par1, Par2), const Arg2, const Arg3
|
Chris@16
|
477 >::type
|
Chris@16
|
478 >
|
Chris@16
|
479 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
480 Result(*)(Par1, Par2), const Arg2, const Arg3
|
Chris@16
|
481 >::type
|
Chris@16
|
482 (a1, a2, a3)
|
Chris@16
|
483 );
|
Chris@16
|
484 }
|
Chris@16
|
485
|
Chris@16
|
486
|
Chris@16
|
487 #endif
|
Chris@16
|
488
|
Chris@16
|
489 // 4-argument bind functions --------------------------
|
Chris@16
|
490 #ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
|
Chris@16
|
491 template <class Result, class Par1, class Par2, class Par3, class Arg2,
|
Chris@16
|
492 class Arg3, class Arg4>
|
Chris@16
|
493 inline const
|
Chris@16
|
494 lambda_functor<
|
Chris@16
|
495 lambda_functor_base<
|
Chris@16
|
496 action<4, function_action<4, Result> >,
|
Chris@16
|
497 typename detail::bind_tuple_mapper<
|
Chris@16
|
498 Result(&)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4
|
Chris@16
|
499 >::type
|
Chris@16
|
500 >
|
Chris@16
|
501 >
|
Chris@16
|
502
|
Chris@16
|
503 bind(Result(&a1)(Par1, Par2, Par3), const Arg2& a2, const Arg3& a3,
|
Chris@16
|
504 const Arg4& a4) {
|
Chris@16
|
505 return
|
Chris@16
|
506 lambda_functor_base<
|
Chris@16
|
507 action<4, function_action<4, Result> >,
|
Chris@16
|
508 typename detail::bind_tuple_mapper<
|
Chris@16
|
509 Result(&)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4
|
Chris@16
|
510 >::type
|
Chris@16
|
511 >
|
Chris@16
|
512 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
513 Result(&)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4
|
Chris@16
|
514 >::type
|
Chris@16
|
515 (a1, a2, a3, a4)
|
Chris@16
|
516 );
|
Chris@16
|
517 }
|
Chris@16
|
518 #endif
|
Chris@16
|
519
|
Chris@16
|
520 #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
|
Chris@16
|
521 template <class Arg1, class Arg2, class Arg3, class Arg4>
|
Chris@16
|
522 inline const
|
Chris@16
|
523 lambda_functor<
|
Chris@16
|
524 lambda_functor_base<
|
Chris@16
|
525 action<4, function_action<4> >,
|
Chris@16
|
526 typename detail::bind_tuple_mapper<
|
Chris@16
|
527 const Arg1, const Arg2, const Arg3, const Arg4
|
Chris@16
|
528 >::type
|
Chris@16
|
529 >
|
Chris@16
|
530 >
|
Chris@16
|
531
|
Chris@16
|
532 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4) {
|
Chris@16
|
533 return
|
Chris@16
|
534 lambda_functor_base<
|
Chris@16
|
535 action<4, function_action<4> >,
|
Chris@16
|
536 typename detail::bind_tuple_mapper<
|
Chris@16
|
537 const Arg1, const Arg2, const Arg3, const Arg4
|
Chris@16
|
538 >::type
|
Chris@16
|
539 >
|
Chris@16
|
540 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
541 const Arg1, const Arg2, const Arg3, const Arg4
|
Chris@16
|
542 >::type
|
Chris@16
|
543 (a1, a2, a3, a4)
|
Chris@16
|
544 );
|
Chris@16
|
545 }
|
Chris@16
|
546
|
Chris@16
|
547 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4>
|
Chris@16
|
548 inline const
|
Chris@16
|
549 lambda_functor<
|
Chris@16
|
550 lambda_functor_base<
|
Chris@16
|
551 action<4, function_action<4, Result> >,
|
Chris@16
|
552 typename detail::bind_tuple_mapper<
|
Chris@16
|
553 const Arg1, const Arg2, const Arg3, const Arg4
|
Chris@16
|
554 >::type
|
Chris@16
|
555 >
|
Chris@16
|
556 >
|
Chris@16
|
557
|
Chris@16
|
558 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4) {
|
Chris@16
|
559 return
|
Chris@16
|
560 lambda_functor_base<
|
Chris@16
|
561 action<4, function_action<4, Result> >,
|
Chris@16
|
562 typename detail::bind_tuple_mapper<
|
Chris@16
|
563 const Arg1, const Arg2, const Arg3, const Arg4
|
Chris@16
|
564 >::type
|
Chris@16
|
565 >
|
Chris@16
|
566 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
567 const Arg1, const Arg2, const Arg3, const Arg4
|
Chris@16
|
568 >::type
|
Chris@16
|
569 (a1, a2, a3, a4)
|
Chris@16
|
570 );
|
Chris@16
|
571 }
|
Chris@16
|
572
|
Chris@16
|
573
|
Chris@16
|
574 #else
|
Chris@16
|
575 template <class Arg1, class Arg2, class Arg3, class Arg4>
|
Chris@16
|
576 inline const
|
Chris@16
|
577 lambda_functor<
|
Chris@16
|
578 lambda_functor_base<
|
Chris@16
|
579 action<4, function_action<4> >,
|
Chris@16
|
580 typename detail::bind_tuple_mapper<
|
Chris@16
|
581 typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
|
Chris@16
|
582 const Arg4
|
Chris@16
|
583 >::type
|
Chris@16
|
584 >
|
Chris@16
|
585 >
|
Chris@16
|
586
|
Chris@16
|
587 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4) {
|
Chris@16
|
588 return
|
Chris@16
|
589 lambda_functor_base<
|
Chris@16
|
590 action<4, function_action<4> >,
|
Chris@16
|
591 typename detail::bind_tuple_mapper<
|
Chris@16
|
592 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
593 const Arg3, const Arg4
|
Chris@16
|
594 >::type
|
Chris@16
|
595 >
|
Chris@16
|
596 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
597 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
598 const Arg3, const Arg4
|
Chris@16
|
599 >::type
|
Chris@16
|
600 (a1, a2, a3, a4)
|
Chris@16
|
601 );
|
Chris@16
|
602 }
|
Chris@16
|
603
|
Chris@16
|
604 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4>
|
Chris@16
|
605 inline const
|
Chris@16
|
606 lambda_functor<
|
Chris@16
|
607 lambda_functor_base<
|
Chris@16
|
608 action<4, function_action<4, Result> >,
|
Chris@16
|
609 typename detail::bind_tuple_mapper<
|
Chris@16
|
610 typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
|
Chris@16
|
611 const Arg4
|
Chris@16
|
612 >::type
|
Chris@16
|
613 >
|
Chris@16
|
614 >
|
Chris@16
|
615
|
Chris@16
|
616 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4) {
|
Chris@16
|
617 return
|
Chris@16
|
618 lambda_functor_base<
|
Chris@16
|
619 action<4, function_action<4, Result> >,
|
Chris@16
|
620 typename detail::bind_tuple_mapper<
|
Chris@16
|
621 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
622 const Arg3, const Arg4
|
Chris@16
|
623 >::type
|
Chris@16
|
624 >
|
Chris@16
|
625 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
626 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
627 const Arg3, const Arg4
|
Chris@16
|
628 >::type
|
Chris@16
|
629 (a1, a2, a3, a4)
|
Chris@16
|
630 );
|
Chris@16
|
631 }
|
Chris@16
|
632
|
Chris@16
|
633 template <class Result, class Par1, class Par2, class Par3, class Arg2,
|
Chris@16
|
634 class Arg3, class Arg4>
|
Chris@16
|
635 inline const
|
Chris@16
|
636 lambda_functor<
|
Chris@16
|
637 lambda_functor_base<
|
Chris@16
|
638 action<4, function_action<4, Result> >,
|
Chris@16
|
639 typename detail::bind_tuple_mapper<
|
Chris@16
|
640 Result(*)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4
|
Chris@16
|
641 >::type
|
Chris@16
|
642 >
|
Chris@16
|
643 >
|
Chris@16
|
644
|
Chris@16
|
645 bind(Result(* const & a1)(Par1, Par2, Par3), const Arg2& a2,
|
Chris@16
|
646 const Arg3& a3, const Arg4& a4) {
|
Chris@16
|
647 return
|
Chris@16
|
648 lambda_functor_base<
|
Chris@16
|
649 action<4, function_action<4, Result> >,
|
Chris@16
|
650 typename detail::bind_tuple_mapper<
|
Chris@16
|
651 Result(*)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4
|
Chris@16
|
652 >::type
|
Chris@16
|
653 >
|
Chris@16
|
654 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
655 Result(*)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4
|
Chris@16
|
656 >::type
|
Chris@16
|
657 (a1, a2, a3, a4)
|
Chris@16
|
658 );
|
Chris@16
|
659 }
|
Chris@16
|
660
|
Chris@16
|
661
|
Chris@16
|
662 #endif
|
Chris@16
|
663
|
Chris@16
|
664 // 5-argument bind functions --------------------------
|
Chris@16
|
665 #ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
|
Chris@16
|
666 template <class Result, class Par1, class Par2, class Par3, class Par4,
|
Chris@16
|
667 class Arg2, class Arg3, class Arg4, class Arg5>
|
Chris@16
|
668 inline const
|
Chris@16
|
669 lambda_functor<
|
Chris@16
|
670 lambda_functor_base<
|
Chris@16
|
671 action<5, function_action<5, Result> >,
|
Chris@16
|
672 typename detail::bind_tuple_mapper<
|
Chris@16
|
673 Result(&)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4,
|
Chris@16
|
674 const Arg5
|
Chris@16
|
675 >::type
|
Chris@16
|
676 >
|
Chris@16
|
677 >
|
Chris@16
|
678
|
Chris@16
|
679 bind(Result(&a1)(Par1, Par2, Par3, Par4), const Arg2& a2, const Arg3& a3,
|
Chris@16
|
680 const Arg4& a4, const Arg5& a5) {
|
Chris@16
|
681 return
|
Chris@16
|
682 lambda_functor_base<
|
Chris@16
|
683 action<5, function_action<5, Result> >,
|
Chris@16
|
684 typename detail::bind_tuple_mapper<
|
Chris@16
|
685 Result(&)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4,
|
Chris@16
|
686 const Arg5
|
Chris@16
|
687 >::type
|
Chris@16
|
688 >
|
Chris@16
|
689 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
690 Result(&)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4,
|
Chris@16
|
691 const Arg5
|
Chris@16
|
692 >::type
|
Chris@16
|
693 (a1, a2, a3, a4, a5)
|
Chris@16
|
694 );
|
Chris@16
|
695 }
|
Chris@16
|
696 #endif
|
Chris@16
|
697
|
Chris@16
|
698 #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
|
Chris@16
|
699 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5>
|
Chris@16
|
700 inline const
|
Chris@16
|
701 lambda_functor<
|
Chris@16
|
702 lambda_functor_base<
|
Chris@16
|
703 action<5, function_action<5> >,
|
Chris@16
|
704 typename detail::bind_tuple_mapper<
|
Chris@16
|
705 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5
|
Chris@16
|
706 >::type
|
Chris@16
|
707 >
|
Chris@16
|
708 >
|
Chris@16
|
709
|
Chris@16
|
710 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
|
Chris@16
|
711 const Arg5& a5) {
|
Chris@16
|
712 return
|
Chris@16
|
713 lambda_functor_base<
|
Chris@16
|
714 action<5, function_action<5> >,
|
Chris@16
|
715 typename detail::bind_tuple_mapper<
|
Chris@16
|
716 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5
|
Chris@16
|
717 >::type
|
Chris@16
|
718 >
|
Chris@16
|
719 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
720 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5
|
Chris@16
|
721 >::type
|
Chris@16
|
722 (a1, a2, a3, a4, a5)
|
Chris@16
|
723 );
|
Chris@16
|
724 }
|
Chris@16
|
725
|
Chris@16
|
726 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
|
Chris@16
|
727 class Arg5>
|
Chris@16
|
728 inline const
|
Chris@16
|
729 lambda_functor<
|
Chris@16
|
730 lambda_functor_base<
|
Chris@16
|
731 action<5, function_action<5, Result> >,
|
Chris@16
|
732 typename detail::bind_tuple_mapper<
|
Chris@16
|
733 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5
|
Chris@16
|
734 >::type
|
Chris@16
|
735 >
|
Chris@16
|
736 >
|
Chris@16
|
737
|
Chris@16
|
738 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
|
Chris@16
|
739 const Arg5& a5) {
|
Chris@16
|
740 return
|
Chris@16
|
741 lambda_functor_base<
|
Chris@16
|
742 action<5, function_action<5, Result> >,
|
Chris@16
|
743 typename detail::bind_tuple_mapper<
|
Chris@16
|
744 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5
|
Chris@16
|
745 >::type
|
Chris@16
|
746 >
|
Chris@16
|
747 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
748 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5
|
Chris@16
|
749 >::type
|
Chris@16
|
750 (a1, a2, a3, a4, a5)
|
Chris@16
|
751 );
|
Chris@16
|
752 }
|
Chris@16
|
753
|
Chris@16
|
754
|
Chris@16
|
755 #else
|
Chris@16
|
756 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5>
|
Chris@16
|
757 inline const
|
Chris@16
|
758 lambda_functor<
|
Chris@16
|
759 lambda_functor_base<
|
Chris@16
|
760 action<5, function_action<5> >,
|
Chris@16
|
761 typename detail::bind_tuple_mapper<
|
Chris@16
|
762 typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
|
Chris@16
|
763 const Arg4, const Arg5
|
Chris@16
|
764 >::type
|
Chris@16
|
765 >
|
Chris@16
|
766 >
|
Chris@16
|
767
|
Chris@16
|
768 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
|
Chris@16
|
769 const Arg5& a5) {
|
Chris@16
|
770 return
|
Chris@16
|
771 lambda_functor_base<
|
Chris@16
|
772 action<5, function_action<5> >,
|
Chris@16
|
773 typename detail::bind_tuple_mapper<
|
Chris@16
|
774 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
775 const Arg3, const Arg4, const Arg5
|
Chris@16
|
776 >::type
|
Chris@16
|
777 >
|
Chris@16
|
778 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
779 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
780 const Arg3, const Arg4, const Arg5
|
Chris@16
|
781 >::type
|
Chris@16
|
782 (a1, a2, a3, a4, a5)
|
Chris@16
|
783 );
|
Chris@16
|
784 }
|
Chris@16
|
785
|
Chris@16
|
786 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
|
Chris@16
|
787 class Arg5>
|
Chris@16
|
788 inline const
|
Chris@16
|
789 lambda_functor<
|
Chris@16
|
790 lambda_functor_base<
|
Chris@16
|
791 action<5, function_action<5, Result> >,
|
Chris@16
|
792 typename detail::bind_tuple_mapper<
|
Chris@16
|
793 typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
|
Chris@16
|
794 const Arg4, const Arg5
|
Chris@16
|
795 >::type
|
Chris@16
|
796 >
|
Chris@16
|
797 >
|
Chris@16
|
798
|
Chris@16
|
799 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
|
Chris@16
|
800 const Arg5& a5) {
|
Chris@16
|
801 return
|
Chris@16
|
802 lambda_functor_base<
|
Chris@16
|
803 action<5, function_action<5, Result> >,
|
Chris@16
|
804 typename detail::bind_tuple_mapper<
|
Chris@16
|
805 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
806 const Arg3, const Arg4, const Arg5
|
Chris@16
|
807 >::type
|
Chris@16
|
808 >
|
Chris@16
|
809 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
810 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
811 const Arg3, const Arg4, const Arg5
|
Chris@16
|
812 >::type
|
Chris@16
|
813 (a1, a2, a3, a4, a5)
|
Chris@16
|
814 );
|
Chris@16
|
815 }
|
Chris@16
|
816
|
Chris@16
|
817 template <class Result, class Par1, class Par2, class Par3, class Par4,
|
Chris@16
|
818 class Arg2, class Arg3, class Arg4, class Arg5>
|
Chris@16
|
819 inline const
|
Chris@16
|
820 lambda_functor<
|
Chris@16
|
821 lambda_functor_base<
|
Chris@16
|
822 action<5, function_action<5, Result> >,
|
Chris@16
|
823 typename detail::bind_tuple_mapper<
|
Chris@16
|
824 Result(*)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4,
|
Chris@16
|
825 const Arg5
|
Chris@16
|
826 >::type
|
Chris@16
|
827 >
|
Chris@16
|
828 >
|
Chris@16
|
829
|
Chris@16
|
830 bind(Result(* const & a1)(Par1, Par2, Par3, Par4), const Arg2& a2,
|
Chris@16
|
831 const Arg3& a3, const Arg4& a4, const Arg5& a5) {
|
Chris@16
|
832 return
|
Chris@16
|
833 lambda_functor_base<
|
Chris@16
|
834 action<5, function_action<5, Result> >,
|
Chris@16
|
835 typename detail::bind_tuple_mapper<
|
Chris@16
|
836 Result(*)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4,
|
Chris@16
|
837 const Arg5
|
Chris@16
|
838 >::type
|
Chris@16
|
839 >
|
Chris@16
|
840 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
841 Result(*)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4,
|
Chris@16
|
842 const Arg5
|
Chris@16
|
843 >::type
|
Chris@16
|
844 (a1, a2, a3, a4, a5)
|
Chris@16
|
845 );
|
Chris@16
|
846 }
|
Chris@16
|
847
|
Chris@16
|
848
|
Chris@16
|
849 #endif
|
Chris@16
|
850
|
Chris@16
|
851 // 6-argument bind functions --------------------------
|
Chris@16
|
852 #ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
|
Chris@16
|
853 template <class Result, class Par1, class Par2, class Par3, class Par4,
|
Chris@16
|
854 class Par5, class Arg2, class Arg3, class Arg4, class Arg5,
|
Chris@16
|
855 class Arg6>
|
Chris@16
|
856 inline const
|
Chris@16
|
857 lambda_functor<
|
Chris@16
|
858 lambda_functor_base<
|
Chris@16
|
859 action<6, function_action<6, Result> >,
|
Chris@16
|
860 typename detail::bind_tuple_mapper<
|
Chris@16
|
861 Result(&)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3,
|
Chris@16
|
862 const Arg4, const Arg5, const Arg6
|
Chris@16
|
863 >::type
|
Chris@16
|
864 >
|
Chris@16
|
865 >
|
Chris@16
|
866
|
Chris@16
|
867 bind(Result(&a1)(Par1, Par2, Par3, Par4, Par5), const Arg2& a2,
|
Chris@16
|
868 const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6) {
|
Chris@16
|
869 return
|
Chris@16
|
870 lambda_functor_base<
|
Chris@16
|
871 action<6, function_action<6, Result> >,
|
Chris@16
|
872 typename detail::bind_tuple_mapper<
|
Chris@16
|
873 Result(&)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3,
|
Chris@16
|
874 const Arg4, const Arg5, const Arg6
|
Chris@16
|
875 >::type
|
Chris@16
|
876 >
|
Chris@16
|
877 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
878 Result(&)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3,
|
Chris@16
|
879 const Arg4, const Arg5, const Arg6
|
Chris@16
|
880 >::type
|
Chris@16
|
881 (a1, a2, a3, a4, a5, a6)
|
Chris@16
|
882 );
|
Chris@16
|
883 }
|
Chris@16
|
884 #endif
|
Chris@16
|
885
|
Chris@16
|
886 #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
|
Chris@16
|
887 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
|
Chris@16
|
888 class Arg6>
|
Chris@16
|
889 inline const
|
Chris@16
|
890 lambda_functor<
|
Chris@16
|
891 lambda_functor_base<
|
Chris@16
|
892 action<6, function_action<6> >,
|
Chris@16
|
893 typename detail::bind_tuple_mapper<
|
Chris@16
|
894 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6
|
Chris@16
|
895 >::type
|
Chris@16
|
896 >
|
Chris@16
|
897 >
|
Chris@16
|
898
|
Chris@16
|
899 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
|
Chris@16
|
900 const Arg5& a5, const Arg6& a6) {
|
Chris@16
|
901 return
|
Chris@16
|
902 lambda_functor_base<
|
Chris@16
|
903 action<6, function_action<6> >,
|
Chris@16
|
904 typename detail::bind_tuple_mapper<
|
Chris@16
|
905 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6
|
Chris@16
|
906 >::type
|
Chris@16
|
907 >
|
Chris@16
|
908 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
909 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6
|
Chris@16
|
910 >::type
|
Chris@16
|
911 (a1, a2, a3, a4, a5, a6)
|
Chris@16
|
912 );
|
Chris@16
|
913 }
|
Chris@16
|
914
|
Chris@16
|
915 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
|
Chris@16
|
916 class Arg5, class Arg6>
|
Chris@16
|
917 inline const
|
Chris@16
|
918 lambda_functor<
|
Chris@16
|
919 lambda_functor_base<
|
Chris@16
|
920 action<6, function_action<6, Result> >,
|
Chris@16
|
921 typename detail::bind_tuple_mapper<
|
Chris@16
|
922 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6
|
Chris@16
|
923 >::type
|
Chris@16
|
924 >
|
Chris@16
|
925 >
|
Chris@16
|
926
|
Chris@16
|
927 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
|
Chris@16
|
928 const Arg5& a5, const Arg6& a6) {
|
Chris@16
|
929 return
|
Chris@16
|
930 lambda_functor_base<
|
Chris@16
|
931 action<6, function_action<6, Result> >,
|
Chris@16
|
932 typename detail::bind_tuple_mapper<
|
Chris@16
|
933 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6
|
Chris@16
|
934 >::type
|
Chris@16
|
935 >
|
Chris@16
|
936 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
937 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6
|
Chris@16
|
938 >::type
|
Chris@16
|
939 (a1, a2, a3, a4, a5, a6)
|
Chris@16
|
940 );
|
Chris@16
|
941 }
|
Chris@16
|
942
|
Chris@16
|
943
|
Chris@16
|
944 #else
|
Chris@16
|
945 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
|
Chris@16
|
946 class Arg6>
|
Chris@16
|
947 inline const
|
Chris@16
|
948 lambda_functor<
|
Chris@16
|
949 lambda_functor_base<
|
Chris@16
|
950 action<6, function_action<6> >,
|
Chris@16
|
951 typename detail::bind_tuple_mapper<
|
Chris@16
|
952 typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
|
Chris@16
|
953 const Arg4, const Arg5, const Arg6
|
Chris@16
|
954 >::type
|
Chris@16
|
955 >
|
Chris@16
|
956 >
|
Chris@16
|
957
|
Chris@16
|
958 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
|
Chris@16
|
959 const Arg5& a5, const Arg6& a6) {
|
Chris@16
|
960 return
|
Chris@16
|
961 lambda_functor_base<
|
Chris@16
|
962 action<6, function_action<6> >,
|
Chris@16
|
963 typename detail::bind_tuple_mapper<
|
Chris@16
|
964 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
965 const Arg3, const Arg4, const Arg5, const Arg6
|
Chris@16
|
966 >::type
|
Chris@16
|
967 >
|
Chris@16
|
968 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
969 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
970 const Arg3, const Arg4, const Arg5, const Arg6
|
Chris@16
|
971 >::type
|
Chris@16
|
972 (a1, a2, a3, a4, a5, a6)
|
Chris@16
|
973 );
|
Chris@16
|
974 }
|
Chris@16
|
975
|
Chris@16
|
976 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
|
Chris@16
|
977 class Arg5, class Arg6>
|
Chris@16
|
978 inline const
|
Chris@16
|
979 lambda_functor<
|
Chris@16
|
980 lambda_functor_base<
|
Chris@16
|
981 action<6, function_action<6, Result> >,
|
Chris@16
|
982 typename detail::bind_tuple_mapper<
|
Chris@16
|
983 typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
|
Chris@16
|
984 const Arg4, const Arg5, const Arg6
|
Chris@16
|
985 >::type
|
Chris@16
|
986 >
|
Chris@16
|
987 >
|
Chris@16
|
988
|
Chris@16
|
989 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
|
Chris@16
|
990 const Arg5& a5, const Arg6& a6) {
|
Chris@16
|
991 return
|
Chris@16
|
992 lambda_functor_base<
|
Chris@16
|
993 action<6, function_action<6, Result> >,
|
Chris@16
|
994 typename detail::bind_tuple_mapper<
|
Chris@16
|
995 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
996 const Arg3, const Arg4, const Arg5, const Arg6
|
Chris@16
|
997 >::type
|
Chris@16
|
998 >
|
Chris@16
|
999 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
1000 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
1001 const Arg3, const Arg4, const Arg5, const Arg6
|
Chris@16
|
1002 >::type
|
Chris@16
|
1003 (a1, a2, a3, a4, a5, a6)
|
Chris@16
|
1004 );
|
Chris@16
|
1005 }
|
Chris@16
|
1006
|
Chris@16
|
1007 template <class Result, class Par1, class Par2, class Par3, class Par4,
|
Chris@16
|
1008 class Par5, class Arg2, class Arg3, class Arg4, class Arg5,
|
Chris@16
|
1009 class Arg6>
|
Chris@16
|
1010 inline const
|
Chris@16
|
1011 lambda_functor<
|
Chris@16
|
1012 lambda_functor_base<
|
Chris@16
|
1013 action<6, function_action<6, Result> >,
|
Chris@16
|
1014 typename detail::bind_tuple_mapper<
|
Chris@16
|
1015 Result(*)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3,
|
Chris@16
|
1016 const Arg4, const Arg5, const Arg6
|
Chris@16
|
1017 >::type
|
Chris@16
|
1018 >
|
Chris@16
|
1019 >
|
Chris@16
|
1020
|
Chris@16
|
1021 bind(Result(* const & a1)(Par1, Par2, Par3, Par4, Par5), const Arg2& a2,
|
Chris@16
|
1022 const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6) {
|
Chris@16
|
1023 return
|
Chris@16
|
1024 lambda_functor_base<
|
Chris@16
|
1025 action<6, function_action<6, Result> >,
|
Chris@16
|
1026 typename detail::bind_tuple_mapper<
|
Chris@16
|
1027 Result(*)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3,
|
Chris@16
|
1028 const Arg4, const Arg5, const Arg6
|
Chris@16
|
1029 >::type
|
Chris@16
|
1030 >
|
Chris@16
|
1031 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
1032 Result(*)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3,
|
Chris@16
|
1033 const Arg4, const Arg5, const Arg6
|
Chris@16
|
1034 >::type
|
Chris@16
|
1035 (a1, a2, a3, a4, a5, a6)
|
Chris@16
|
1036 );
|
Chris@16
|
1037 }
|
Chris@16
|
1038
|
Chris@16
|
1039
|
Chris@16
|
1040 #endif
|
Chris@16
|
1041
|
Chris@16
|
1042 // 7-argument bind functions --------------------------
|
Chris@16
|
1043 #ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
|
Chris@16
|
1044 template <class Result, class Par1, class Par2, class Par3, class Par4,
|
Chris@16
|
1045 class Par5, class Par6, class Arg2, class Arg3, class Arg4,
|
Chris@16
|
1046 class Arg5, class Arg6, class Arg7>
|
Chris@16
|
1047 inline const
|
Chris@16
|
1048 lambda_functor<
|
Chris@16
|
1049 lambda_functor_base<
|
Chris@16
|
1050 action<7, function_action<7, Result> >,
|
Chris@16
|
1051 typename detail::bind_tuple_mapper<
|
Chris@16
|
1052 Result(&)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2, const Arg3,
|
Chris@16
|
1053 const Arg4, const Arg5, const Arg6, const Arg7
|
Chris@16
|
1054 >::type
|
Chris@16
|
1055 >
|
Chris@16
|
1056 >
|
Chris@16
|
1057
|
Chris@16
|
1058 bind(Result(&a1)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2& a2,
|
Chris@16
|
1059 const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6,
|
Chris@16
|
1060 const Arg7& a7) {
|
Chris@16
|
1061 return
|
Chris@16
|
1062 lambda_functor_base<
|
Chris@16
|
1063 action<7, function_action<7, Result> >,
|
Chris@16
|
1064 typename detail::bind_tuple_mapper<
|
Chris@16
|
1065 Result(&)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2, const Arg3,
|
Chris@16
|
1066 const Arg4, const Arg5, const Arg6, const Arg7
|
Chris@16
|
1067 >::type
|
Chris@16
|
1068 >
|
Chris@16
|
1069 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
1070 Result(&)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2, const Arg3,
|
Chris@16
|
1071 const Arg4, const Arg5, const Arg6, const Arg7
|
Chris@16
|
1072 >::type
|
Chris@16
|
1073 (a1, a2, a3, a4, a5, a6, a7)
|
Chris@16
|
1074 );
|
Chris@16
|
1075 }
|
Chris@16
|
1076 #endif
|
Chris@16
|
1077
|
Chris@16
|
1078 #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
|
Chris@16
|
1079 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
|
Chris@16
|
1080 class Arg6, class Arg7>
|
Chris@16
|
1081 inline const
|
Chris@16
|
1082 lambda_functor<
|
Chris@16
|
1083 lambda_functor_base<
|
Chris@16
|
1084 action<7, function_action<7> >,
|
Chris@16
|
1085 typename detail::bind_tuple_mapper<
|
Chris@16
|
1086 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
|
Chris@16
|
1087 const Arg7
|
Chris@16
|
1088 >::type
|
Chris@16
|
1089 >
|
Chris@16
|
1090 >
|
Chris@16
|
1091
|
Chris@16
|
1092 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
|
Chris@16
|
1093 const Arg5& a5, const Arg6& a6, const Arg7& a7) {
|
Chris@16
|
1094 return
|
Chris@16
|
1095 lambda_functor_base<
|
Chris@16
|
1096 action<7, function_action<7> >,
|
Chris@16
|
1097 typename detail::bind_tuple_mapper<
|
Chris@16
|
1098 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
|
Chris@16
|
1099 const Arg6, const Arg7
|
Chris@16
|
1100 >::type
|
Chris@16
|
1101 >
|
Chris@16
|
1102 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
1103 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
|
Chris@16
|
1104 const Arg6, const Arg7
|
Chris@16
|
1105 >::type
|
Chris@16
|
1106 (a1, a2, a3, a4, a5, a6, a7)
|
Chris@16
|
1107 );
|
Chris@16
|
1108 }
|
Chris@16
|
1109
|
Chris@16
|
1110 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
|
Chris@16
|
1111 class Arg5, class Arg6, class Arg7>
|
Chris@16
|
1112 inline const
|
Chris@16
|
1113 lambda_functor<
|
Chris@16
|
1114 lambda_functor_base<
|
Chris@16
|
1115 action<7, function_action<7, Result> >,
|
Chris@16
|
1116 typename detail::bind_tuple_mapper<
|
Chris@16
|
1117 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
|
Chris@16
|
1118 const Arg7
|
Chris@16
|
1119 >::type
|
Chris@16
|
1120 >
|
Chris@16
|
1121 >
|
Chris@16
|
1122
|
Chris@16
|
1123 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
|
Chris@16
|
1124 const Arg5& a5, const Arg6& a6, const Arg7& a7) {
|
Chris@16
|
1125 return
|
Chris@16
|
1126 lambda_functor_base<
|
Chris@16
|
1127 action<7, function_action<7, Result> >,
|
Chris@16
|
1128 typename detail::bind_tuple_mapper<
|
Chris@16
|
1129 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
|
Chris@16
|
1130 const Arg6, const Arg7
|
Chris@16
|
1131 >::type
|
Chris@16
|
1132 >
|
Chris@16
|
1133 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
1134 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
|
Chris@16
|
1135 const Arg6, const Arg7
|
Chris@16
|
1136 >::type
|
Chris@16
|
1137 (a1, a2, a3, a4, a5, a6, a7)
|
Chris@16
|
1138 );
|
Chris@16
|
1139 }
|
Chris@16
|
1140
|
Chris@16
|
1141
|
Chris@16
|
1142 #else
|
Chris@16
|
1143 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
|
Chris@16
|
1144 class Arg6, class Arg7>
|
Chris@16
|
1145 inline const
|
Chris@16
|
1146 lambda_functor<
|
Chris@16
|
1147 lambda_functor_base<
|
Chris@16
|
1148 action<7, function_action<7> >,
|
Chris@16
|
1149 typename detail::bind_tuple_mapper<
|
Chris@16
|
1150 typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
|
Chris@16
|
1151 const Arg4, const Arg5, const Arg6, const Arg7
|
Chris@16
|
1152 >::type
|
Chris@16
|
1153 >
|
Chris@16
|
1154 >
|
Chris@16
|
1155
|
Chris@16
|
1156 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
|
Chris@16
|
1157 const Arg5& a5, const Arg6& a6, const Arg7& a7) {
|
Chris@16
|
1158 return
|
Chris@16
|
1159 lambda_functor_base<
|
Chris@16
|
1160 action<7, function_action<7> >,
|
Chris@16
|
1161 typename detail::bind_tuple_mapper<
|
Chris@16
|
1162 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
1163 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7
|
Chris@16
|
1164 >::type
|
Chris@16
|
1165 >
|
Chris@16
|
1166 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
1167 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
1168 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7
|
Chris@16
|
1169 >::type
|
Chris@16
|
1170 (a1, a2, a3, a4, a5, a6, a7)
|
Chris@16
|
1171 );
|
Chris@16
|
1172 }
|
Chris@16
|
1173
|
Chris@16
|
1174 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
|
Chris@16
|
1175 class Arg5, class Arg6, class Arg7>
|
Chris@16
|
1176 inline const
|
Chris@16
|
1177 lambda_functor<
|
Chris@16
|
1178 lambda_functor_base<
|
Chris@16
|
1179 action<7, function_action<7, Result> >,
|
Chris@16
|
1180 typename detail::bind_tuple_mapper<
|
Chris@16
|
1181 typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
|
Chris@16
|
1182 const Arg4, const Arg5, const Arg6, const Arg7
|
Chris@16
|
1183 >::type
|
Chris@16
|
1184 >
|
Chris@16
|
1185 >
|
Chris@16
|
1186
|
Chris@16
|
1187 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
|
Chris@16
|
1188 const Arg5& a5, const Arg6& a6, const Arg7& a7) {
|
Chris@16
|
1189 return
|
Chris@16
|
1190 lambda_functor_base<
|
Chris@16
|
1191 action<7, function_action<7, Result> >,
|
Chris@16
|
1192 typename detail::bind_tuple_mapper<
|
Chris@16
|
1193 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
1194 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7
|
Chris@16
|
1195 >::type
|
Chris@16
|
1196 >
|
Chris@16
|
1197 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
1198 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
1199 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7
|
Chris@16
|
1200 >::type
|
Chris@16
|
1201 (a1, a2, a3, a4, a5, a6, a7)
|
Chris@16
|
1202 );
|
Chris@16
|
1203 }
|
Chris@16
|
1204
|
Chris@16
|
1205 template <class Result, class Par1, class Par2, class Par3, class Par4,
|
Chris@16
|
1206 class Par5, class Par6, class Arg2, class Arg3, class Arg4,
|
Chris@16
|
1207 class Arg5, class Arg6, class Arg7>
|
Chris@16
|
1208 inline const
|
Chris@16
|
1209 lambda_functor<
|
Chris@16
|
1210 lambda_functor_base<
|
Chris@16
|
1211 action<7, function_action<7, Result> >,
|
Chris@16
|
1212 typename detail::bind_tuple_mapper<
|
Chris@16
|
1213 Result(*)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2, const Arg3,
|
Chris@16
|
1214 const Arg4, const Arg5, const Arg6, const Arg7
|
Chris@16
|
1215 >::type
|
Chris@16
|
1216 >
|
Chris@16
|
1217 >
|
Chris@16
|
1218
|
Chris@16
|
1219 bind(Result(* const & a1)(Par1, Par2, Par3, Par4, Par5, Par6),
|
Chris@16
|
1220 const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5,
|
Chris@16
|
1221 const Arg6& a6, const Arg7& a7) {
|
Chris@16
|
1222 return
|
Chris@16
|
1223 lambda_functor_base<
|
Chris@16
|
1224 action<7, function_action<7, Result> >,
|
Chris@16
|
1225 typename detail::bind_tuple_mapper<
|
Chris@16
|
1226 Result(*)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2, const Arg3,
|
Chris@16
|
1227 const Arg4, const Arg5, const Arg6, const Arg7
|
Chris@16
|
1228 >::type
|
Chris@16
|
1229 >
|
Chris@16
|
1230 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
1231 Result(*)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2, const Arg3,
|
Chris@16
|
1232 const Arg4, const Arg5, const Arg6, const Arg7
|
Chris@16
|
1233 >::type
|
Chris@16
|
1234 (a1, a2, a3, a4, a5, a6, a7)
|
Chris@16
|
1235 );
|
Chris@16
|
1236 }
|
Chris@16
|
1237
|
Chris@16
|
1238
|
Chris@16
|
1239 #endif
|
Chris@16
|
1240
|
Chris@16
|
1241 // 8-argument bind functions --------------------------
|
Chris@16
|
1242 #ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
|
Chris@16
|
1243 template <class Result, class Par1, class Par2, class Par3, class Par4,
|
Chris@16
|
1244 class Par5, class Par6, class Par7, class Arg2, class Arg3,
|
Chris@16
|
1245 class Arg4, class Arg5, class Arg6, class Arg7, class Arg8>
|
Chris@16
|
1246 inline const
|
Chris@16
|
1247 lambda_functor<
|
Chris@16
|
1248 lambda_functor_base<
|
Chris@16
|
1249 action<8, function_action<8, Result> >,
|
Chris@16
|
1250 typename detail::bind_tuple_mapper<
|
Chris@16
|
1251 Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2,
|
Chris@16
|
1252 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
|
Chris@16
|
1253 >::type
|
Chris@16
|
1254 >
|
Chris@16
|
1255 >
|
Chris@16
|
1256
|
Chris@16
|
1257 bind(Result(&a1)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2& a2,
|
Chris@16
|
1258 const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6,
|
Chris@16
|
1259 const Arg7& a7, const Arg8& a8) {
|
Chris@16
|
1260 return
|
Chris@16
|
1261 lambda_functor_base<
|
Chris@16
|
1262 action<8, function_action<8, Result> >,
|
Chris@16
|
1263 typename detail::bind_tuple_mapper<
|
Chris@16
|
1264 Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2,
|
Chris@16
|
1265 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
|
Chris@16
|
1266 >::type
|
Chris@16
|
1267 >
|
Chris@16
|
1268 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
1269 Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2,
|
Chris@16
|
1270 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
|
Chris@16
|
1271 >::type
|
Chris@16
|
1272 (a1, a2, a3, a4, a5, a6, a7, a8)
|
Chris@16
|
1273 );
|
Chris@16
|
1274 }
|
Chris@16
|
1275 #endif
|
Chris@16
|
1276
|
Chris@16
|
1277 #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
|
Chris@16
|
1278 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
|
Chris@16
|
1279 class Arg6, class Arg7, class Arg8>
|
Chris@16
|
1280 inline const
|
Chris@16
|
1281 lambda_functor<
|
Chris@16
|
1282 lambda_functor_base<
|
Chris@16
|
1283 action<8, function_action<8> >,
|
Chris@16
|
1284 typename detail::bind_tuple_mapper<
|
Chris@16
|
1285 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
|
Chris@16
|
1286 const Arg7, const Arg8
|
Chris@16
|
1287 >::type
|
Chris@16
|
1288 >
|
Chris@16
|
1289 >
|
Chris@16
|
1290
|
Chris@16
|
1291 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
|
Chris@16
|
1292 const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8) {
|
Chris@16
|
1293 return
|
Chris@16
|
1294 lambda_functor_base<
|
Chris@16
|
1295 action<8, function_action<8> >,
|
Chris@16
|
1296 typename detail::bind_tuple_mapper<
|
Chris@16
|
1297 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
|
Chris@16
|
1298 const Arg6, const Arg7, const Arg8
|
Chris@16
|
1299 >::type
|
Chris@16
|
1300 >
|
Chris@16
|
1301 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
1302 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
|
Chris@16
|
1303 const Arg6, const Arg7, const Arg8
|
Chris@16
|
1304 >::type
|
Chris@16
|
1305 (a1, a2, a3, a4, a5, a6, a7, a8)
|
Chris@16
|
1306 );
|
Chris@16
|
1307 }
|
Chris@16
|
1308
|
Chris@16
|
1309 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
|
Chris@16
|
1310 class Arg5, class Arg6, class Arg7, class Arg8>
|
Chris@16
|
1311 inline const
|
Chris@16
|
1312 lambda_functor<
|
Chris@16
|
1313 lambda_functor_base<
|
Chris@16
|
1314 action<8, function_action<8, Result> >,
|
Chris@16
|
1315 typename detail::bind_tuple_mapper<
|
Chris@16
|
1316 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
|
Chris@16
|
1317 const Arg7, const Arg8
|
Chris@16
|
1318 >::type
|
Chris@16
|
1319 >
|
Chris@16
|
1320 >
|
Chris@16
|
1321
|
Chris@16
|
1322 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
|
Chris@16
|
1323 const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8) {
|
Chris@16
|
1324 return
|
Chris@16
|
1325 lambda_functor_base<
|
Chris@16
|
1326 action<8, function_action<8, Result> >,
|
Chris@16
|
1327 typename detail::bind_tuple_mapper<
|
Chris@16
|
1328 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
|
Chris@16
|
1329 const Arg6, const Arg7, const Arg8
|
Chris@16
|
1330 >::type
|
Chris@16
|
1331 >
|
Chris@16
|
1332 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
1333 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
|
Chris@16
|
1334 const Arg6, const Arg7, const Arg8
|
Chris@16
|
1335 >::type
|
Chris@16
|
1336 (a1, a2, a3, a4, a5, a6, a7, a8)
|
Chris@16
|
1337 );
|
Chris@16
|
1338 }
|
Chris@16
|
1339
|
Chris@16
|
1340
|
Chris@16
|
1341 #else
|
Chris@16
|
1342 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
|
Chris@16
|
1343 class Arg6, class Arg7, class Arg8>
|
Chris@16
|
1344 inline const
|
Chris@16
|
1345 lambda_functor<
|
Chris@16
|
1346 lambda_functor_base<
|
Chris@16
|
1347 action<8, function_action<8> >,
|
Chris@16
|
1348 typename detail::bind_tuple_mapper<
|
Chris@16
|
1349 typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
|
Chris@16
|
1350 const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
|
Chris@16
|
1351 >::type
|
Chris@16
|
1352 >
|
Chris@16
|
1353 >
|
Chris@16
|
1354
|
Chris@16
|
1355 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
|
Chris@16
|
1356 const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8) {
|
Chris@16
|
1357 return
|
Chris@16
|
1358 lambda_functor_base<
|
Chris@16
|
1359 action<8, function_action<8> >,
|
Chris@16
|
1360 typename detail::bind_tuple_mapper<
|
Chris@16
|
1361 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
1362 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
|
Chris@16
|
1363 >::type
|
Chris@16
|
1364 >
|
Chris@16
|
1365 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
1366 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
1367 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
|
Chris@16
|
1368 >::type
|
Chris@16
|
1369 (a1, a2, a3, a4, a5, a6, a7, a8)
|
Chris@16
|
1370 );
|
Chris@16
|
1371 }
|
Chris@16
|
1372
|
Chris@16
|
1373 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
|
Chris@16
|
1374 class Arg5, class Arg6, class Arg7, class Arg8>
|
Chris@16
|
1375 inline const
|
Chris@16
|
1376 lambda_functor<
|
Chris@16
|
1377 lambda_functor_base<
|
Chris@16
|
1378 action<8, function_action<8, Result> >,
|
Chris@16
|
1379 typename detail::bind_tuple_mapper<
|
Chris@16
|
1380 typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
|
Chris@16
|
1381 const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
|
Chris@16
|
1382 >::type
|
Chris@16
|
1383 >
|
Chris@16
|
1384 >
|
Chris@16
|
1385
|
Chris@16
|
1386 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
|
Chris@16
|
1387 const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8) {
|
Chris@16
|
1388 return
|
Chris@16
|
1389 lambda_functor_base<
|
Chris@16
|
1390 action<8, function_action<8, Result> >,
|
Chris@16
|
1391 typename detail::bind_tuple_mapper<
|
Chris@16
|
1392 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
1393 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
|
Chris@16
|
1394 >::type
|
Chris@16
|
1395 >
|
Chris@16
|
1396 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
1397 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
1398 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
|
Chris@16
|
1399 >::type
|
Chris@16
|
1400 (a1, a2, a3, a4, a5, a6, a7, a8)
|
Chris@16
|
1401 );
|
Chris@16
|
1402 }
|
Chris@16
|
1403
|
Chris@16
|
1404 template <class Result, class Par1, class Par2, class Par3, class Par4,
|
Chris@16
|
1405 class Par5, class Par6, class Par7, class Arg2, class Arg3,
|
Chris@16
|
1406 class Arg4, class Arg5, class Arg6, class Arg7, class Arg8>
|
Chris@16
|
1407 inline const
|
Chris@16
|
1408 lambda_functor<
|
Chris@16
|
1409 lambda_functor_base<
|
Chris@16
|
1410 action<8, function_action<8, Result> >,
|
Chris@16
|
1411 typename detail::bind_tuple_mapper<
|
Chris@16
|
1412 Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2,
|
Chris@16
|
1413 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
|
Chris@16
|
1414 >::type
|
Chris@16
|
1415 >
|
Chris@16
|
1416 >
|
Chris@16
|
1417
|
Chris@16
|
1418 bind(Result(* const & a1)(Par1, Par2, Par3, Par4, Par5, Par6, Par7),
|
Chris@16
|
1419 const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5,
|
Chris@16
|
1420 const Arg6& a6, const Arg7& a7, const Arg8& a8) {
|
Chris@16
|
1421 return
|
Chris@16
|
1422 lambda_functor_base<
|
Chris@16
|
1423 action<8, function_action<8, Result> >,
|
Chris@16
|
1424 typename detail::bind_tuple_mapper<
|
Chris@16
|
1425 Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2,
|
Chris@16
|
1426 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
|
Chris@16
|
1427 >::type
|
Chris@16
|
1428 >
|
Chris@16
|
1429 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
1430 Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2,
|
Chris@16
|
1431 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
|
Chris@16
|
1432 >::type
|
Chris@16
|
1433 (a1, a2, a3, a4, a5, a6, a7, a8)
|
Chris@16
|
1434 );
|
Chris@16
|
1435 }
|
Chris@16
|
1436
|
Chris@16
|
1437
|
Chris@16
|
1438 #endif
|
Chris@16
|
1439
|
Chris@16
|
1440 // 9-argument bind functions --------------------------
|
Chris@16
|
1441 #ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
|
Chris@16
|
1442 template <class Result, class Par1, class Par2, class Par3, class Par4,
|
Chris@16
|
1443 class Par5, class Par6, class Par7, class Par8, class Arg2,
|
Chris@16
|
1444 class Arg3, class Arg4, class Arg5, class Arg6, class Arg7,
|
Chris@16
|
1445 class Arg8, class Arg9>
|
Chris@16
|
1446 inline const
|
Chris@16
|
1447 lambda_functor<
|
Chris@16
|
1448 lambda_functor_base<
|
Chris@16
|
1449 action<9, function_action<9, Result> >,
|
Chris@16
|
1450 typename detail::bind_tuple_mapper<
|
Chris@16
|
1451 Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8), const Arg2,
|
Chris@16
|
1452 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8,
|
Chris@16
|
1453 const Arg9
|
Chris@16
|
1454 >::type
|
Chris@16
|
1455 >
|
Chris@16
|
1456 >
|
Chris@16
|
1457
|
Chris@16
|
1458 bind(Result(&a1)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8),
|
Chris@16
|
1459 const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5,
|
Chris@16
|
1460 const Arg6& a6, const Arg7& a7, const Arg8& a8, const Arg9& a9) {
|
Chris@16
|
1461 return
|
Chris@16
|
1462 lambda_functor_base<
|
Chris@16
|
1463 action<9, function_action<9, Result> >,
|
Chris@16
|
1464 typename detail::bind_tuple_mapper<
|
Chris@16
|
1465 Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8), const Arg2,
|
Chris@16
|
1466 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
|
Chris@16
|
1467 const Arg8, const Arg9
|
Chris@16
|
1468 >::type
|
Chris@16
|
1469 >
|
Chris@16
|
1470 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
1471 Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8), const Arg2,
|
Chris@16
|
1472 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
|
Chris@16
|
1473 const Arg8, const Arg9
|
Chris@16
|
1474 >::type
|
Chris@16
|
1475 (a1, a2, a3, a4, a5, a6, a7, a8, a9)
|
Chris@16
|
1476 );
|
Chris@16
|
1477 }
|
Chris@16
|
1478 #endif
|
Chris@16
|
1479
|
Chris@16
|
1480 #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
|
Chris@16
|
1481 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
|
Chris@16
|
1482 class Arg6, class Arg7, class Arg8, class Arg9>
|
Chris@16
|
1483 inline const
|
Chris@16
|
1484 lambda_functor<
|
Chris@16
|
1485 lambda_functor_base<
|
Chris@16
|
1486 action<9, function_action<9> >,
|
Chris@16
|
1487 typename detail::bind_tuple_mapper<
|
Chris@16
|
1488 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
|
Chris@16
|
1489 const Arg7, const Arg8, const Arg9
|
Chris@16
|
1490 >::type
|
Chris@16
|
1491 >
|
Chris@16
|
1492 >
|
Chris@16
|
1493
|
Chris@16
|
1494 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
|
Chris@16
|
1495 const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8,
|
Chris@16
|
1496 const Arg9& a9) {
|
Chris@16
|
1497 return
|
Chris@16
|
1498 lambda_functor_base<
|
Chris@16
|
1499 action<9, function_action<9> >,
|
Chris@16
|
1500 typename detail::bind_tuple_mapper<
|
Chris@16
|
1501 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
|
Chris@16
|
1502 const Arg6, const Arg7, const Arg8, const Arg9
|
Chris@16
|
1503 >::type
|
Chris@16
|
1504 >
|
Chris@16
|
1505 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
1506 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
|
Chris@16
|
1507 const Arg6, const Arg7, const Arg8, const Arg9
|
Chris@16
|
1508 >::type
|
Chris@16
|
1509 (a1, a2, a3, a4, a5, a6, a7, a8, a9)
|
Chris@16
|
1510 );
|
Chris@16
|
1511 }
|
Chris@16
|
1512
|
Chris@16
|
1513 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
|
Chris@16
|
1514 class Arg5, class Arg6, class Arg7, class Arg8, class Arg9>
|
Chris@16
|
1515 inline const
|
Chris@16
|
1516 lambda_functor<
|
Chris@16
|
1517 lambda_functor_base<
|
Chris@16
|
1518 action<9, function_action<9, Result> >,
|
Chris@16
|
1519 typename detail::bind_tuple_mapper<
|
Chris@16
|
1520 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
|
Chris@16
|
1521 const Arg7, const Arg8, const Arg9
|
Chris@16
|
1522 >::type
|
Chris@16
|
1523 >
|
Chris@16
|
1524 >
|
Chris@16
|
1525
|
Chris@16
|
1526 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
|
Chris@16
|
1527 const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8,
|
Chris@16
|
1528 const Arg9& a9) {
|
Chris@16
|
1529 return
|
Chris@16
|
1530 lambda_functor_base<
|
Chris@16
|
1531 action<9, function_action<9, Result> >,
|
Chris@16
|
1532 typename detail::bind_tuple_mapper<
|
Chris@16
|
1533 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
|
Chris@16
|
1534 const Arg6, const Arg7, const Arg8, const Arg9
|
Chris@16
|
1535 >::type
|
Chris@16
|
1536 >
|
Chris@16
|
1537 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
1538 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
|
Chris@16
|
1539 const Arg6, const Arg7, const Arg8, const Arg9
|
Chris@16
|
1540 >::type
|
Chris@16
|
1541 (a1, a2, a3, a4, a5, a6, a7, a8, a9)
|
Chris@16
|
1542 );
|
Chris@16
|
1543 }
|
Chris@16
|
1544
|
Chris@16
|
1545
|
Chris@16
|
1546 #else
|
Chris@16
|
1547 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
|
Chris@16
|
1548 class Arg6, class Arg7, class Arg8, class Arg9>
|
Chris@16
|
1549 inline const
|
Chris@16
|
1550 lambda_functor<
|
Chris@16
|
1551 lambda_functor_base<
|
Chris@16
|
1552 action<9, function_action<9> >,
|
Chris@16
|
1553 typename detail::bind_tuple_mapper<
|
Chris@16
|
1554 typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
|
Chris@16
|
1555 const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9
|
Chris@16
|
1556 >::type
|
Chris@16
|
1557 >
|
Chris@16
|
1558 >
|
Chris@16
|
1559
|
Chris@16
|
1560 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
|
Chris@16
|
1561 const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8,
|
Chris@16
|
1562 const Arg9& a9) {
|
Chris@16
|
1563 return
|
Chris@16
|
1564 lambda_functor_base<
|
Chris@16
|
1565 action<9, function_action<9> >,
|
Chris@16
|
1566 typename detail::bind_tuple_mapper<
|
Chris@16
|
1567 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
1568 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
|
Chris@16
|
1569 const Arg8, const Arg9
|
Chris@16
|
1570 >::type
|
Chris@16
|
1571 >
|
Chris@16
|
1572 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
1573 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
1574 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
|
Chris@16
|
1575 const Arg8, const Arg9
|
Chris@16
|
1576 >::type
|
Chris@16
|
1577 (a1, a2, a3, a4, a5, a6, a7, a8, a9)
|
Chris@16
|
1578 );
|
Chris@16
|
1579 }
|
Chris@16
|
1580
|
Chris@16
|
1581 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
|
Chris@16
|
1582 class Arg5, class Arg6, class Arg7, class Arg8, class Arg9>
|
Chris@16
|
1583 inline const
|
Chris@16
|
1584 lambda_functor<
|
Chris@16
|
1585 lambda_functor_base<
|
Chris@16
|
1586 action<9, function_action<9, Result> >,
|
Chris@16
|
1587 typename detail::bind_tuple_mapper<
|
Chris@16
|
1588 typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
|
Chris@16
|
1589 const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9
|
Chris@16
|
1590 >::type
|
Chris@16
|
1591 >
|
Chris@16
|
1592 >
|
Chris@16
|
1593
|
Chris@16
|
1594 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
|
Chris@16
|
1595 const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8,
|
Chris@16
|
1596 const Arg9& a9) {
|
Chris@16
|
1597 return
|
Chris@16
|
1598 lambda_functor_base<
|
Chris@16
|
1599 action<9, function_action<9, Result> >,
|
Chris@16
|
1600 typename detail::bind_tuple_mapper<
|
Chris@16
|
1601 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
1602 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
|
Chris@16
|
1603 const Arg8, const Arg9
|
Chris@16
|
1604 >::type
|
Chris@16
|
1605 >
|
Chris@16
|
1606 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
1607 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
1608 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
|
Chris@16
|
1609 const Arg8, const Arg9
|
Chris@16
|
1610 >::type
|
Chris@16
|
1611 (a1, a2, a3, a4, a5, a6, a7, a8, a9)
|
Chris@16
|
1612 );
|
Chris@16
|
1613 }
|
Chris@16
|
1614
|
Chris@16
|
1615 template <class Result, class Par1, class Par2, class Par3, class Par4,
|
Chris@16
|
1616 class Par5, class Par6, class Par7, class Par8, class Arg2,
|
Chris@16
|
1617 class Arg3, class Arg4, class Arg5, class Arg6, class Arg7,
|
Chris@16
|
1618 class Arg8, class Arg9>
|
Chris@16
|
1619 inline const
|
Chris@16
|
1620 lambda_functor<
|
Chris@16
|
1621 lambda_functor_base<
|
Chris@16
|
1622 action<9, function_action<9, Result> >,
|
Chris@16
|
1623 typename detail::bind_tuple_mapper<
|
Chris@16
|
1624 Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8), const Arg2,
|
Chris@16
|
1625 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8,
|
Chris@16
|
1626 const Arg9
|
Chris@16
|
1627 >::type
|
Chris@16
|
1628 >
|
Chris@16
|
1629 >
|
Chris@16
|
1630
|
Chris@16
|
1631 bind(Result(* const & a1)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8),
|
Chris@16
|
1632 const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5,
|
Chris@16
|
1633 const Arg6& a6, const Arg7& a7, const Arg8& a8, const Arg9& a9) {
|
Chris@16
|
1634 return
|
Chris@16
|
1635 lambda_functor_base<
|
Chris@16
|
1636 action<9, function_action<9, Result> >,
|
Chris@16
|
1637 typename detail::bind_tuple_mapper<
|
Chris@16
|
1638 Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8), const Arg2,
|
Chris@16
|
1639 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
|
Chris@16
|
1640 const Arg8, const Arg9
|
Chris@16
|
1641 >::type
|
Chris@16
|
1642 >
|
Chris@16
|
1643 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
1644 Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8), const Arg2,
|
Chris@16
|
1645 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
|
Chris@16
|
1646 const Arg8, const Arg9
|
Chris@16
|
1647 >::type
|
Chris@16
|
1648 (a1, a2, a3, a4, a5, a6, a7, a8, a9)
|
Chris@16
|
1649 );
|
Chris@16
|
1650 }
|
Chris@16
|
1651
|
Chris@16
|
1652
|
Chris@16
|
1653 #endif
|
Chris@16
|
1654
|
Chris@16
|
1655 // 10-argument bind functions --------------------------
|
Chris@16
|
1656 #ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
|
Chris@16
|
1657 template <class Result, class Par1, class Par2, class Par3, class Par4,
|
Chris@16
|
1658 class Par5, class Par6, class Par7, class Par8, class Par9,
|
Chris@16
|
1659 class Arg2, class Arg3, class Arg4, class Arg5, class Arg6,
|
Chris@16
|
1660 class Arg7, class Arg8, class Arg9, class Arg10>
|
Chris@16
|
1661 inline const
|
Chris@16
|
1662 lambda_functor<
|
Chris@16
|
1663 lambda_functor_base<
|
Chris@16
|
1664 action<10, function_action<10, Result> >,
|
Chris@16
|
1665 typename detail::bind_tuple_mapper<
|
Chris@16
|
1666 Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9),
|
Chris@16
|
1667 const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
|
Chris@16
|
1668 const Arg8, const Arg9, const Arg10
|
Chris@16
|
1669 >::type
|
Chris@16
|
1670 >
|
Chris@16
|
1671 >
|
Chris@16
|
1672
|
Chris@16
|
1673 bind(Result(&a1)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9),
|
Chris@16
|
1674 const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5,
|
Chris@16
|
1675 const Arg6& a6, const Arg7& a7, const Arg8& a8, const Arg9& a9,
|
Chris@16
|
1676 const Arg10& a10) {
|
Chris@16
|
1677 return
|
Chris@16
|
1678 lambda_functor_base<
|
Chris@16
|
1679 action<10, function_action<10, Result> >,
|
Chris@16
|
1680 typename detail::bind_tuple_mapper<
|
Chris@16
|
1681 Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9),
|
Chris@16
|
1682 const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
|
Chris@16
|
1683 const Arg7, const Arg8, const Arg9, const Arg10
|
Chris@16
|
1684 >::type
|
Chris@16
|
1685 >
|
Chris@16
|
1686 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
1687 Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9),
|
Chris@16
|
1688 const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
|
Chris@16
|
1689 const Arg7, const Arg8, const Arg9, const Arg10
|
Chris@16
|
1690 >::type
|
Chris@16
|
1691 (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
|
Chris@16
|
1692 );
|
Chris@16
|
1693 }
|
Chris@16
|
1694 #endif
|
Chris@16
|
1695
|
Chris@16
|
1696 #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
|
Chris@16
|
1697 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
|
Chris@16
|
1698 class Arg6, class Arg7, class Arg8, class Arg9, class Arg10>
|
Chris@16
|
1699 inline const
|
Chris@16
|
1700 lambda_functor<
|
Chris@16
|
1701 lambda_functor_base<
|
Chris@16
|
1702 action<10, function_action<10> >,
|
Chris@16
|
1703 typename detail::bind_tuple_mapper<
|
Chris@16
|
1704 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
|
Chris@16
|
1705 const Arg7, const Arg8, const Arg9, const Arg10
|
Chris@16
|
1706 >::type
|
Chris@16
|
1707 >
|
Chris@16
|
1708 >
|
Chris@16
|
1709
|
Chris@16
|
1710 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
|
Chris@16
|
1711 const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8,
|
Chris@16
|
1712 const Arg9& a9, const Arg10& a10) {
|
Chris@16
|
1713 return
|
Chris@16
|
1714 lambda_functor_base<
|
Chris@16
|
1715 action<10, function_action<10> >,
|
Chris@16
|
1716 typename detail::bind_tuple_mapper<
|
Chris@16
|
1717 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
|
Chris@16
|
1718 const Arg6, const Arg7, const Arg8, const Arg9, const Arg10
|
Chris@16
|
1719 >::type
|
Chris@16
|
1720 >
|
Chris@16
|
1721 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
1722 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
|
Chris@16
|
1723 const Arg6, const Arg7, const Arg8, const Arg9, const Arg10
|
Chris@16
|
1724 >::type
|
Chris@16
|
1725 (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
|
Chris@16
|
1726 );
|
Chris@16
|
1727 }
|
Chris@16
|
1728
|
Chris@16
|
1729 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
|
Chris@16
|
1730 class Arg5, class Arg6, class Arg7, class Arg8, class Arg9,
|
Chris@16
|
1731 class Arg10>
|
Chris@16
|
1732 inline const
|
Chris@16
|
1733 lambda_functor<
|
Chris@16
|
1734 lambda_functor_base<
|
Chris@16
|
1735 action<10, function_action<10, Result> >,
|
Chris@16
|
1736 typename detail::bind_tuple_mapper<
|
Chris@16
|
1737 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
|
Chris@16
|
1738 const Arg7, const Arg8, const Arg9, const Arg10
|
Chris@16
|
1739 >::type
|
Chris@16
|
1740 >
|
Chris@16
|
1741 >
|
Chris@16
|
1742
|
Chris@16
|
1743 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
|
Chris@16
|
1744 const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8,
|
Chris@16
|
1745 const Arg9& a9, const Arg10& a10) {
|
Chris@16
|
1746 return
|
Chris@16
|
1747 lambda_functor_base<
|
Chris@16
|
1748 action<10, function_action<10, Result> >,
|
Chris@16
|
1749 typename detail::bind_tuple_mapper<
|
Chris@16
|
1750 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
|
Chris@16
|
1751 const Arg6, const Arg7, const Arg8, const Arg9, const Arg10
|
Chris@16
|
1752 >::type
|
Chris@16
|
1753 >
|
Chris@16
|
1754 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
1755 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
|
Chris@16
|
1756 const Arg6, const Arg7, const Arg8, const Arg9, const Arg10
|
Chris@16
|
1757 >::type
|
Chris@16
|
1758 (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
|
Chris@16
|
1759 );
|
Chris@16
|
1760 }
|
Chris@16
|
1761
|
Chris@16
|
1762
|
Chris@16
|
1763 #else
|
Chris@16
|
1764 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
|
Chris@16
|
1765 class Arg6, class Arg7, class Arg8, class Arg9, class Arg10>
|
Chris@16
|
1766 inline const
|
Chris@16
|
1767 lambda_functor<
|
Chris@16
|
1768 lambda_functor_base<
|
Chris@16
|
1769 action<10, function_action<10> >,
|
Chris@16
|
1770 typename detail::bind_tuple_mapper<
|
Chris@16
|
1771 typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
|
Chris@16
|
1772 const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9,
|
Chris@16
|
1773 const Arg10
|
Chris@16
|
1774 >::type
|
Chris@16
|
1775 >
|
Chris@16
|
1776 >
|
Chris@16
|
1777
|
Chris@16
|
1778 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
|
Chris@16
|
1779 const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8,
|
Chris@16
|
1780 const Arg9& a9, const Arg10& a10) {
|
Chris@16
|
1781 return
|
Chris@16
|
1782 lambda_functor_base<
|
Chris@16
|
1783 action<10, function_action<10> >,
|
Chris@16
|
1784 typename detail::bind_tuple_mapper<
|
Chris@16
|
1785 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
1786 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
|
Chris@16
|
1787 const Arg8, const Arg9, const Arg10
|
Chris@16
|
1788 >::type
|
Chris@16
|
1789 >
|
Chris@16
|
1790 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
1791 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
1792 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
|
Chris@16
|
1793 const Arg8, const Arg9, const Arg10
|
Chris@16
|
1794 >::type
|
Chris@16
|
1795 (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
|
Chris@16
|
1796 );
|
Chris@16
|
1797 }
|
Chris@16
|
1798
|
Chris@16
|
1799 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
|
Chris@16
|
1800 class Arg5, class Arg6, class Arg7, class Arg8, class Arg9,
|
Chris@16
|
1801 class Arg10>
|
Chris@16
|
1802 inline const
|
Chris@16
|
1803 lambda_functor<
|
Chris@16
|
1804 lambda_functor_base<
|
Chris@16
|
1805 action<10, function_action<10, Result> >,
|
Chris@16
|
1806 typename detail::bind_tuple_mapper<
|
Chris@16
|
1807 typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
|
Chris@16
|
1808 const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9,
|
Chris@16
|
1809 const Arg10
|
Chris@16
|
1810 >::type
|
Chris@16
|
1811 >
|
Chris@16
|
1812 >
|
Chris@16
|
1813
|
Chris@16
|
1814 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
|
Chris@16
|
1815 const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8,
|
Chris@16
|
1816 const Arg9& a9, const Arg10& a10) {
|
Chris@16
|
1817 return
|
Chris@16
|
1818 lambda_functor_base<
|
Chris@16
|
1819 action<10, function_action<10, Result> >,
|
Chris@16
|
1820 typename detail::bind_tuple_mapper<
|
Chris@16
|
1821 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
1822 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
|
Chris@16
|
1823 const Arg8, const Arg9, const Arg10
|
Chris@16
|
1824 >::type
|
Chris@16
|
1825 >
|
Chris@16
|
1826 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
1827 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
|
Chris@16
|
1828 const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
|
Chris@16
|
1829 const Arg8, const Arg9, const Arg10
|
Chris@16
|
1830 >::type
|
Chris@16
|
1831 (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
|
Chris@16
|
1832 );
|
Chris@16
|
1833 }
|
Chris@16
|
1834
|
Chris@16
|
1835 template <class Result, class Par1, class Par2, class Par3, class Par4,
|
Chris@16
|
1836 class Par5, class Par6, class Par7, class Par8, class Par9,
|
Chris@16
|
1837 class Arg2, class Arg3, class Arg4, class Arg5, class Arg6,
|
Chris@16
|
1838 class Arg7, class Arg8, class Arg9, class Arg10>
|
Chris@16
|
1839 inline const
|
Chris@16
|
1840 lambda_functor<
|
Chris@16
|
1841 lambda_functor_base<
|
Chris@16
|
1842 action<10, function_action<10, Result> >,
|
Chris@16
|
1843 typename detail::bind_tuple_mapper<
|
Chris@16
|
1844 Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9),
|
Chris@16
|
1845 const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
|
Chris@16
|
1846 const Arg8, const Arg9, const Arg10
|
Chris@16
|
1847 >::type
|
Chris@16
|
1848 >
|
Chris@16
|
1849 >
|
Chris@16
|
1850
|
Chris@16
|
1851 bind(Result(* const & a1)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8,
|
Chris@16
|
1852 Par9), const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5,
|
Chris@16
|
1853 const Arg6& a6, const Arg7& a7, const Arg8& a8, const Arg9& a9,
|
Chris@16
|
1854 const Arg10& a10) {
|
Chris@16
|
1855 return
|
Chris@16
|
1856 lambda_functor_base<
|
Chris@16
|
1857 action<10, function_action<10, Result> >,
|
Chris@16
|
1858 typename detail::bind_tuple_mapper<
|
Chris@16
|
1859 Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9),
|
Chris@16
|
1860 const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
|
Chris@16
|
1861 const Arg7, const Arg8, const Arg9, const Arg10
|
Chris@16
|
1862 >::type
|
Chris@16
|
1863 >
|
Chris@16
|
1864 ( typename detail::bind_tuple_mapper<
|
Chris@16
|
1865 Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9),
|
Chris@16
|
1866 const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
|
Chris@16
|
1867 const Arg7, const Arg8, const Arg9, const Arg10
|
Chris@16
|
1868 >::type
|
Chris@16
|
1869 (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
|
Chris@16
|
1870 );
|
Chris@16
|
1871 }
|
Chris@16
|
1872
|
Chris@16
|
1873
|
Chris@16
|
1874 #endif
|
Chris@16
|
1875
|
Chris@16
|
1876 } // namespace lambda
|
Chris@16
|
1877 } // namespace boost
|
Chris@16
|
1878
|
Chris@16
|
1879 #endif
|