1
// -- bind_functions.hpp -- Boost Lambda Library
3
// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
5
// Distributed under the Boost Software License, Version 1.0. (See
6
// accompanying file LICENSE_1_0.txt or copy at
7
// http://www.boost.org/LICENSE_1_0.txt)
9
// For more information, see http://www.boost.org
11
// ----------------------------------------------------------------
13
#ifndef BOOST_LAMBDA_BIND_FUNCTIONS_HPP
14
#define BOOST_LAMBDA_BIND_FUNCTIONS_HPP
20
#ifdef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
22
// gcc 2.96 instantiates bind functions it does not even call.
23
// These instantiations lead to incorrect types in the return type,
24
// and a compilation error results.
25
// This tweaking is to prevent the formation of the erroneous type.
28
template<class T> struct constify_non_funcs {
30
detail::IF_type<boost::is_function<T>::value,
31
boost::add_reference<T>,
38
// 1-argument bind functions --------------------------
39
#ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
40
template <class Result>
44
action<1, function_action<1, Result> >,
45
typename detail::bind_tuple_mapper<Result(&)()>::type
49
bind(Result(& a1)()) {
52
action<1, function_action<1, Result> >,
53
typename detail::bind_tuple_mapper<Result(&)()>::type
55
( typename detail::bind_tuple_mapper<Result(&)()>::type
61
#ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
66
action<1, function_action<1> >,
67
typename detail::bind_tuple_mapper<const Arg1>::type
71
bind(const Arg1& a1) {
74
action<1, function_action<1> >,
75
typename detail::bind_tuple_mapper<const Arg1>::type
77
( typename detail::bind_tuple_mapper<const Arg1>::type
82
template <class Result, class Arg1>
86
action<1, function_action<1, Result> >,
87
typename detail::bind_tuple_mapper<const Arg1>::type
91
bind(const Arg1& a1) {
94
action<1, function_action<1, Result> >,
95
typename detail::bind_tuple_mapper<const Arg1>::type
97
( typename detail::bind_tuple_mapper<const Arg1>::type
104
template <class Arg1>
108
action<1, function_action<1> >,
109
typename detail::bind_tuple_mapper<
110
typename detail::constify_non_funcs<Arg1>::type
115
bind(const Arg1& a1) {
118
action<1, function_action<1> >,
119
typename detail::bind_tuple_mapper<
120
typename detail::constify_non_funcs<Arg1>::type
123
( typename detail::bind_tuple_mapper<
124
typename detail::constify_non_funcs<Arg1>::type
130
template <class Result, class Arg1>
134
action<1, function_action<1, Result> >,
135
typename detail::bind_tuple_mapper<
136
typename detail::constify_non_funcs<Arg1>::type
141
bind(const Arg1& a1) {
144
action<1, function_action<1, Result> >,
145
typename detail::bind_tuple_mapper<
146
typename detail::constify_non_funcs<Arg1>::type
149
( typename detail::bind_tuple_mapper<
150
typename detail::constify_non_funcs<Arg1>::type
156
template <class Result>
160
action<1, function_action<1, Result> >,
161
typename detail::bind_tuple_mapper<Result(*)()>::type
165
bind(Result(* const & a1)()) {
168
action<1, function_action<1, Result> >,
169
typename detail::bind_tuple_mapper<Result(*)()>::type
171
( typename detail::bind_tuple_mapper<Result(*)()>::type
179
// 2-argument bind functions --------------------------
180
#ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
181
template <class Result, class Par1, class Arg2>
185
action<2, function_action<2, Result> >,
186
typename detail::bind_tuple_mapper<Result(&)(Par1), const Arg2>::type
190
bind(Result(&a1)(Par1), const Arg2& a2) {
193
action<2, function_action<2, Result> >,
194
typename detail::bind_tuple_mapper<Result(&)(Par1), const Arg2>::type
196
( typename detail::bind_tuple_mapper<Result(&)(Par1), const Arg2>::type
202
#ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
203
template <class Arg1, class Arg2>
207
action<2, function_action<2> >,
208
typename detail::bind_tuple_mapper<const Arg1, const Arg2>::type
212
bind(const Arg1& a1, const Arg2& a2) {
215
action<2, function_action<2> >,
216
typename detail::bind_tuple_mapper<const Arg1, const Arg2>::type
218
( typename detail::bind_tuple_mapper<const Arg1, const Arg2>::type
223
template <class Result, class Arg1, class Arg2>
227
action<2, function_action<2, Result> >,
228
typename detail::bind_tuple_mapper<const Arg1, const Arg2>::type
232
bind(const Arg1& a1, const Arg2& a2) {
235
action<2, function_action<2, Result> >,
236
typename detail::bind_tuple_mapper<const Arg1, const Arg2>::type
238
( typename detail::bind_tuple_mapper<const Arg1, const Arg2>::type
245
template <class Arg1, class Arg2>
249
action<2, function_action<2> >,
250
typename detail::bind_tuple_mapper<
251
typename detail::constify_non_funcs<Arg1>::type, const Arg2
256
bind(const Arg1& a1, const Arg2& a2) {
259
action<2, function_action<2> >,
260
typename detail::bind_tuple_mapper<
261
typename detail::constify_non_funcs<Arg1>::type, const Arg2
264
( typename detail::bind_tuple_mapper<
265
typename detail::constify_non_funcs<Arg1>::type, const Arg2
271
template <class Result, class Arg1, class Arg2>
275
action<2, function_action<2, Result> >,
276
typename detail::bind_tuple_mapper<
277
typename detail::constify_non_funcs<Arg1>::type, const Arg2
282
bind(const Arg1& a1, const Arg2& a2) {
285
action<2, function_action<2, Result> >,
286
typename detail::bind_tuple_mapper<
287
typename detail::constify_non_funcs<Arg1>::type, const Arg2
290
( typename detail::bind_tuple_mapper<
291
typename detail::constify_non_funcs<Arg1>::type, const Arg2
297
template <class Result, class Par1, class Arg2>
301
action<2, function_action<2, Result> >,
302
typename detail::bind_tuple_mapper<Result(*)(Par1), const Arg2>::type
306
bind(Result(* const & a1)(Par1), const Arg2& a2) {
309
action<2, function_action<2, Result> >,
310
typename detail::bind_tuple_mapper<Result(*)(Par1), const Arg2>::type
312
( typename detail::bind_tuple_mapper<Result(*)(Par1), const Arg2>::type
320
// 3-argument bind functions --------------------------
321
#ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
322
template <class Result, class Par1, class Par2, class Arg2, class Arg3>
326
action<3, function_action<3, Result> >,
327
typename detail::bind_tuple_mapper<
328
Result(&)(Par1, Par2), const Arg2, const Arg3
333
bind(Result(&a1)(Par1, Par2), const Arg2& a2, const Arg3& a3) {
336
action<3, function_action<3, Result> >,
337
typename detail::bind_tuple_mapper<
338
Result(&)(Par1, Par2), const Arg2, const Arg3
341
( typename detail::bind_tuple_mapper<
342
Result(&)(Par1, Par2), const Arg2, const Arg3
349
#ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
350
template <class Arg1, class Arg2, class Arg3>
354
action<3, function_action<3> >,
355
typename detail::bind_tuple_mapper<
356
const Arg1, const Arg2, const Arg3
361
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3) {
364
action<3, function_action<3> >,
365
typename detail::bind_tuple_mapper<
366
const Arg1, const Arg2, const Arg3
369
( typename detail::bind_tuple_mapper<
370
const Arg1, const Arg2, const Arg3
376
template <class Result, class Arg1, class Arg2, class Arg3>
380
action<3, function_action<3, Result> >,
381
typename detail::bind_tuple_mapper<
382
const Arg1, const Arg2, const Arg3
387
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3) {
390
action<3, function_action<3, Result> >,
391
typename detail::bind_tuple_mapper<
392
const Arg1, const Arg2, const Arg3
395
( typename detail::bind_tuple_mapper<
396
const Arg1, const Arg2, const Arg3
404
template <class Arg1, class Arg2, class Arg3>
408
action<3, function_action<3> >,
409
typename detail::bind_tuple_mapper<
410
typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3
415
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3) {
418
action<3, function_action<3> >,
419
typename detail::bind_tuple_mapper<
420
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
424
( typename detail::bind_tuple_mapper<
425
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
432
template <class Result, class Arg1, class Arg2, class Arg3>
436
action<3, function_action<3, Result> >,
437
typename detail::bind_tuple_mapper<
438
typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3
443
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3) {
446
action<3, function_action<3, Result> >,
447
typename detail::bind_tuple_mapper<
448
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
452
( typename detail::bind_tuple_mapper<
453
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
460
template <class Result, class Par1, class Par2, class Arg2, class Arg3>
464
action<3, function_action<3, Result> >,
465
typename detail::bind_tuple_mapper<
466
Result(*)(Par1, Par2), const Arg2, const Arg3
471
bind(Result(* const & a1)(Par1, Par2), const Arg2& a2, const Arg3& a3) {
474
action<3, function_action<3, Result> >,
475
typename detail::bind_tuple_mapper<
476
Result(*)(Par1, Par2), const Arg2, const Arg3
479
( typename detail::bind_tuple_mapper<
480
Result(*)(Par1, Par2), const Arg2, const Arg3
489
// 4-argument bind functions --------------------------
490
#ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
491
template <class Result, class Par1, class Par2, class Par3, class Arg2,
492
class Arg3, class Arg4>
496
action<4, function_action<4, Result> >,
497
typename detail::bind_tuple_mapper<
498
Result(&)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4
503
bind(Result(&a1)(Par1, Par2, Par3), const Arg2& a2, const Arg3& a3,
507
action<4, function_action<4, Result> >,
508
typename detail::bind_tuple_mapper<
509
Result(&)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4
512
( typename detail::bind_tuple_mapper<
513
Result(&)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4
520
#ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
521
template <class Arg1, class Arg2, class Arg3, class Arg4>
525
action<4, function_action<4> >,
526
typename detail::bind_tuple_mapper<
527
const Arg1, const Arg2, const Arg3, const Arg4
532
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4) {
535
action<4, function_action<4> >,
536
typename detail::bind_tuple_mapper<
537
const Arg1, const Arg2, const Arg3, const Arg4
540
( typename detail::bind_tuple_mapper<
541
const Arg1, const Arg2, const Arg3, const Arg4
547
template <class Result, class Arg1, class Arg2, class Arg3, class Arg4>
551
action<4, function_action<4, Result> >,
552
typename detail::bind_tuple_mapper<
553
const Arg1, const Arg2, const Arg3, const Arg4
558
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4) {
561
action<4, function_action<4, Result> >,
562
typename detail::bind_tuple_mapper<
563
const Arg1, const Arg2, const Arg3, const Arg4
566
( typename detail::bind_tuple_mapper<
567
const Arg1, const Arg2, const Arg3, const Arg4
575
template <class Arg1, class Arg2, class Arg3, class Arg4>
579
action<4, function_action<4> >,
580
typename detail::bind_tuple_mapper<
581
typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
587
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4) {
590
action<4, function_action<4> >,
591
typename detail::bind_tuple_mapper<
592
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
593
const Arg3, const Arg4
596
( typename detail::bind_tuple_mapper<
597
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
598
const Arg3, const Arg4
604
template <class Result, class Arg1, class Arg2, class Arg3, class Arg4>
608
action<4, function_action<4, Result> >,
609
typename detail::bind_tuple_mapper<
610
typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
616
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4) {
619
action<4, function_action<4, Result> >,
620
typename detail::bind_tuple_mapper<
621
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
622
const Arg3, const Arg4
625
( typename detail::bind_tuple_mapper<
626
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
627
const Arg3, const Arg4
633
template <class Result, class Par1, class Par2, class Par3, class Arg2,
634
class Arg3, class Arg4>
638
action<4, function_action<4, Result> >,
639
typename detail::bind_tuple_mapper<
640
Result(*)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4
645
bind(Result(* const & a1)(Par1, Par2, Par3), const Arg2& a2,
646
const Arg3& a3, const Arg4& a4) {
649
action<4, function_action<4, Result> >,
650
typename detail::bind_tuple_mapper<
651
Result(*)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4
654
( typename detail::bind_tuple_mapper<
655
Result(*)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4
664
// 5-argument bind functions --------------------------
665
#ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
666
template <class Result, class Par1, class Par2, class Par3, class Par4,
667
class Arg2, class Arg3, class Arg4, class Arg5>
671
action<5, function_action<5, Result> >,
672
typename detail::bind_tuple_mapper<
673
Result(&)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4,
679
bind(Result(&a1)(Par1, Par2, Par3, Par4), const Arg2& a2, const Arg3& a3,
680
const Arg4& a4, const Arg5& a5) {
683
action<5, function_action<5, Result> >,
684
typename detail::bind_tuple_mapper<
685
Result(&)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4,
689
( typename detail::bind_tuple_mapper<
690
Result(&)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4,
698
#ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
699
template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5>
703
action<5, function_action<5> >,
704
typename detail::bind_tuple_mapper<
705
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5
710
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
714
action<5, function_action<5> >,
715
typename detail::bind_tuple_mapper<
716
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5
719
( typename detail::bind_tuple_mapper<
720
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5
726
template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
731
action<5, function_action<5, Result> >,
732
typename detail::bind_tuple_mapper<
733
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5
738
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
742
action<5, function_action<5, Result> >,
743
typename detail::bind_tuple_mapper<
744
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5
747
( typename detail::bind_tuple_mapper<
748
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5
756
template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5>
760
action<5, function_action<5> >,
761
typename detail::bind_tuple_mapper<
762
typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
763
const Arg4, const Arg5
768
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
772
action<5, function_action<5> >,
773
typename detail::bind_tuple_mapper<
774
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
775
const Arg3, const Arg4, const Arg5
778
( typename detail::bind_tuple_mapper<
779
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
780
const Arg3, const Arg4, const Arg5
786
template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
791
action<5, function_action<5, Result> >,
792
typename detail::bind_tuple_mapper<
793
typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
794
const Arg4, const Arg5
799
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
803
action<5, function_action<5, Result> >,
804
typename detail::bind_tuple_mapper<
805
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
806
const Arg3, const Arg4, const Arg5
809
( typename detail::bind_tuple_mapper<
810
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
811
const Arg3, const Arg4, const Arg5
817
template <class Result, class Par1, class Par2, class Par3, class Par4,
818
class Arg2, class Arg3, class Arg4, class Arg5>
822
action<5, function_action<5, Result> >,
823
typename detail::bind_tuple_mapper<
824
Result(*)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4,
830
bind(Result(* const & a1)(Par1, Par2, Par3, Par4), const Arg2& a2,
831
const Arg3& a3, const Arg4& a4, const Arg5& a5) {
834
action<5, function_action<5, Result> >,
835
typename detail::bind_tuple_mapper<
836
Result(*)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4,
840
( typename detail::bind_tuple_mapper<
841
Result(*)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4,
851
// 6-argument bind functions --------------------------
852
#ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
853
template <class Result, class Par1, class Par2, class Par3, class Par4,
854
class Par5, class Arg2, class Arg3, class Arg4, class Arg5,
859
action<6, function_action<6, Result> >,
860
typename detail::bind_tuple_mapper<
861
Result(&)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3,
862
const Arg4, const Arg5, const Arg6
867
bind(Result(&a1)(Par1, Par2, Par3, Par4, Par5), const Arg2& a2,
868
const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6) {
871
action<6, function_action<6, Result> >,
872
typename detail::bind_tuple_mapper<
873
Result(&)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3,
874
const Arg4, const Arg5, const Arg6
877
( typename detail::bind_tuple_mapper<
878
Result(&)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3,
879
const Arg4, const Arg5, const Arg6
881
(a1, a2, a3, a4, a5, a6)
886
#ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
887
template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
892
action<6, function_action<6> >,
893
typename detail::bind_tuple_mapper<
894
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6
899
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
900
const Arg5& a5, const Arg6& a6) {
903
action<6, function_action<6> >,
904
typename detail::bind_tuple_mapper<
905
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6
908
( typename detail::bind_tuple_mapper<
909
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6
911
(a1, a2, a3, a4, a5, a6)
915
template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
916
class Arg5, class Arg6>
920
action<6, function_action<6, Result> >,
921
typename detail::bind_tuple_mapper<
922
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6
927
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
928
const Arg5& a5, const Arg6& a6) {
931
action<6, function_action<6, Result> >,
932
typename detail::bind_tuple_mapper<
933
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6
936
( typename detail::bind_tuple_mapper<
937
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6
939
(a1, a2, a3, a4, a5, a6)
945
template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
950
action<6, function_action<6> >,
951
typename detail::bind_tuple_mapper<
952
typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
953
const Arg4, const Arg5, const Arg6
958
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
959
const Arg5& a5, const Arg6& a6) {
962
action<6, function_action<6> >,
963
typename detail::bind_tuple_mapper<
964
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
965
const Arg3, const Arg4, const Arg5, const Arg6
968
( typename detail::bind_tuple_mapper<
969
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
970
const Arg3, const Arg4, const Arg5, const Arg6
972
(a1, a2, a3, a4, a5, a6)
976
template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
977
class Arg5, class Arg6>
981
action<6, function_action<6, Result> >,
982
typename detail::bind_tuple_mapper<
983
typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
984
const Arg4, const Arg5, const Arg6
989
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
990
const Arg5& a5, const Arg6& a6) {
993
action<6, function_action<6, Result> >,
994
typename detail::bind_tuple_mapper<
995
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
996
const Arg3, const Arg4, const Arg5, const Arg6
999
( typename detail::bind_tuple_mapper<
1000
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
1001
const Arg3, const Arg4, const Arg5, const Arg6
1003
(a1, a2, a3, a4, a5, a6)
1007
template <class Result, class Par1, class Par2, class Par3, class Par4,
1008
class Par5, class Arg2, class Arg3, class Arg4, class Arg5,
1012
lambda_functor_base<
1013
action<6, function_action<6, Result> >,
1014
typename detail::bind_tuple_mapper<
1015
Result(*)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3,
1016
const Arg4, const Arg5, const Arg6
1021
bind(Result(* const & a1)(Par1, Par2, Par3, Par4, Par5), const Arg2& a2,
1022
const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6) {
1024
lambda_functor_base<
1025
action<6, function_action<6, Result> >,
1026
typename detail::bind_tuple_mapper<
1027
Result(*)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3,
1028
const Arg4, const Arg5, const Arg6
1031
( typename detail::bind_tuple_mapper<
1032
Result(*)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3,
1033
const Arg4, const Arg5, const Arg6
1035
(a1, a2, a3, a4, a5, a6)
1042
// 7-argument bind functions --------------------------
1043
#ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
1044
template <class Result, class Par1, class Par2, class Par3, class Par4,
1045
class Par5, class Par6, class Arg2, class Arg3, class Arg4,
1046
class Arg5, class Arg6, class Arg7>
1049
lambda_functor_base<
1050
action<7, function_action<7, Result> >,
1051
typename detail::bind_tuple_mapper<
1052
Result(&)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2, const Arg3,
1053
const Arg4, const Arg5, const Arg6, const Arg7
1058
bind(Result(&a1)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2& a2,
1059
const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6,
1062
lambda_functor_base<
1063
action<7, function_action<7, Result> >,
1064
typename detail::bind_tuple_mapper<
1065
Result(&)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2, const Arg3,
1066
const Arg4, const Arg5, const Arg6, const Arg7
1069
( typename detail::bind_tuple_mapper<
1070
Result(&)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2, const Arg3,
1071
const Arg4, const Arg5, const Arg6, const Arg7
1073
(a1, a2, a3, a4, a5, a6, a7)
1078
#ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
1079
template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
1080
class Arg6, class Arg7>
1083
lambda_functor_base<
1084
action<7, function_action<7> >,
1085
typename detail::bind_tuple_mapper<
1086
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
1092
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
1093
const Arg5& a5, const Arg6& a6, const Arg7& a7) {
1095
lambda_functor_base<
1096
action<7, function_action<7> >,
1097
typename detail::bind_tuple_mapper<
1098
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
1099
const Arg6, const Arg7
1102
( typename detail::bind_tuple_mapper<
1103
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
1104
const Arg6, const Arg7
1106
(a1, a2, a3, a4, a5, a6, a7)
1110
template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
1111
class Arg5, class Arg6, class Arg7>
1114
lambda_functor_base<
1115
action<7, function_action<7, Result> >,
1116
typename detail::bind_tuple_mapper<
1117
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
1123
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
1124
const Arg5& a5, const Arg6& a6, const Arg7& a7) {
1126
lambda_functor_base<
1127
action<7, function_action<7, Result> >,
1128
typename detail::bind_tuple_mapper<
1129
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
1130
const Arg6, const Arg7
1133
( typename detail::bind_tuple_mapper<
1134
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
1135
const Arg6, const Arg7
1137
(a1, a2, a3, a4, a5, a6, a7)
1143
template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
1144
class Arg6, class Arg7>
1147
lambda_functor_base<
1148
action<7, function_action<7> >,
1149
typename detail::bind_tuple_mapper<
1150
typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
1151
const Arg4, const Arg5, const Arg6, const Arg7
1156
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
1157
const Arg5& a5, const Arg6& a6, const Arg7& a7) {
1159
lambda_functor_base<
1160
action<7, function_action<7> >,
1161
typename detail::bind_tuple_mapper<
1162
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
1163
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7
1166
( typename detail::bind_tuple_mapper<
1167
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
1168
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7
1170
(a1, a2, a3, a4, a5, a6, a7)
1174
template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
1175
class Arg5, class Arg6, class Arg7>
1178
lambda_functor_base<
1179
action<7, function_action<7, Result> >,
1180
typename detail::bind_tuple_mapper<
1181
typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
1182
const Arg4, const Arg5, const Arg6, const Arg7
1187
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
1188
const Arg5& a5, const Arg6& a6, const Arg7& a7) {
1190
lambda_functor_base<
1191
action<7, function_action<7, Result> >,
1192
typename detail::bind_tuple_mapper<
1193
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
1194
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7
1197
( typename detail::bind_tuple_mapper<
1198
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
1199
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7
1201
(a1, a2, a3, a4, a5, a6, a7)
1205
template <class Result, class Par1, class Par2, class Par3, class Par4,
1206
class Par5, class Par6, class Arg2, class Arg3, class Arg4,
1207
class Arg5, class Arg6, class Arg7>
1210
lambda_functor_base<
1211
action<7, function_action<7, Result> >,
1212
typename detail::bind_tuple_mapper<
1213
Result(*)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2, const Arg3,
1214
const Arg4, const Arg5, const Arg6, const Arg7
1219
bind(Result(* const & a1)(Par1, Par2, Par3, Par4, Par5, Par6),
1220
const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5,
1221
const Arg6& a6, const Arg7& a7) {
1223
lambda_functor_base<
1224
action<7, function_action<7, Result> >,
1225
typename detail::bind_tuple_mapper<
1226
Result(*)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2, const Arg3,
1227
const Arg4, const Arg5, const Arg6, const Arg7
1230
( typename detail::bind_tuple_mapper<
1231
Result(*)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2, const Arg3,
1232
const Arg4, const Arg5, const Arg6, const Arg7
1234
(a1, a2, a3, a4, a5, a6, a7)
1241
// 8-argument bind functions --------------------------
1242
#ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
1243
template <class Result, class Par1, class Par2, class Par3, class Par4,
1244
class Par5, class Par6, class Par7, class Arg2, class Arg3,
1245
class Arg4, class Arg5, class Arg6, class Arg7, class Arg8>
1248
lambda_functor_base<
1249
action<8, function_action<8, Result> >,
1250
typename detail::bind_tuple_mapper<
1251
Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2,
1252
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
1257
bind(Result(&a1)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2& a2,
1258
const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6,
1259
const Arg7& a7, const Arg8& a8) {
1261
lambda_functor_base<
1262
action<8, function_action<8, Result> >,
1263
typename detail::bind_tuple_mapper<
1264
Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2,
1265
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
1268
( typename detail::bind_tuple_mapper<
1269
Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2,
1270
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
1272
(a1, a2, a3, a4, a5, a6, a7, a8)
1277
#ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
1278
template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
1279
class Arg6, class Arg7, class Arg8>
1282
lambda_functor_base<
1283
action<8, function_action<8> >,
1284
typename detail::bind_tuple_mapper<
1285
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
1286
const Arg7, const Arg8
1291
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
1292
const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8) {
1294
lambda_functor_base<
1295
action<8, function_action<8> >,
1296
typename detail::bind_tuple_mapper<
1297
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
1298
const Arg6, const Arg7, const Arg8
1301
( typename detail::bind_tuple_mapper<
1302
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
1303
const Arg6, const Arg7, const Arg8
1305
(a1, a2, a3, a4, a5, a6, a7, a8)
1309
template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
1310
class Arg5, class Arg6, class Arg7, class Arg8>
1313
lambda_functor_base<
1314
action<8, function_action<8, Result> >,
1315
typename detail::bind_tuple_mapper<
1316
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
1317
const Arg7, const Arg8
1322
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
1323
const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8) {
1325
lambda_functor_base<
1326
action<8, function_action<8, Result> >,
1327
typename detail::bind_tuple_mapper<
1328
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
1329
const Arg6, const Arg7, const Arg8
1332
( typename detail::bind_tuple_mapper<
1333
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
1334
const Arg6, const Arg7, const Arg8
1336
(a1, a2, a3, a4, a5, a6, a7, a8)
1342
template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
1343
class Arg6, class Arg7, class Arg8>
1346
lambda_functor_base<
1347
action<8, function_action<8> >,
1348
typename detail::bind_tuple_mapper<
1349
typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
1350
const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
1355
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
1356
const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8) {
1358
lambda_functor_base<
1359
action<8, function_action<8> >,
1360
typename detail::bind_tuple_mapper<
1361
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
1362
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
1365
( typename detail::bind_tuple_mapper<
1366
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
1367
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
1369
(a1, a2, a3, a4, a5, a6, a7, a8)
1373
template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
1374
class Arg5, class Arg6, class Arg7, class Arg8>
1377
lambda_functor_base<
1378
action<8, function_action<8, Result> >,
1379
typename detail::bind_tuple_mapper<
1380
typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
1381
const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
1386
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
1387
const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8) {
1389
lambda_functor_base<
1390
action<8, function_action<8, Result> >,
1391
typename detail::bind_tuple_mapper<
1392
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
1393
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
1396
( typename detail::bind_tuple_mapper<
1397
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
1398
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
1400
(a1, a2, a3, a4, a5, a6, a7, a8)
1404
template <class Result, class Par1, class Par2, class Par3, class Par4,
1405
class Par5, class Par6, class Par7, class Arg2, class Arg3,
1406
class Arg4, class Arg5, class Arg6, class Arg7, class Arg8>
1409
lambda_functor_base<
1410
action<8, function_action<8, Result> >,
1411
typename detail::bind_tuple_mapper<
1412
Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2,
1413
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
1418
bind(Result(* const & a1)(Par1, Par2, Par3, Par4, Par5, Par6, Par7),
1419
const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5,
1420
const Arg6& a6, const Arg7& a7, const Arg8& a8) {
1422
lambda_functor_base<
1423
action<8, function_action<8, Result> >,
1424
typename detail::bind_tuple_mapper<
1425
Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2,
1426
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
1429
( typename detail::bind_tuple_mapper<
1430
Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2,
1431
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
1433
(a1, a2, a3, a4, a5, a6, a7, a8)
1440
// 9-argument bind functions --------------------------
1441
#ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
1442
template <class Result, class Par1, class Par2, class Par3, class Par4,
1443
class Par5, class Par6, class Par7, class Par8, class Arg2,
1444
class Arg3, class Arg4, class Arg5, class Arg6, class Arg7,
1445
class Arg8, class Arg9>
1448
lambda_functor_base<
1449
action<9, function_action<9, Result> >,
1450
typename detail::bind_tuple_mapper<
1451
Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8), const Arg2,
1452
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8,
1458
bind(Result(&a1)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8),
1459
const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5,
1460
const Arg6& a6, const Arg7& a7, const Arg8& a8, const Arg9& a9) {
1462
lambda_functor_base<
1463
action<9, function_action<9, Result> >,
1464
typename detail::bind_tuple_mapper<
1465
Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8), const Arg2,
1466
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
1467
const Arg8, const Arg9
1470
( typename detail::bind_tuple_mapper<
1471
Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8), const Arg2,
1472
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
1473
const Arg8, const Arg9
1475
(a1, a2, a3, a4, a5, a6, a7, a8, a9)
1480
#ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
1481
template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
1482
class Arg6, class Arg7, class Arg8, class Arg9>
1485
lambda_functor_base<
1486
action<9, function_action<9> >,
1487
typename detail::bind_tuple_mapper<
1488
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
1489
const Arg7, const Arg8, const Arg9
1494
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
1495
const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8,
1498
lambda_functor_base<
1499
action<9, function_action<9> >,
1500
typename detail::bind_tuple_mapper<
1501
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
1502
const Arg6, const Arg7, const Arg8, const Arg9
1505
( typename detail::bind_tuple_mapper<
1506
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
1507
const Arg6, const Arg7, const Arg8, const Arg9
1509
(a1, a2, a3, a4, a5, a6, a7, a8, a9)
1513
template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
1514
class Arg5, class Arg6, class Arg7, class Arg8, class Arg9>
1517
lambda_functor_base<
1518
action<9, function_action<9, Result> >,
1519
typename detail::bind_tuple_mapper<
1520
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
1521
const Arg7, const Arg8, const Arg9
1526
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
1527
const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8,
1530
lambda_functor_base<
1531
action<9, function_action<9, Result> >,
1532
typename detail::bind_tuple_mapper<
1533
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
1534
const Arg6, const Arg7, const Arg8, const Arg9
1537
( typename detail::bind_tuple_mapper<
1538
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
1539
const Arg6, const Arg7, const Arg8, const Arg9
1541
(a1, a2, a3, a4, a5, a6, a7, a8, a9)
1547
template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
1548
class Arg6, class Arg7, class Arg8, class Arg9>
1551
lambda_functor_base<
1552
action<9, function_action<9> >,
1553
typename detail::bind_tuple_mapper<
1554
typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
1555
const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9
1560
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
1561
const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8,
1564
lambda_functor_base<
1565
action<9, function_action<9> >,
1566
typename detail::bind_tuple_mapper<
1567
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
1568
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
1569
const Arg8, const Arg9
1572
( typename detail::bind_tuple_mapper<
1573
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
1574
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
1575
const Arg8, const Arg9
1577
(a1, a2, a3, a4, a5, a6, a7, a8, a9)
1581
template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
1582
class Arg5, class Arg6, class Arg7, class Arg8, class Arg9>
1585
lambda_functor_base<
1586
action<9, function_action<9, Result> >,
1587
typename detail::bind_tuple_mapper<
1588
typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
1589
const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9
1594
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
1595
const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8,
1598
lambda_functor_base<
1599
action<9, function_action<9, Result> >,
1600
typename detail::bind_tuple_mapper<
1601
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
1602
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
1603
const Arg8, const Arg9
1606
( typename detail::bind_tuple_mapper<
1607
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
1608
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
1609
const Arg8, const Arg9
1611
(a1, a2, a3, a4, a5, a6, a7, a8, a9)
1615
template <class Result, class Par1, class Par2, class Par3, class Par4,
1616
class Par5, class Par6, class Par7, class Par8, class Arg2,
1617
class Arg3, class Arg4, class Arg5, class Arg6, class Arg7,
1618
class Arg8, class Arg9>
1621
lambda_functor_base<
1622
action<9, function_action<9, Result> >,
1623
typename detail::bind_tuple_mapper<
1624
Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8), const Arg2,
1625
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8,
1631
bind(Result(* const & a1)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8),
1632
const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5,
1633
const Arg6& a6, const Arg7& a7, const Arg8& a8, const Arg9& a9) {
1635
lambda_functor_base<
1636
action<9, function_action<9, Result> >,
1637
typename detail::bind_tuple_mapper<
1638
Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8), const Arg2,
1639
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
1640
const Arg8, const Arg9
1643
( typename detail::bind_tuple_mapper<
1644
Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8), const Arg2,
1645
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
1646
const Arg8, const Arg9
1648
(a1, a2, a3, a4, a5, a6, a7, a8, a9)
1655
// 10-argument bind functions --------------------------
1656
#ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
1657
template <class Result, class Par1, class Par2, class Par3, class Par4,
1658
class Par5, class Par6, class Par7, class Par8, class Par9,
1659
class Arg2, class Arg3, class Arg4, class Arg5, class Arg6,
1660
class Arg7, class Arg8, class Arg9, class Arg10>
1663
lambda_functor_base<
1664
action<10, function_action<10, Result> >,
1665
typename detail::bind_tuple_mapper<
1666
Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9),
1667
const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
1668
const Arg8, const Arg9, const Arg10
1673
bind(Result(&a1)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9),
1674
const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5,
1675
const Arg6& a6, const Arg7& a7, const Arg8& a8, const Arg9& a9,
1678
lambda_functor_base<
1679
action<10, function_action<10, Result> >,
1680
typename detail::bind_tuple_mapper<
1681
Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9),
1682
const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
1683
const Arg7, const Arg8, const Arg9, const Arg10
1686
( typename detail::bind_tuple_mapper<
1687
Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9),
1688
const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
1689
const Arg7, const Arg8, const Arg9, const Arg10
1691
(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
1696
#ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
1697
template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
1698
class Arg6, class Arg7, class Arg8, class Arg9, class Arg10>
1701
lambda_functor_base<
1702
action<10, function_action<10> >,
1703
typename detail::bind_tuple_mapper<
1704
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
1705
const Arg7, const Arg8, const Arg9, const Arg10
1710
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
1711
const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8,
1712
const Arg9& a9, const Arg10& a10) {
1714
lambda_functor_base<
1715
action<10, function_action<10> >,
1716
typename detail::bind_tuple_mapper<
1717
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
1718
const Arg6, const Arg7, const Arg8, const Arg9, const Arg10
1721
( typename detail::bind_tuple_mapper<
1722
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
1723
const Arg6, const Arg7, const Arg8, const Arg9, const Arg10
1725
(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
1729
template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
1730
class Arg5, class Arg6, class Arg7, class Arg8, class Arg9,
1734
lambda_functor_base<
1735
action<10, function_action<10, Result> >,
1736
typename detail::bind_tuple_mapper<
1737
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
1738
const Arg7, const Arg8, const Arg9, const Arg10
1743
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
1744
const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8,
1745
const Arg9& a9, const Arg10& a10) {
1747
lambda_functor_base<
1748
action<10, function_action<10, Result> >,
1749
typename detail::bind_tuple_mapper<
1750
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
1751
const Arg6, const Arg7, const Arg8, const Arg9, const Arg10
1754
( typename detail::bind_tuple_mapper<
1755
const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
1756
const Arg6, const Arg7, const Arg8, const Arg9, const Arg10
1758
(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
1764
template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
1765
class Arg6, class Arg7, class Arg8, class Arg9, class Arg10>
1768
lambda_functor_base<
1769
action<10, function_action<10> >,
1770
typename detail::bind_tuple_mapper<
1771
typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
1772
const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9,
1778
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
1779
const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8,
1780
const Arg9& a9, const Arg10& a10) {
1782
lambda_functor_base<
1783
action<10, function_action<10> >,
1784
typename detail::bind_tuple_mapper<
1785
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
1786
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
1787
const Arg8, const Arg9, const Arg10
1790
( typename detail::bind_tuple_mapper<
1791
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
1792
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
1793
const Arg8, const Arg9, const Arg10
1795
(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
1799
template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
1800
class Arg5, class Arg6, class Arg7, class Arg8, class Arg9,
1804
lambda_functor_base<
1805
action<10, function_action<10, Result> >,
1806
typename detail::bind_tuple_mapper<
1807
typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
1808
const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9,
1814
bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
1815
const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8,
1816
const Arg9& a9, const Arg10& a10) {
1818
lambda_functor_base<
1819
action<10, function_action<10, Result> >,
1820
typename detail::bind_tuple_mapper<
1821
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
1822
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
1823
const Arg8, const Arg9, const Arg10
1826
( typename detail::bind_tuple_mapper<
1827
typename detail::constify_non_funcs<Arg1>::type, const Arg2,
1828
const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
1829
const Arg8, const Arg9, const Arg10
1831
(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
1835
template <class Result, class Par1, class Par2, class Par3, class Par4,
1836
class Par5, class Par6, class Par7, class Par8, class Par9,
1837
class Arg2, class Arg3, class Arg4, class Arg5, class Arg6,
1838
class Arg7, class Arg8, class Arg9, class Arg10>
1841
lambda_functor_base<
1842
action<10, function_action<10, Result> >,
1843
typename detail::bind_tuple_mapper<
1844
Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9),
1845
const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
1846
const Arg8, const Arg9, const Arg10
1851
bind(Result(* const & a1)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8,
1852
Par9), const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5,
1853
const Arg6& a6, const Arg7& a7, const Arg8& a8, const Arg9& a9,
1856
lambda_functor_base<
1857
action<10, function_action<10, Result> >,
1858
typename detail::bind_tuple_mapper<
1859
Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9),
1860
const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
1861
const Arg7, const Arg8, const Arg9, const Arg10
1864
( typename detail::bind_tuple_mapper<
1865
Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9),
1866
const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
1867
const Arg7, const Arg8, const Arg9, const Arg10
1869
(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
1876
} // namespace lambda
1877
} // namespace boost