File indexing completed on 2025-01-18 09:39:06
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #ifndef BOOST_LAMBDA_BIND_FUNCTIONS_HPP
0014 #define BOOST_LAMBDA_BIND_FUNCTIONS_HPP
0015
0016
0017 namespace boost {
0018 namespace lambda {
0019
0020 #ifdef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
0021
0022
0023
0024
0025
0026 namespace detail {
0027
0028 template<class T> struct constify_non_funcs {
0029 typedef typename
0030 detail::IF_type<boost::is_function<T>::value,
0031 boost::add_reference<T>,
0032 boost::add_const<T>
0033 >::type type;
0034 };
0035
0036 }
0037 #endif
0038
0039 #ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
0040 template <class Result>
0041 inline const
0042 lambda_functor<
0043 lambda_functor_base<
0044 action<1, function_action<1, Result> >,
0045 typename detail::bind_tuple_mapper<Result(&)()>::type
0046 >
0047 >
0048
0049 bind(Result(& a1)()) {
0050 return
0051 lambda_functor_base<
0052 action<1, function_action<1, Result> >,
0053 typename detail::bind_tuple_mapper<Result(&)()>::type
0054 >
0055 ( typename detail::bind_tuple_mapper<Result(&)()>::type
0056 (a1)
0057 );
0058 }
0059 #endif
0060
0061 #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
0062 template <class Arg1>
0063 inline const
0064 lambda_functor<
0065 lambda_functor_base<
0066 action<1, function_action<1> >,
0067 typename detail::bind_tuple_mapper<const Arg1>::type
0068 >
0069 >
0070
0071 bind(const Arg1& a1) {
0072 return
0073 lambda_functor_base<
0074 action<1, function_action<1> >,
0075 typename detail::bind_tuple_mapper<const Arg1>::type
0076 >
0077 ( typename detail::bind_tuple_mapper<const Arg1>::type
0078 (a1)
0079 );
0080 }
0081
0082 template <class Result, class Arg1>
0083 inline const
0084 lambda_functor<
0085 lambda_functor_base<
0086 action<1, function_action<1, Result> >,
0087 typename detail::bind_tuple_mapper<const Arg1>::type
0088 >
0089 >
0090
0091 bind(const Arg1& a1) {
0092 return
0093 lambda_functor_base<
0094 action<1, function_action<1, Result> >,
0095 typename detail::bind_tuple_mapper<const Arg1>::type
0096 >
0097 ( typename detail::bind_tuple_mapper<const Arg1>::type
0098 (a1)
0099 );
0100 }
0101
0102
0103 #else
0104 template <class Arg1>
0105 inline const
0106 lambda_functor<
0107 lambda_functor_base<
0108 action<1, function_action<1> >,
0109 typename detail::bind_tuple_mapper<
0110 typename detail::constify_non_funcs<Arg1>::type
0111 >::type
0112 >
0113 >
0114
0115 bind(const Arg1& a1) {
0116 return
0117 lambda_functor_base<
0118 action<1, function_action<1> >,
0119 typename detail::bind_tuple_mapper<
0120 typename detail::constify_non_funcs<Arg1>::type
0121 >::type
0122 >
0123 ( typename detail::bind_tuple_mapper<
0124 typename detail::constify_non_funcs<Arg1>::type
0125 >::type
0126 (a1)
0127 );
0128 }
0129
0130 template <class Result, class Arg1>
0131 inline const
0132 lambda_functor<
0133 lambda_functor_base<
0134 action<1, function_action<1, Result> >,
0135 typename detail::bind_tuple_mapper<
0136 typename detail::constify_non_funcs<Arg1>::type
0137 >::type
0138 >
0139 >
0140
0141 bind(const Arg1& a1) {
0142 return
0143 lambda_functor_base<
0144 action<1, function_action<1, Result> >,
0145 typename detail::bind_tuple_mapper<
0146 typename detail::constify_non_funcs<Arg1>::type
0147 >::type
0148 >
0149 ( typename detail::bind_tuple_mapper<
0150 typename detail::constify_non_funcs<Arg1>::type
0151 >::type
0152 (a1)
0153 );
0154 }
0155
0156 template <class Result>
0157 inline const
0158 lambda_functor<
0159 lambda_functor_base<
0160 action<1, function_action<1, Result> >,
0161 typename detail::bind_tuple_mapper<Result(*)()>::type
0162 >
0163 >
0164
0165 bind(Result(* const & a1)()) {
0166 return
0167 lambda_functor_base<
0168 action<1, function_action<1, Result> >,
0169 typename detail::bind_tuple_mapper<Result(*)()>::type
0170 >
0171 ( typename detail::bind_tuple_mapper<Result(*)()>::type
0172 (a1)
0173 );
0174 }
0175
0176
0177 #endif
0178
0179
0180 #ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
0181 template <class Result, class Par1, class Arg2>
0182 inline const
0183 lambda_functor<
0184 lambda_functor_base<
0185 action<2, function_action<2, Result> >,
0186 typename detail::bind_tuple_mapper<Result(&)(Par1), const Arg2>::type
0187 >
0188 >
0189
0190 bind(Result(&a1)(Par1), const Arg2& a2) {
0191 return
0192 lambda_functor_base<
0193 action<2, function_action<2, Result> >,
0194 typename detail::bind_tuple_mapper<Result(&)(Par1), const Arg2>::type
0195 >
0196 ( typename detail::bind_tuple_mapper<Result(&)(Par1), const Arg2>::type
0197 (a1, a2)
0198 );
0199 }
0200 #endif
0201
0202 #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
0203 template <class Arg1, class Arg2>
0204 inline const
0205 lambda_functor<
0206 lambda_functor_base<
0207 action<2, function_action<2> >,
0208 typename detail::bind_tuple_mapper<const Arg1, const Arg2>::type
0209 >
0210 >
0211
0212 bind(const Arg1& a1, const Arg2& a2) {
0213 return
0214 lambda_functor_base<
0215 action<2, function_action<2> >,
0216 typename detail::bind_tuple_mapper<const Arg1, const Arg2>::type
0217 >
0218 ( typename detail::bind_tuple_mapper<const Arg1, const Arg2>::type
0219 (a1, a2)
0220 );
0221 }
0222
0223 template <class Result, class Arg1, class Arg2>
0224 inline const
0225 lambda_functor<
0226 lambda_functor_base<
0227 action<2, function_action<2, Result> >,
0228 typename detail::bind_tuple_mapper<const Arg1, const Arg2>::type
0229 >
0230 >
0231
0232 bind(const Arg1& a1, const Arg2& a2) {
0233 return
0234 lambda_functor_base<
0235 action<2, function_action<2, Result> >,
0236 typename detail::bind_tuple_mapper<const Arg1, const Arg2>::type
0237 >
0238 ( typename detail::bind_tuple_mapper<const Arg1, const Arg2>::type
0239 (a1, a2)
0240 );
0241 }
0242
0243
0244 #else
0245 template <class Arg1, class Arg2>
0246 inline const
0247 lambda_functor<
0248 lambda_functor_base<
0249 action<2, function_action<2> >,
0250 typename detail::bind_tuple_mapper<
0251 typename detail::constify_non_funcs<Arg1>::type, const Arg2
0252 >::type
0253 >
0254 >
0255
0256 bind(const Arg1& a1, const Arg2& a2) {
0257 return
0258 lambda_functor_base<
0259 action<2, function_action<2> >,
0260 typename detail::bind_tuple_mapper<
0261 typename detail::constify_non_funcs<Arg1>::type, const Arg2
0262 >::type
0263 >
0264 ( typename detail::bind_tuple_mapper<
0265 typename detail::constify_non_funcs<Arg1>::type, const Arg2
0266 >::type
0267 (a1, a2)
0268 );
0269 }
0270
0271 template <class Result, class Arg1, class Arg2>
0272 inline const
0273 lambda_functor<
0274 lambda_functor_base<
0275 action<2, function_action<2, Result> >,
0276 typename detail::bind_tuple_mapper<
0277 typename detail::constify_non_funcs<Arg1>::type, const Arg2
0278 >::type
0279 >
0280 >
0281
0282 bind(const Arg1& a1, const Arg2& a2) {
0283 return
0284 lambda_functor_base<
0285 action<2, function_action<2, Result> >,
0286 typename detail::bind_tuple_mapper<
0287 typename detail::constify_non_funcs<Arg1>::type, const Arg2
0288 >::type
0289 >
0290 ( typename detail::bind_tuple_mapper<
0291 typename detail::constify_non_funcs<Arg1>::type, const Arg2
0292 >::type
0293 (a1, a2)
0294 );
0295 }
0296
0297 template <class Result, class Par1, class Arg2>
0298 inline const
0299 lambda_functor<
0300 lambda_functor_base<
0301 action<2, function_action<2, Result> >,
0302 typename detail::bind_tuple_mapper<Result(*)(Par1), const Arg2>::type
0303 >
0304 >
0305
0306 bind(Result(* const & a1)(Par1), const Arg2& a2) {
0307 return
0308 lambda_functor_base<
0309 action<2, function_action<2, Result> >,
0310 typename detail::bind_tuple_mapper<Result(*)(Par1), const Arg2>::type
0311 >
0312 ( typename detail::bind_tuple_mapper<Result(*)(Par1), const Arg2>::type
0313 (a1, a2)
0314 );
0315 }
0316
0317
0318 #endif
0319
0320
0321 #ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
0322 template <class Result, class Par1, class Par2, class Arg2, class Arg3>
0323 inline const
0324 lambda_functor<
0325 lambda_functor_base<
0326 action<3, function_action<3, Result> >,
0327 typename detail::bind_tuple_mapper<
0328 Result(&)(Par1, Par2), const Arg2, const Arg3
0329 >::type
0330 >
0331 >
0332
0333 bind(Result(&a1)(Par1, Par2), const Arg2& a2, const Arg3& a3) {
0334 return
0335 lambda_functor_base<
0336 action<3, function_action<3, Result> >,
0337 typename detail::bind_tuple_mapper<
0338 Result(&)(Par1, Par2), const Arg2, const Arg3
0339 >::type
0340 >
0341 ( typename detail::bind_tuple_mapper<
0342 Result(&)(Par1, Par2), const Arg2, const Arg3
0343 >::type
0344 (a1, a2, a3)
0345 );
0346 }
0347 #endif
0348
0349 #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
0350 template <class Arg1, class Arg2, class Arg3>
0351 inline const
0352 lambda_functor<
0353 lambda_functor_base<
0354 action<3, function_action<3> >,
0355 typename detail::bind_tuple_mapper<
0356 const Arg1, const Arg2, const Arg3
0357 >::type
0358 >
0359 >
0360
0361 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3) {
0362 return
0363 lambda_functor_base<
0364 action<3, function_action<3> >,
0365 typename detail::bind_tuple_mapper<
0366 const Arg1, const Arg2, const Arg3
0367 >::type
0368 >
0369 ( typename detail::bind_tuple_mapper<
0370 const Arg1, const Arg2, const Arg3
0371 >::type
0372 (a1, a2, a3)
0373 );
0374 }
0375
0376 template <class Result, class Arg1, class Arg2, class Arg3>
0377 inline const
0378 lambda_functor<
0379 lambda_functor_base<
0380 action<3, function_action<3, Result> >,
0381 typename detail::bind_tuple_mapper<
0382 const Arg1, const Arg2, const Arg3
0383 >::type
0384 >
0385 >
0386
0387 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3) {
0388 return
0389 lambda_functor_base<
0390 action<3, function_action<3, Result> >,
0391 typename detail::bind_tuple_mapper<
0392 const Arg1, const Arg2, const Arg3
0393 >::type
0394 >
0395 ( typename detail::bind_tuple_mapper<
0396 const Arg1, const Arg2, const Arg3
0397 >::type
0398 (a1, a2, a3)
0399 );
0400 }
0401
0402
0403 #else
0404 template <class Arg1, class Arg2, class Arg3>
0405 inline const
0406 lambda_functor<
0407 lambda_functor_base<
0408 action<3, function_action<3> >,
0409 typename detail::bind_tuple_mapper<
0410 typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3
0411 >::type
0412 >
0413 >
0414
0415 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3) {
0416 return
0417 lambda_functor_base<
0418 action<3, function_action<3> >,
0419 typename detail::bind_tuple_mapper<
0420 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
0421 const Arg3
0422 >::type
0423 >
0424 ( typename detail::bind_tuple_mapper<
0425 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
0426 const Arg3
0427 >::type
0428 (a1, a2, a3)
0429 );
0430 }
0431
0432 template <class Result, class Arg1, class Arg2, class Arg3>
0433 inline const
0434 lambda_functor<
0435 lambda_functor_base<
0436 action<3, function_action<3, Result> >,
0437 typename detail::bind_tuple_mapper<
0438 typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3
0439 >::type
0440 >
0441 >
0442
0443 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3) {
0444 return
0445 lambda_functor_base<
0446 action<3, function_action<3, Result> >,
0447 typename detail::bind_tuple_mapper<
0448 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
0449 const Arg3
0450 >::type
0451 >
0452 ( typename detail::bind_tuple_mapper<
0453 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
0454 const Arg3
0455 >::type
0456 (a1, a2, a3)
0457 );
0458 }
0459
0460 template <class Result, class Par1, class Par2, class Arg2, class Arg3>
0461 inline const
0462 lambda_functor<
0463 lambda_functor_base<
0464 action<3, function_action<3, Result> >,
0465 typename detail::bind_tuple_mapper<
0466 Result(*)(Par1, Par2), const Arg2, const Arg3
0467 >::type
0468 >
0469 >
0470
0471 bind(Result(* const & a1)(Par1, Par2), const Arg2& a2, const Arg3& a3) {
0472 return
0473 lambda_functor_base<
0474 action<3, function_action<3, Result> >,
0475 typename detail::bind_tuple_mapper<
0476 Result(*)(Par1, Par2), const Arg2, const Arg3
0477 >::type
0478 >
0479 ( typename detail::bind_tuple_mapper<
0480 Result(*)(Par1, Par2), const Arg2, const Arg3
0481 >::type
0482 (a1, a2, a3)
0483 );
0484 }
0485
0486
0487 #endif
0488
0489
0490 #ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
0491 template <class Result, class Par1, class Par2, class Par3, class Arg2,
0492 class Arg3, class Arg4>
0493 inline const
0494 lambda_functor<
0495 lambda_functor_base<
0496 action<4, function_action<4, Result> >,
0497 typename detail::bind_tuple_mapper<
0498 Result(&)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4
0499 >::type
0500 >
0501 >
0502
0503 bind(Result(&a1)(Par1, Par2, Par3), const Arg2& a2, const Arg3& a3,
0504 const Arg4& a4) {
0505 return
0506 lambda_functor_base<
0507 action<4, function_action<4, Result> >,
0508 typename detail::bind_tuple_mapper<
0509 Result(&)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4
0510 >::type
0511 >
0512 ( typename detail::bind_tuple_mapper<
0513 Result(&)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4
0514 >::type
0515 (a1, a2, a3, a4)
0516 );
0517 }
0518 #endif
0519
0520 #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
0521 template <class Arg1, class Arg2, class Arg3, class Arg4>
0522 inline const
0523 lambda_functor<
0524 lambda_functor_base<
0525 action<4, function_action<4> >,
0526 typename detail::bind_tuple_mapper<
0527 const Arg1, const Arg2, const Arg3, const Arg4
0528 >::type
0529 >
0530 >
0531
0532 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4) {
0533 return
0534 lambda_functor_base<
0535 action<4, function_action<4> >,
0536 typename detail::bind_tuple_mapper<
0537 const Arg1, const Arg2, const Arg3, const Arg4
0538 >::type
0539 >
0540 ( typename detail::bind_tuple_mapper<
0541 const Arg1, const Arg2, const Arg3, const Arg4
0542 >::type
0543 (a1, a2, a3, a4)
0544 );
0545 }
0546
0547 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4>
0548 inline const
0549 lambda_functor<
0550 lambda_functor_base<
0551 action<4, function_action<4, Result> >,
0552 typename detail::bind_tuple_mapper<
0553 const Arg1, const Arg2, const Arg3, const Arg4
0554 >::type
0555 >
0556 >
0557
0558 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4) {
0559 return
0560 lambda_functor_base<
0561 action<4, function_action<4, Result> >,
0562 typename detail::bind_tuple_mapper<
0563 const Arg1, const Arg2, const Arg3, const Arg4
0564 >::type
0565 >
0566 ( typename detail::bind_tuple_mapper<
0567 const Arg1, const Arg2, const Arg3, const Arg4
0568 >::type
0569 (a1, a2, a3, a4)
0570 );
0571 }
0572
0573
0574 #else
0575 template <class Arg1, class Arg2, class Arg3, class Arg4>
0576 inline const
0577 lambda_functor<
0578 lambda_functor_base<
0579 action<4, function_action<4> >,
0580 typename detail::bind_tuple_mapper<
0581 typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
0582 const Arg4
0583 >::type
0584 >
0585 >
0586
0587 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4) {
0588 return
0589 lambda_functor_base<
0590 action<4, function_action<4> >,
0591 typename detail::bind_tuple_mapper<
0592 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
0593 const Arg3, const Arg4
0594 >::type
0595 >
0596 ( typename detail::bind_tuple_mapper<
0597 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
0598 const Arg3, const Arg4
0599 >::type
0600 (a1, a2, a3, a4)
0601 );
0602 }
0603
0604 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4>
0605 inline const
0606 lambda_functor<
0607 lambda_functor_base<
0608 action<4, function_action<4, Result> >,
0609 typename detail::bind_tuple_mapper<
0610 typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
0611 const Arg4
0612 >::type
0613 >
0614 >
0615
0616 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4) {
0617 return
0618 lambda_functor_base<
0619 action<4, function_action<4, Result> >,
0620 typename detail::bind_tuple_mapper<
0621 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
0622 const Arg3, const Arg4
0623 >::type
0624 >
0625 ( typename detail::bind_tuple_mapper<
0626 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
0627 const Arg3, const Arg4
0628 >::type
0629 (a1, a2, a3, a4)
0630 );
0631 }
0632
0633 template <class Result, class Par1, class Par2, class Par3, class Arg2,
0634 class Arg3, class Arg4>
0635 inline const
0636 lambda_functor<
0637 lambda_functor_base<
0638 action<4, function_action<4, Result> >,
0639 typename detail::bind_tuple_mapper<
0640 Result(*)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4
0641 >::type
0642 >
0643 >
0644
0645 bind(Result(* const & a1)(Par1, Par2, Par3), const Arg2& a2,
0646 const Arg3& a3, const Arg4& a4) {
0647 return
0648 lambda_functor_base<
0649 action<4, function_action<4, Result> >,
0650 typename detail::bind_tuple_mapper<
0651 Result(*)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4
0652 >::type
0653 >
0654 ( typename detail::bind_tuple_mapper<
0655 Result(*)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4
0656 >::type
0657 (a1, a2, a3, a4)
0658 );
0659 }
0660
0661
0662 #endif
0663
0664
0665 #ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
0666 template <class Result, class Par1, class Par2, class Par3, class Par4,
0667 class Arg2, class Arg3, class Arg4, class Arg5>
0668 inline const
0669 lambda_functor<
0670 lambda_functor_base<
0671 action<5, function_action<5, Result> >,
0672 typename detail::bind_tuple_mapper<
0673 Result(&)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4,
0674 const Arg5
0675 >::type
0676 >
0677 >
0678
0679 bind(Result(&a1)(Par1, Par2, Par3, Par4), const Arg2& a2, const Arg3& a3,
0680 const Arg4& a4, const Arg5& a5) {
0681 return
0682 lambda_functor_base<
0683 action<5, function_action<5, Result> >,
0684 typename detail::bind_tuple_mapper<
0685 Result(&)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4,
0686 const Arg5
0687 >::type
0688 >
0689 ( typename detail::bind_tuple_mapper<
0690 Result(&)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4,
0691 const Arg5
0692 >::type
0693 (a1, a2, a3, a4, a5)
0694 );
0695 }
0696 #endif
0697
0698 #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
0699 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5>
0700 inline const
0701 lambda_functor<
0702 lambda_functor_base<
0703 action<5, function_action<5> >,
0704 typename detail::bind_tuple_mapper<
0705 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5
0706 >::type
0707 >
0708 >
0709
0710 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
0711 const Arg5& a5) {
0712 return
0713 lambda_functor_base<
0714 action<5, function_action<5> >,
0715 typename detail::bind_tuple_mapper<
0716 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5
0717 >::type
0718 >
0719 ( typename detail::bind_tuple_mapper<
0720 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5
0721 >::type
0722 (a1, a2, a3, a4, a5)
0723 );
0724 }
0725
0726 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
0727 class Arg5>
0728 inline const
0729 lambda_functor<
0730 lambda_functor_base<
0731 action<5, function_action<5, Result> >,
0732 typename detail::bind_tuple_mapper<
0733 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5
0734 >::type
0735 >
0736 >
0737
0738 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
0739 const Arg5& a5) {
0740 return
0741 lambda_functor_base<
0742 action<5, function_action<5, Result> >,
0743 typename detail::bind_tuple_mapper<
0744 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5
0745 >::type
0746 >
0747 ( typename detail::bind_tuple_mapper<
0748 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5
0749 >::type
0750 (a1, a2, a3, a4, a5)
0751 );
0752 }
0753
0754
0755 #else
0756 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5>
0757 inline const
0758 lambda_functor<
0759 lambda_functor_base<
0760 action<5, function_action<5> >,
0761 typename detail::bind_tuple_mapper<
0762 typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
0763 const Arg4, const Arg5
0764 >::type
0765 >
0766 >
0767
0768 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
0769 const Arg5& a5) {
0770 return
0771 lambda_functor_base<
0772 action<5, function_action<5> >,
0773 typename detail::bind_tuple_mapper<
0774 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
0775 const Arg3, const Arg4, const Arg5
0776 >::type
0777 >
0778 ( typename detail::bind_tuple_mapper<
0779 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
0780 const Arg3, const Arg4, const Arg5
0781 >::type
0782 (a1, a2, a3, a4, a5)
0783 );
0784 }
0785
0786 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
0787 class Arg5>
0788 inline const
0789 lambda_functor<
0790 lambda_functor_base<
0791 action<5, function_action<5, Result> >,
0792 typename detail::bind_tuple_mapper<
0793 typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
0794 const Arg4, const Arg5
0795 >::type
0796 >
0797 >
0798
0799 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
0800 const Arg5& a5) {
0801 return
0802 lambda_functor_base<
0803 action<5, function_action<5, Result> >,
0804 typename detail::bind_tuple_mapper<
0805 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
0806 const Arg3, const Arg4, const Arg5
0807 >::type
0808 >
0809 ( typename detail::bind_tuple_mapper<
0810 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
0811 const Arg3, const Arg4, const Arg5
0812 >::type
0813 (a1, a2, a3, a4, a5)
0814 );
0815 }
0816
0817 template <class Result, class Par1, class Par2, class Par3, class Par4,
0818 class Arg2, class Arg3, class Arg4, class Arg5>
0819 inline const
0820 lambda_functor<
0821 lambda_functor_base<
0822 action<5, function_action<5, Result> >,
0823 typename detail::bind_tuple_mapper<
0824 Result(*)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4,
0825 const Arg5
0826 >::type
0827 >
0828 >
0829
0830 bind(Result(* const & a1)(Par1, Par2, Par3, Par4), const Arg2& a2,
0831 const Arg3& a3, const Arg4& a4, const Arg5& a5) {
0832 return
0833 lambda_functor_base<
0834 action<5, function_action<5, Result> >,
0835 typename detail::bind_tuple_mapper<
0836 Result(*)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4,
0837 const Arg5
0838 >::type
0839 >
0840 ( typename detail::bind_tuple_mapper<
0841 Result(*)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4,
0842 const Arg5
0843 >::type
0844 (a1, a2, a3, a4, a5)
0845 );
0846 }
0847
0848
0849 #endif
0850
0851
0852 #ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
0853 template <class Result, class Par1, class Par2, class Par3, class Par4,
0854 class Par5, class Arg2, class Arg3, class Arg4, class Arg5,
0855 class Arg6>
0856 inline const
0857 lambda_functor<
0858 lambda_functor_base<
0859 action<6, function_action<6, Result> >,
0860 typename detail::bind_tuple_mapper<
0861 Result(&)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3,
0862 const Arg4, const Arg5, const Arg6
0863 >::type
0864 >
0865 >
0866
0867 bind(Result(&a1)(Par1, Par2, Par3, Par4, Par5), const Arg2& a2,
0868 const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6) {
0869 return
0870 lambda_functor_base<
0871 action<6, function_action<6, Result> >,
0872 typename detail::bind_tuple_mapper<
0873 Result(&)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3,
0874 const Arg4, const Arg5, const Arg6
0875 >::type
0876 >
0877 ( typename detail::bind_tuple_mapper<
0878 Result(&)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3,
0879 const Arg4, const Arg5, const Arg6
0880 >::type
0881 (a1, a2, a3, a4, a5, a6)
0882 );
0883 }
0884 #endif
0885
0886 #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
0887 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
0888 class Arg6>
0889 inline const
0890 lambda_functor<
0891 lambda_functor_base<
0892 action<6, function_action<6> >,
0893 typename detail::bind_tuple_mapper<
0894 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6
0895 >::type
0896 >
0897 >
0898
0899 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
0900 const Arg5& a5, const Arg6& a6) {
0901 return
0902 lambda_functor_base<
0903 action<6, function_action<6> >,
0904 typename detail::bind_tuple_mapper<
0905 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6
0906 >::type
0907 >
0908 ( typename detail::bind_tuple_mapper<
0909 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6
0910 >::type
0911 (a1, a2, a3, a4, a5, a6)
0912 );
0913 }
0914
0915 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
0916 class Arg5, class Arg6>
0917 inline const
0918 lambda_functor<
0919 lambda_functor_base<
0920 action<6, function_action<6, Result> >,
0921 typename detail::bind_tuple_mapper<
0922 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6
0923 >::type
0924 >
0925 >
0926
0927 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
0928 const Arg5& a5, const Arg6& a6) {
0929 return
0930 lambda_functor_base<
0931 action<6, function_action<6, Result> >,
0932 typename detail::bind_tuple_mapper<
0933 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6
0934 >::type
0935 >
0936 ( typename detail::bind_tuple_mapper<
0937 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6
0938 >::type
0939 (a1, a2, a3, a4, a5, a6)
0940 );
0941 }
0942
0943
0944 #else
0945 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
0946 class Arg6>
0947 inline const
0948 lambda_functor<
0949 lambda_functor_base<
0950 action<6, function_action<6> >,
0951 typename detail::bind_tuple_mapper<
0952 typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
0953 const Arg4, const Arg5, const Arg6
0954 >::type
0955 >
0956 >
0957
0958 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
0959 const Arg5& a5, const Arg6& a6) {
0960 return
0961 lambda_functor_base<
0962 action<6, function_action<6> >,
0963 typename detail::bind_tuple_mapper<
0964 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
0965 const Arg3, const Arg4, const Arg5, const Arg6
0966 >::type
0967 >
0968 ( typename detail::bind_tuple_mapper<
0969 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
0970 const Arg3, const Arg4, const Arg5, const Arg6
0971 >::type
0972 (a1, a2, a3, a4, a5, a6)
0973 );
0974 }
0975
0976 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
0977 class Arg5, class Arg6>
0978 inline const
0979 lambda_functor<
0980 lambda_functor_base<
0981 action<6, function_action<6, Result> >,
0982 typename detail::bind_tuple_mapper<
0983 typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
0984 const Arg4, const Arg5, const Arg6
0985 >::type
0986 >
0987 >
0988
0989 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
0990 const Arg5& a5, const Arg6& a6) {
0991 return
0992 lambda_functor_base<
0993 action<6, function_action<6, Result> >,
0994 typename detail::bind_tuple_mapper<
0995 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
0996 const Arg3, const Arg4, const Arg5, const Arg6
0997 >::type
0998 >
0999 ( typename detail::bind_tuple_mapper<
1000 typename detail::constify_non_funcs<Arg1>::type, const Arg2,
1001 const Arg3, const Arg4, const Arg5, const Arg6
1002 >::type
1003 (a1, a2, a3, a4, a5, a6)
1004 );
1005 }
1006
1007 template <class Result, class Par1, class Par2, class Par3, class Par4,
1008 class Par5, class Arg2, class Arg3, class Arg4, class Arg5,
1009 class Arg6>
1010 inline const
1011 lambda_functor<
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
1017 >::type
1018 >
1019 >
1020
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) {
1023 return
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
1029 >::type
1030 >
1031 ( typename detail::bind_tuple_mapper<
1032 Result(*)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3,
1033 const Arg4, const Arg5, const Arg6
1034 >::type
1035 (a1, a2, a3, a4, a5, a6)
1036 );
1037 }
1038
1039
1040 #endif
1041
1042
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>
1047 inline const
1048 lambda_functor<
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
1054 >::type
1055 >
1056 >
1057
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,
1060 const Arg7& a7) {
1061 return
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
1067 >::type
1068 >
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
1072 >::type
1073 (a1, a2, a3, a4, a5, a6, a7)
1074 );
1075 }
1076 #endif
1077
1078 #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
1079 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
1080 class Arg6, class Arg7>
1081 inline const
1082 lambda_functor<
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,
1087 const Arg7
1088 >::type
1089 >
1090 >
1091
1092 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
1093 const Arg5& a5, const Arg6& a6, const Arg7& a7) {
1094 return
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
1100 >::type
1101 >
1102 ( typename detail::bind_tuple_mapper<
1103 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
1104 const Arg6, const Arg7
1105 >::type
1106 (a1, a2, a3, a4, a5, a6, a7)
1107 );
1108 }
1109
1110 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
1111 class Arg5, class Arg6, class Arg7>
1112 inline const
1113 lambda_functor<
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,
1118 const Arg7
1119 >::type
1120 >
1121 >
1122
1123 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
1124 const Arg5& a5, const Arg6& a6, const Arg7& a7) {
1125 return
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
1131 >::type
1132 >
1133 ( typename detail::bind_tuple_mapper<
1134 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
1135 const Arg6, const Arg7
1136 >::type
1137 (a1, a2, a3, a4, a5, a6, a7)
1138 );
1139 }
1140
1141
1142 #else
1143 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
1144 class Arg6, class Arg7>
1145 inline const
1146 lambda_functor<
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
1152 >::type
1153 >
1154 >
1155
1156 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
1157 const Arg5& a5, const Arg6& a6, const Arg7& a7) {
1158 return
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
1164 >::type
1165 >
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
1169 >::type
1170 (a1, a2, a3, a4, a5, a6, a7)
1171 );
1172 }
1173
1174 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
1175 class Arg5, class Arg6, class Arg7>
1176 inline const
1177 lambda_functor<
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
1183 >::type
1184 >
1185 >
1186
1187 bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
1188 const Arg5& a5, const Arg6& a6, const Arg7& a7) {
1189 return
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
1195 >::type
1196 >
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
1200 >::type
1201 (a1, a2, a3, a4, a5, a6, a7)
1202 );
1203 }
1204
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>
1208 inline const
1209 lambda_functor<
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
1215 >::type
1216 >
1217 >
1218
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) {
1222 return
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
1228 >::type
1229 >
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
1233 >::type
1234 (a1, a2, a3, a4, a5, a6, a7)
1235 );
1236 }
1237
1238
1239 #endif
1240
1241
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>
1246 inline const
1247 lambda_functor<
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
1253 >::type
1254 >
1255 >
1256
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) {
1260 return
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
1266 >::type
1267 >
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
1271 >::type
1272 (a1, a2, a3, a4, a5, a6, a7, a8)
1273 );
1274 }
1275 #endif
1276
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>
1280 inline const
1281 lambda_functor<
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
1287 >::type
1288 >
1289 >
1290
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) {
1293 return
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
1299 >::type
1300 >
1301 ( typename detail::bind_tuple_mapper<
1302 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
1303 const Arg6, const Arg7, const Arg8
1304 >::type
1305 (a1, a2, a3, a4, a5, a6, a7, a8)
1306 );
1307 }
1308
1309 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
1310 class Arg5, class Arg6, class Arg7, class Arg8>
1311 inline const
1312 lambda_functor<
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
1318 >::type
1319 >
1320 >
1321
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) {
1324 return
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
1330 >::type
1331 >
1332 ( typename detail::bind_tuple_mapper<
1333 const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
1334 const Arg6, const Arg7, const Arg8
1335 >::type
1336 (a1, a2, a3, a4, a5, a6, a7, a8)
1337 );
1338 }
1339
1340
1341 #else
1342 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
1343 class Arg6, class Arg7, class Arg8>
1344 inline const
1345 lambda_functor<
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
1351 >::type
1352 >
1353 >
1354
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) {
1357 return
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
1363 >::type
1364 >
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
1368 >::type
1369 (a1, a2, a3, a4, a5, a6, a7, a8)
1370 );
1371 }
1372
1373 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
1374 class Arg5, class Arg6, class Arg7, class Arg8>
1375 inline const
1376 lambda_functor<
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
1382 >::type
1383 >
1384 >
1385
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) {
1388 return
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
1394 >::type
1395 >
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
1399 >::type
1400 (a1, a2, a3, a4, a5, a6, a7, a8)
1401 );
1402 }
1403
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>
1407 inline const
1408 lambda_functor<
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
1414 >::type
1415 >
1416 >
1417
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) {
1421 return
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
1427 >::type
1428 >
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
1432 >::type
1433 (a1, a2, a3, a4, a5, a6, a7, a8)
1434 );
1435 }
1436
1437
1438 #endif
1439
1440
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>
1446 inline const
1447 lambda_functor<
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,
1453 const Arg9
1454 >::type
1455 >
1456 >
1457
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) {
1461 return
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
1468 >::type
1469 >
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
1474 >::type
1475 (a1, a2, a3, a4, a5, a6, a7, a8, a9)
1476 );
1477 }
1478 #endif
1479
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>
1483 inline const
1484 lambda_functor<
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
1490 >::type
1491 >
1492 >
1493
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,
1496 const Arg9& a9) {
1497 return
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
1503 >::type
1504 >
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
1508 >::type
1509 (a1, a2, a3, a4, a5, a6, a7, a8, a9)
1510 );
1511 }
1512
1513 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
1514 class Arg5, class Arg6, class Arg7, class Arg8, class Arg9>
1515 inline const
1516 lambda_functor<
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
1522 >::type
1523 >
1524 >
1525
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,
1528 const Arg9& a9) {
1529 return
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
1535 >::type
1536 >
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
1540 >::type
1541 (a1, a2, a3, a4, a5, a6, a7, a8, a9)
1542 );
1543 }
1544
1545
1546 #else
1547 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
1548 class Arg6, class Arg7, class Arg8, class Arg9>
1549 inline const
1550 lambda_functor<
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
1556 >::type
1557 >
1558 >
1559
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,
1562 const Arg9& a9) {
1563 return
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
1570 >::type
1571 >
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
1576 >::type
1577 (a1, a2, a3, a4, a5, a6, a7, a8, a9)
1578 );
1579 }
1580
1581 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
1582 class Arg5, class Arg6, class Arg7, class Arg8, class Arg9>
1583 inline const
1584 lambda_functor<
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
1590 >::type
1591 >
1592 >
1593
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,
1596 const Arg9& a9) {
1597 return
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
1604 >::type
1605 >
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
1610 >::type
1611 (a1, a2, a3, a4, a5, a6, a7, a8, a9)
1612 );
1613 }
1614
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>
1619 inline const
1620 lambda_functor<
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,
1626 const Arg9
1627 >::type
1628 >
1629 >
1630
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) {
1634 return
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
1641 >::type
1642 >
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
1647 >::type
1648 (a1, a2, a3, a4, a5, a6, a7, a8, a9)
1649 );
1650 }
1651
1652
1653 #endif
1654
1655
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>
1661 inline const
1662 lambda_functor<
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
1669 >::type
1670 >
1671 >
1672
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,
1676 const Arg10& a10) {
1677 return
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
1684 >::type
1685 >
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
1690 >::type
1691 (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
1692 );
1693 }
1694 #endif
1695
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>
1699 inline const
1700 lambda_functor<
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
1706 >::type
1707 >
1708 >
1709
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) {
1713 return
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
1719 >::type
1720 >
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
1724 >::type
1725 (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
1726 );
1727 }
1728
1729 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
1730 class Arg5, class Arg6, class Arg7, class Arg8, class Arg9,
1731 class Arg10>
1732 inline const
1733 lambda_functor<
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
1739 >::type
1740 >
1741 >
1742
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) {
1746 return
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
1752 >::type
1753 >
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
1757 >::type
1758 (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
1759 );
1760 }
1761
1762
1763 #else
1764 template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
1765 class Arg6, class Arg7, class Arg8, class Arg9, class Arg10>
1766 inline const
1767 lambda_functor<
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,
1773 const Arg10
1774 >::type
1775 >
1776 >
1777
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) {
1781 return
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
1788 >::type
1789 >
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
1794 >::type
1795 (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
1796 );
1797 }
1798
1799 template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
1800 class Arg5, class Arg6, class Arg7, class Arg8, class Arg9,
1801 class Arg10>
1802 inline const
1803 lambda_functor<
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,
1809 const Arg10
1810 >::type
1811 >
1812 >
1813
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) {
1817 return
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
1824 >::type
1825 >
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
1830 >::type
1831 (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
1832 );
1833 }
1834
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>
1839 inline const
1840 lambda_functor<
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
1847 >::type
1848 >
1849 >
1850
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,
1854 const Arg10& a10) {
1855 return
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
1862 >::type
1863 >
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
1868 >::type
1869 (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
1870 );
1871 }
1872
1873
1874 #endif
1875
1876 }
1877 }
1878
1879 #endif