File indexing completed on 2025-02-23 09:48:07
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 template <
0015 typename RT
0016 , typename ClassT
0017 , typename T0
0018 , typename ClassA
0019 , typename A0
0020 >
0021 inline
0022 typename detail::expression::function_eval<
0023 detail::member_function_ptr<
0024 1
0025 , RT
0026 , RT(ClassT::*)(T0)
0027 >
0028 , ClassA
0029 , A0
0030 >::type const
0031 bind(
0032 RT(ClassT::*f)(T0)
0033 , ClassA const & obj
0034 , A0 const& a0
0035 )
0036 {
0037 typedef detail::member_function_ptr<
0038 1
0039 , RT
0040 , RT(ClassT::*)(T0)
0041 > fp_type;
0042 return
0043 detail::expression::function_eval<
0044 fp_type
0045 , ClassA
0046 , A0
0047 >::make(
0048 fp_type(f)
0049 , obj
0050 , a0
0051 );
0052 }
0053 template <
0054 typename RT
0055 , typename ClassT
0056 , typename T0
0057 , typename ClassA
0058 , typename A0
0059 >
0060 inline
0061 typename detail::expression::function_eval<
0062 detail::member_function_ptr<
0063 1
0064 , RT
0065 , RT(ClassT::*)(T0) const
0066 >
0067 , ClassA
0068 , A0
0069 >::type const
0070 bind(
0071 RT(ClassT::*f)(T0) const
0072 , ClassA const & obj
0073 , A0 const& a0
0074 )
0075 {
0076 typedef detail::member_function_ptr<
0077 1
0078 , RT
0079 , RT(ClassT::*)(T0) const
0080 > fp_type;
0081 return
0082 detail::expression::function_eval<
0083 fp_type
0084 , ClassA
0085 , A0
0086 >::make(
0087 fp_type(f)
0088 , obj
0089 , a0
0090 );
0091 }
0092 template <
0093 typename RT
0094 , typename ClassT
0095 , typename T0
0096 , typename A0
0097 >
0098 inline
0099 typename detail::expression::function_eval<
0100 detail::member_function_ptr<
0101 1
0102 , RT
0103 , RT(ClassT::*)(T0)
0104 >
0105 , ClassT
0106 , A0
0107 >::type const
0108 bind(
0109 RT(ClassT::*f)(T0)
0110 , ClassT & obj
0111 , A0 const& a0
0112 )
0113 {
0114 typedef detail::member_function_ptr<
0115 1
0116 , RT
0117 , RT(ClassT::*)(T0)
0118 > fp_type;
0119 return
0120 detail::expression::function_eval<
0121 fp_type
0122 , ClassT
0123 , A0
0124 >::make(
0125 fp_type(f)
0126 , obj
0127 , a0
0128 );
0129 }
0130
0131
0132
0133
0134
0135
0136
0137 template <
0138 typename RT
0139 , typename ClassT
0140 , typename T0 , typename T1
0141 , typename ClassA
0142 , typename A0 , typename A1
0143 >
0144 inline
0145 typename detail::expression::function_eval<
0146 detail::member_function_ptr<
0147 2
0148 , RT
0149 , RT(ClassT::*)(T0 , T1)
0150 >
0151 , ClassA
0152 , A0 , A1
0153 >::type const
0154 bind(
0155 RT(ClassT::*f)(T0 , T1)
0156 , ClassA const & obj
0157 , A0 const& a0 , A1 const& a1
0158 )
0159 {
0160 typedef detail::member_function_ptr<
0161 2
0162 , RT
0163 , RT(ClassT::*)(T0 , T1)
0164 > fp_type;
0165 return
0166 detail::expression::function_eval<
0167 fp_type
0168 , ClassA
0169 , A0 , A1
0170 >::make(
0171 fp_type(f)
0172 , obj
0173 , a0 , a1
0174 );
0175 }
0176 template <
0177 typename RT
0178 , typename ClassT
0179 , typename T0 , typename T1
0180 , typename ClassA
0181 , typename A0 , typename A1
0182 >
0183 inline
0184 typename detail::expression::function_eval<
0185 detail::member_function_ptr<
0186 2
0187 , RT
0188 , RT(ClassT::*)(T0 , T1) const
0189 >
0190 , ClassA
0191 , A0 , A1
0192 >::type const
0193 bind(
0194 RT(ClassT::*f)(T0 , T1) const
0195 , ClassA const & obj
0196 , A0 const& a0 , A1 const& a1
0197 )
0198 {
0199 typedef detail::member_function_ptr<
0200 2
0201 , RT
0202 , RT(ClassT::*)(T0 , T1) const
0203 > fp_type;
0204 return
0205 detail::expression::function_eval<
0206 fp_type
0207 , ClassA
0208 , A0 , A1
0209 >::make(
0210 fp_type(f)
0211 , obj
0212 , a0 , a1
0213 );
0214 }
0215 template <
0216 typename RT
0217 , typename ClassT
0218 , typename T0 , typename T1
0219 , typename A0 , typename A1
0220 >
0221 inline
0222 typename detail::expression::function_eval<
0223 detail::member_function_ptr<
0224 2
0225 , RT
0226 , RT(ClassT::*)(T0 , T1)
0227 >
0228 , ClassT
0229 , A0 , A1
0230 >::type const
0231 bind(
0232 RT(ClassT::*f)(T0 , T1)
0233 , ClassT & obj
0234 , A0 const& a0 , A1 const& a1
0235 )
0236 {
0237 typedef detail::member_function_ptr<
0238 2
0239 , RT
0240 , RT(ClassT::*)(T0 , T1)
0241 > fp_type;
0242 return
0243 detail::expression::function_eval<
0244 fp_type
0245 , ClassT
0246 , A0 , A1
0247 >::make(
0248 fp_type(f)
0249 , obj
0250 , a0 , a1
0251 );
0252 }
0253
0254
0255
0256
0257
0258
0259
0260 template <
0261 typename RT
0262 , typename ClassT
0263 , typename T0 , typename T1 , typename T2
0264 , typename ClassA
0265 , typename A0 , typename A1 , typename A2
0266 >
0267 inline
0268 typename detail::expression::function_eval<
0269 detail::member_function_ptr<
0270 3
0271 , RT
0272 , RT(ClassT::*)(T0 , T1 , T2)
0273 >
0274 , ClassA
0275 , A0 , A1 , A2
0276 >::type const
0277 bind(
0278 RT(ClassT::*f)(T0 , T1 , T2)
0279 , ClassA const & obj
0280 , A0 const& a0 , A1 const& a1 , A2 const& a2
0281 )
0282 {
0283 typedef detail::member_function_ptr<
0284 3
0285 , RT
0286 , RT(ClassT::*)(T0 , T1 , T2)
0287 > fp_type;
0288 return
0289 detail::expression::function_eval<
0290 fp_type
0291 , ClassA
0292 , A0 , A1 , A2
0293 >::make(
0294 fp_type(f)
0295 , obj
0296 , a0 , a1 , a2
0297 );
0298 }
0299 template <
0300 typename RT
0301 , typename ClassT
0302 , typename T0 , typename T1 , typename T2
0303 , typename ClassA
0304 , typename A0 , typename A1 , typename A2
0305 >
0306 inline
0307 typename detail::expression::function_eval<
0308 detail::member_function_ptr<
0309 3
0310 , RT
0311 , RT(ClassT::*)(T0 , T1 , T2) const
0312 >
0313 , ClassA
0314 , A0 , A1 , A2
0315 >::type const
0316 bind(
0317 RT(ClassT::*f)(T0 , T1 , T2) const
0318 , ClassA const & obj
0319 , A0 const& a0 , A1 const& a1 , A2 const& a2
0320 )
0321 {
0322 typedef detail::member_function_ptr<
0323 3
0324 , RT
0325 , RT(ClassT::*)(T0 , T1 , T2) const
0326 > fp_type;
0327 return
0328 detail::expression::function_eval<
0329 fp_type
0330 , ClassA
0331 , A0 , A1 , A2
0332 >::make(
0333 fp_type(f)
0334 , obj
0335 , a0 , a1 , a2
0336 );
0337 }
0338 template <
0339 typename RT
0340 , typename ClassT
0341 , typename T0 , typename T1 , typename T2
0342 , typename A0 , typename A1 , typename A2
0343 >
0344 inline
0345 typename detail::expression::function_eval<
0346 detail::member_function_ptr<
0347 3
0348 , RT
0349 , RT(ClassT::*)(T0 , T1 , T2)
0350 >
0351 , ClassT
0352 , A0 , A1 , A2
0353 >::type const
0354 bind(
0355 RT(ClassT::*f)(T0 , T1 , T2)
0356 , ClassT & obj
0357 , A0 const& a0 , A1 const& a1 , A2 const& a2
0358 )
0359 {
0360 typedef detail::member_function_ptr<
0361 3
0362 , RT
0363 , RT(ClassT::*)(T0 , T1 , T2)
0364 > fp_type;
0365 return
0366 detail::expression::function_eval<
0367 fp_type
0368 , ClassT
0369 , A0 , A1 , A2
0370 >::make(
0371 fp_type(f)
0372 , obj
0373 , a0 , a1 , a2
0374 );
0375 }
0376
0377
0378
0379
0380
0381
0382
0383 template <
0384 typename RT
0385 , typename ClassT
0386 , typename T0 , typename T1 , typename T2 , typename T3
0387 , typename ClassA
0388 , typename A0 , typename A1 , typename A2 , typename A3
0389 >
0390 inline
0391 typename detail::expression::function_eval<
0392 detail::member_function_ptr<
0393 4
0394 , RT
0395 , RT(ClassT::*)(T0 , T1 , T2 , T3)
0396 >
0397 , ClassA
0398 , A0 , A1 , A2 , A3
0399 >::type const
0400 bind(
0401 RT(ClassT::*f)(T0 , T1 , T2 , T3)
0402 , ClassA const & obj
0403 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3
0404 )
0405 {
0406 typedef detail::member_function_ptr<
0407 4
0408 , RT
0409 , RT(ClassT::*)(T0 , T1 , T2 , T3)
0410 > fp_type;
0411 return
0412 detail::expression::function_eval<
0413 fp_type
0414 , ClassA
0415 , A0 , A1 , A2 , A3
0416 >::make(
0417 fp_type(f)
0418 , obj
0419 , a0 , a1 , a2 , a3
0420 );
0421 }
0422 template <
0423 typename RT
0424 , typename ClassT
0425 , typename T0 , typename T1 , typename T2 , typename T3
0426 , typename ClassA
0427 , typename A0 , typename A1 , typename A2 , typename A3
0428 >
0429 inline
0430 typename detail::expression::function_eval<
0431 detail::member_function_ptr<
0432 4
0433 , RT
0434 , RT(ClassT::*)(T0 , T1 , T2 , T3) const
0435 >
0436 , ClassA
0437 , A0 , A1 , A2 , A3
0438 >::type const
0439 bind(
0440 RT(ClassT::*f)(T0 , T1 , T2 , T3) const
0441 , ClassA const & obj
0442 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3
0443 )
0444 {
0445 typedef detail::member_function_ptr<
0446 4
0447 , RT
0448 , RT(ClassT::*)(T0 , T1 , T2 , T3) const
0449 > fp_type;
0450 return
0451 detail::expression::function_eval<
0452 fp_type
0453 , ClassA
0454 , A0 , A1 , A2 , A3
0455 >::make(
0456 fp_type(f)
0457 , obj
0458 , a0 , a1 , a2 , a3
0459 );
0460 }
0461 template <
0462 typename RT
0463 , typename ClassT
0464 , typename T0 , typename T1 , typename T2 , typename T3
0465 , typename A0 , typename A1 , typename A2 , typename A3
0466 >
0467 inline
0468 typename detail::expression::function_eval<
0469 detail::member_function_ptr<
0470 4
0471 , RT
0472 , RT(ClassT::*)(T0 , T1 , T2 , T3)
0473 >
0474 , ClassT
0475 , A0 , A1 , A2 , A3
0476 >::type const
0477 bind(
0478 RT(ClassT::*f)(T0 , T1 , T2 , T3)
0479 , ClassT & obj
0480 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3
0481 )
0482 {
0483 typedef detail::member_function_ptr<
0484 4
0485 , RT
0486 , RT(ClassT::*)(T0 , T1 , T2 , T3)
0487 > fp_type;
0488 return
0489 detail::expression::function_eval<
0490 fp_type
0491 , ClassT
0492 , A0 , A1 , A2 , A3
0493 >::make(
0494 fp_type(f)
0495 , obj
0496 , a0 , a1 , a2 , a3
0497 );
0498 }
0499
0500
0501
0502
0503
0504
0505
0506 template <
0507 typename RT
0508 , typename ClassT
0509 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4
0510 , typename ClassA
0511 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4
0512 >
0513 inline
0514 typename detail::expression::function_eval<
0515 detail::member_function_ptr<
0516 5
0517 , RT
0518 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4)
0519 >
0520 , ClassA
0521 , A0 , A1 , A2 , A3 , A4
0522 >::type const
0523 bind(
0524 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4)
0525 , ClassA const & obj
0526 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4
0527 )
0528 {
0529 typedef detail::member_function_ptr<
0530 5
0531 , RT
0532 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4)
0533 > fp_type;
0534 return
0535 detail::expression::function_eval<
0536 fp_type
0537 , ClassA
0538 , A0 , A1 , A2 , A3 , A4
0539 >::make(
0540 fp_type(f)
0541 , obj
0542 , a0 , a1 , a2 , a3 , a4
0543 );
0544 }
0545 template <
0546 typename RT
0547 , typename ClassT
0548 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4
0549 , typename ClassA
0550 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4
0551 >
0552 inline
0553 typename detail::expression::function_eval<
0554 detail::member_function_ptr<
0555 5
0556 , RT
0557 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4) const
0558 >
0559 , ClassA
0560 , A0 , A1 , A2 , A3 , A4
0561 >::type const
0562 bind(
0563 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4) const
0564 , ClassA const & obj
0565 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4
0566 )
0567 {
0568 typedef detail::member_function_ptr<
0569 5
0570 , RT
0571 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4) const
0572 > fp_type;
0573 return
0574 detail::expression::function_eval<
0575 fp_type
0576 , ClassA
0577 , A0 , A1 , A2 , A3 , A4
0578 >::make(
0579 fp_type(f)
0580 , obj
0581 , a0 , a1 , a2 , a3 , a4
0582 );
0583 }
0584 template <
0585 typename RT
0586 , typename ClassT
0587 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4
0588 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4
0589 >
0590 inline
0591 typename detail::expression::function_eval<
0592 detail::member_function_ptr<
0593 5
0594 , RT
0595 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4)
0596 >
0597 , ClassT
0598 , A0 , A1 , A2 , A3 , A4
0599 >::type const
0600 bind(
0601 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4)
0602 , ClassT & obj
0603 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4
0604 )
0605 {
0606 typedef detail::member_function_ptr<
0607 5
0608 , RT
0609 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4)
0610 > fp_type;
0611 return
0612 detail::expression::function_eval<
0613 fp_type
0614 , ClassT
0615 , A0 , A1 , A2 , A3 , A4
0616 >::make(
0617 fp_type(f)
0618 , obj
0619 , a0 , a1 , a2 , a3 , a4
0620 );
0621 }
0622
0623
0624
0625
0626
0627
0628
0629 template <
0630 typename RT
0631 , typename ClassT
0632 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5
0633 , typename ClassA
0634 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5
0635 >
0636 inline
0637 typename detail::expression::function_eval<
0638 detail::member_function_ptr<
0639 6
0640 , RT
0641 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5)
0642 >
0643 , ClassA
0644 , A0 , A1 , A2 , A3 , A4 , A5
0645 >::type const
0646 bind(
0647 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5)
0648 , ClassA const & obj
0649 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5
0650 )
0651 {
0652 typedef detail::member_function_ptr<
0653 6
0654 , RT
0655 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5)
0656 > fp_type;
0657 return
0658 detail::expression::function_eval<
0659 fp_type
0660 , ClassA
0661 , A0 , A1 , A2 , A3 , A4 , A5
0662 >::make(
0663 fp_type(f)
0664 , obj
0665 , a0 , a1 , a2 , a3 , a4 , a5
0666 );
0667 }
0668 template <
0669 typename RT
0670 , typename ClassT
0671 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5
0672 , typename ClassA
0673 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5
0674 >
0675 inline
0676 typename detail::expression::function_eval<
0677 detail::member_function_ptr<
0678 6
0679 , RT
0680 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5) const
0681 >
0682 , ClassA
0683 , A0 , A1 , A2 , A3 , A4 , A5
0684 >::type const
0685 bind(
0686 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5) const
0687 , ClassA const & obj
0688 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5
0689 )
0690 {
0691 typedef detail::member_function_ptr<
0692 6
0693 , RT
0694 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5) const
0695 > fp_type;
0696 return
0697 detail::expression::function_eval<
0698 fp_type
0699 , ClassA
0700 , A0 , A1 , A2 , A3 , A4 , A5
0701 >::make(
0702 fp_type(f)
0703 , obj
0704 , a0 , a1 , a2 , a3 , a4 , a5
0705 );
0706 }
0707 template <
0708 typename RT
0709 , typename ClassT
0710 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5
0711 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5
0712 >
0713 inline
0714 typename detail::expression::function_eval<
0715 detail::member_function_ptr<
0716 6
0717 , RT
0718 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5)
0719 >
0720 , ClassT
0721 , A0 , A1 , A2 , A3 , A4 , A5
0722 >::type const
0723 bind(
0724 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5)
0725 , ClassT & obj
0726 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5
0727 )
0728 {
0729 typedef detail::member_function_ptr<
0730 6
0731 , RT
0732 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5)
0733 > fp_type;
0734 return
0735 detail::expression::function_eval<
0736 fp_type
0737 , ClassT
0738 , A0 , A1 , A2 , A3 , A4 , A5
0739 >::make(
0740 fp_type(f)
0741 , obj
0742 , a0 , a1 , a2 , a3 , a4 , a5
0743 );
0744 }
0745
0746
0747
0748
0749
0750
0751
0752 template <
0753 typename RT
0754 , typename ClassT
0755 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6
0756 , typename ClassA
0757 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6
0758 >
0759 inline
0760 typename detail::expression::function_eval<
0761 detail::member_function_ptr<
0762 7
0763 , RT
0764 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
0765 >
0766 , ClassA
0767 , A0 , A1 , A2 , A3 , A4 , A5 , A6
0768 >::type const
0769 bind(
0770 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
0771 , ClassA const & obj
0772 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6
0773 )
0774 {
0775 typedef detail::member_function_ptr<
0776 7
0777 , RT
0778 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
0779 > fp_type;
0780 return
0781 detail::expression::function_eval<
0782 fp_type
0783 , ClassA
0784 , A0 , A1 , A2 , A3 , A4 , A5 , A6
0785 >::make(
0786 fp_type(f)
0787 , obj
0788 , a0 , a1 , a2 , a3 , a4 , a5 , a6
0789 );
0790 }
0791 template <
0792 typename RT
0793 , typename ClassT
0794 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6
0795 , typename ClassA
0796 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6
0797 >
0798 inline
0799 typename detail::expression::function_eval<
0800 detail::member_function_ptr<
0801 7
0802 , RT
0803 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6) const
0804 >
0805 , ClassA
0806 , A0 , A1 , A2 , A3 , A4 , A5 , A6
0807 >::type const
0808 bind(
0809 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6) const
0810 , ClassA const & obj
0811 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6
0812 )
0813 {
0814 typedef detail::member_function_ptr<
0815 7
0816 , RT
0817 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6) const
0818 > fp_type;
0819 return
0820 detail::expression::function_eval<
0821 fp_type
0822 , ClassA
0823 , A0 , A1 , A2 , A3 , A4 , A5 , A6
0824 >::make(
0825 fp_type(f)
0826 , obj
0827 , a0 , a1 , a2 , a3 , a4 , a5 , a6
0828 );
0829 }
0830 template <
0831 typename RT
0832 , typename ClassT
0833 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6
0834 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6
0835 >
0836 inline
0837 typename detail::expression::function_eval<
0838 detail::member_function_ptr<
0839 7
0840 , RT
0841 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
0842 >
0843 , ClassT
0844 , A0 , A1 , A2 , A3 , A4 , A5 , A6
0845 >::type const
0846 bind(
0847 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
0848 , ClassT & obj
0849 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6
0850 )
0851 {
0852 typedef detail::member_function_ptr<
0853 7
0854 , RT
0855 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
0856 > fp_type;
0857 return
0858 detail::expression::function_eval<
0859 fp_type
0860 , ClassT
0861 , A0 , A1 , A2 , A3 , A4 , A5 , A6
0862 >::make(
0863 fp_type(f)
0864 , obj
0865 , a0 , a1 , a2 , a3 , a4 , a5 , a6
0866 );
0867 }
0868
0869
0870
0871
0872
0873
0874
0875 template <
0876 typename RT
0877 , typename ClassT
0878 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7
0879 , typename ClassA
0880 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7
0881 >
0882 inline
0883 typename detail::expression::function_eval<
0884 detail::member_function_ptr<
0885 8
0886 , RT
0887 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
0888 >
0889 , ClassA
0890 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
0891 >::type const
0892 bind(
0893 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
0894 , ClassA const & obj
0895 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7
0896 )
0897 {
0898 typedef detail::member_function_ptr<
0899 8
0900 , RT
0901 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
0902 > fp_type;
0903 return
0904 detail::expression::function_eval<
0905 fp_type
0906 , ClassA
0907 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
0908 >::make(
0909 fp_type(f)
0910 , obj
0911 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7
0912 );
0913 }
0914 template <
0915 typename RT
0916 , typename ClassT
0917 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7
0918 , typename ClassA
0919 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7
0920 >
0921 inline
0922 typename detail::expression::function_eval<
0923 detail::member_function_ptr<
0924 8
0925 , RT
0926 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const
0927 >
0928 , ClassA
0929 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
0930 >::type const
0931 bind(
0932 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const
0933 , ClassA const & obj
0934 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7
0935 )
0936 {
0937 typedef detail::member_function_ptr<
0938 8
0939 , RT
0940 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const
0941 > fp_type;
0942 return
0943 detail::expression::function_eval<
0944 fp_type
0945 , ClassA
0946 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
0947 >::make(
0948 fp_type(f)
0949 , obj
0950 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7
0951 );
0952 }
0953 template <
0954 typename RT
0955 , typename ClassT
0956 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7
0957 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7
0958 >
0959 inline
0960 typename detail::expression::function_eval<
0961 detail::member_function_ptr<
0962 8
0963 , RT
0964 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
0965 >
0966 , ClassT
0967 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
0968 >::type const
0969 bind(
0970 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
0971 , ClassT & obj
0972 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7
0973 )
0974 {
0975 typedef detail::member_function_ptr<
0976 8
0977 , RT
0978 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
0979 > fp_type;
0980 return
0981 detail::expression::function_eval<
0982 fp_type
0983 , ClassT
0984 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
0985 >::make(
0986 fp_type(f)
0987 , obj
0988 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7
0989 );
0990 }
0991
0992
0993
0994
0995
0996
0997
0998 template <
0999 typename RT
1000 , typename ClassT
1001 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8
1002 , typename ClassA
1003 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8
1004 >
1005 inline
1006 typename detail::expression::function_eval<
1007 detail::member_function_ptr<
1008 9
1009 , RT
1010 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)
1011 >
1012 , ClassA
1013 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
1014 >::type const
1015 bind(
1016 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)
1017 , ClassA const & obj
1018 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8
1019 )
1020 {
1021 typedef detail::member_function_ptr<
1022 9
1023 , RT
1024 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)
1025 > fp_type;
1026 return
1027 detail::expression::function_eval<
1028 fp_type
1029 , ClassA
1030 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
1031 >::make(
1032 fp_type(f)
1033 , obj
1034 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8
1035 );
1036 }
1037 template <
1038 typename RT
1039 , typename ClassT
1040 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8
1041 , typename ClassA
1042 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8
1043 >
1044 inline
1045 typename detail::expression::function_eval<
1046 detail::member_function_ptr<
1047 9
1048 , RT
1049 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const
1050 >
1051 , ClassA
1052 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
1053 >::type const
1054 bind(
1055 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const
1056 , ClassA const & obj
1057 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8
1058 )
1059 {
1060 typedef detail::member_function_ptr<
1061 9
1062 , RT
1063 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const
1064 > fp_type;
1065 return
1066 detail::expression::function_eval<
1067 fp_type
1068 , ClassA
1069 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
1070 >::make(
1071 fp_type(f)
1072 , obj
1073 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8
1074 );
1075 }
1076 template <
1077 typename RT
1078 , typename ClassT
1079 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8
1080 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8
1081 >
1082 inline
1083 typename detail::expression::function_eval<
1084 detail::member_function_ptr<
1085 9
1086 , RT
1087 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)
1088 >
1089 , ClassT
1090 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
1091 >::type const
1092 bind(
1093 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)
1094 , ClassT & obj
1095 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8
1096 )
1097 {
1098 typedef detail::member_function_ptr<
1099 9
1100 , RT
1101 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)
1102 > fp_type;
1103 return
1104 detail::expression::function_eval<
1105 fp_type
1106 , ClassT
1107 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
1108 >::make(
1109 fp_type(f)
1110 , obj
1111 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8
1112 );
1113 }
1114
1115
1116
1117
1118
1119
1120
1121 template <
1122 typename RT
1123 , typename ClassT
1124 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9
1125 , typename ClassA
1126 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9
1127 >
1128 inline
1129 typename detail::expression::function_eval<
1130 detail::member_function_ptr<
1131 10
1132 , RT
1133 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)
1134 >
1135 , ClassA
1136 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
1137 >::type const
1138 bind(
1139 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)
1140 , ClassA const & obj
1141 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9
1142 )
1143 {
1144 typedef detail::member_function_ptr<
1145 10
1146 , RT
1147 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)
1148 > fp_type;
1149 return
1150 detail::expression::function_eval<
1151 fp_type
1152 , ClassA
1153 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
1154 >::make(
1155 fp_type(f)
1156 , obj
1157 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9
1158 );
1159 }
1160 template <
1161 typename RT
1162 , typename ClassT
1163 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9
1164 , typename ClassA
1165 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9
1166 >
1167 inline
1168 typename detail::expression::function_eval<
1169 detail::member_function_ptr<
1170 10
1171 , RT
1172 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const
1173 >
1174 , ClassA
1175 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
1176 >::type const
1177 bind(
1178 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const
1179 , ClassA const & obj
1180 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9
1181 )
1182 {
1183 typedef detail::member_function_ptr<
1184 10
1185 , RT
1186 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const
1187 > fp_type;
1188 return
1189 detail::expression::function_eval<
1190 fp_type
1191 , ClassA
1192 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
1193 >::make(
1194 fp_type(f)
1195 , obj
1196 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9
1197 );
1198 }
1199 template <
1200 typename RT
1201 , typename ClassT
1202 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9
1203 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9
1204 >
1205 inline
1206 typename detail::expression::function_eval<
1207 detail::member_function_ptr<
1208 10
1209 , RT
1210 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)
1211 >
1212 , ClassT
1213 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
1214 >::type const
1215 bind(
1216 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)
1217 , ClassT & obj
1218 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9
1219 )
1220 {
1221 typedef detail::member_function_ptr<
1222 10
1223 , RT
1224 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)
1225 > fp_type;
1226 return
1227 detail::expression::function_eval<
1228 fp_type
1229 , ClassT
1230 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
1231 >::make(
1232 fp_type(f)
1233 , obj
1234 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9
1235 );
1236 }
1237
1238
1239
1240
1241
1242
1243
1244 template <
1245 typename RT
1246 , typename ClassT
1247 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10
1248 , typename ClassA
1249 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10
1250 >
1251 inline
1252 typename detail::expression::function_eval<
1253 detail::member_function_ptr<
1254 11
1255 , RT
1256 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)
1257 >
1258 , ClassA
1259 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
1260 >::type const
1261 bind(
1262 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)
1263 , ClassA const & obj
1264 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10
1265 )
1266 {
1267 typedef detail::member_function_ptr<
1268 11
1269 , RT
1270 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)
1271 > fp_type;
1272 return
1273 detail::expression::function_eval<
1274 fp_type
1275 , ClassA
1276 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
1277 >::make(
1278 fp_type(f)
1279 , obj
1280 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10
1281 );
1282 }
1283 template <
1284 typename RT
1285 , typename ClassT
1286 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10
1287 , typename ClassA
1288 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10
1289 >
1290 inline
1291 typename detail::expression::function_eval<
1292 detail::member_function_ptr<
1293 11
1294 , RT
1295 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const
1296 >
1297 , ClassA
1298 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
1299 >::type const
1300 bind(
1301 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const
1302 , ClassA const & obj
1303 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10
1304 )
1305 {
1306 typedef detail::member_function_ptr<
1307 11
1308 , RT
1309 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const
1310 > fp_type;
1311 return
1312 detail::expression::function_eval<
1313 fp_type
1314 , ClassA
1315 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
1316 >::make(
1317 fp_type(f)
1318 , obj
1319 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10
1320 );
1321 }
1322 template <
1323 typename RT
1324 , typename ClassT
1325 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10
1326 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10
1327 >
1328 inline
1329 typename detail::expression::function_eval<
1330 detail::member_function_ptr<
1331 11
1332 , RT
1333 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)
1334 >
1335 , ClassT
1336 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
1337 >::type const
1338 bind(
1339 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)
1340 , ClassT & obj
1341 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10
1342 )
1343 {
1344 typedef detail::member_function_ptr<
1345 11
1346 , RT
1347 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)
1348 > fp_type;
1349 return
1350 detail::expression::function_eval<
1351 fp_type
1352 , ClassT
1353 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
1354 >::make(
1355 fp_type(f)
1356 , obj
1357 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10
1358 );
1359 }
1360
1361
1362
1363
1364
1365
1366
1367 template <
1368 typename RT
1369 , typename ClassT
1370 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11
1371 , typename ClassA
1372 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11
1373 >
1374 inline
1375 typename detail::expression::function_eval<
1376 detail::member_function_ptr<
1377 12
1378 , RT
1379 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)
1380 >
1381 , ClassA
1382 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
1383 >::type const
1384 bind(
1385 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)
1386 , ClassA const & obj
1387 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11
1388 )
1389 {
1390 typedef detail::member_function_ptr<
1391 12
1392 , RT
1393 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)
1394 > fp_type;
1395 return
1396 detail::expression::function_eval<
1397 fp_type
1398 , ClassA
1399 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
1400 >::make(
1401 fp_type(f)
1402 , obj
1403 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11
1404 );
1405 }
1406 template <
1407 typename RT
1408 , typename ClassT
1409 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11
1410 , typename ClassA
1411 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11
1412 >
1413 inline
1414 typename detail::expression::function_eval<
1415 detail::member_function_ptr<
1416 12
1417 , RT
1418 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const
1419 >
1420 , ClassA
1421 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
1422 >::type const
1423 bind(
1424 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const
1425 , ClassA const & obj
1426 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11
1427 )
1428 {
1429 typedef detail::member_function_ptr<
1430 12
1431 , RT
1432 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const
1433 > fp_type;
1434 return
1435 detail::expression::function_eval<
1436 fp_type
1437 , ClassA
1438 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
1439 >::make(
1440 fp_type(f)
1441 , obj
1442 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11
1443 );
1444 }
1445 template <
1446 typename RT
1447 , typename ClassT
1448 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11
1449 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11
1450 >
1451 inline
1452 typename detail::expression::function_eval<
1453 detail::member_function_ptr<
1454 12
1455 , RT
1456 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)
1457 >
1458 , ClassT
1459 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
1460 >::type const
1461 bind(
1462 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)
1463 , ClassT & obj
1464 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11
1465 )
1466 {
1467 typedef detail::member_function_ptr<
1468 12
1469 , RT
1470 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)
1471 > fp_type;
1472 return
1473 detail::expression::function_eval<
1474 fp_type
1475 , ClassT
1476 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
1477 >::make(
1478 fp_type(f)
1479 , obj
1480 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11
1481 );
1482 }
1483
1484
1485
1486
1487
1488
1489
1490 template <
1491 typename RT
1492 , typename ClassT
1493 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12
1494 , typename ClassA
1495 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12
1496 >
1497 inline
1498 typename detail::expression::function_eval<
1499 detail::member_function_ptr<
1500 13
1501 , RT
1502 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)
1503 >
1504 , ClassA
1505 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
1506 >::type const
1507 bind(
1508 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)
1509 , ClassA const & obj
1510 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12
1511 )
1512 {
1513 typedef detail::member_function_ptr<
1514 13
1515 , RT
1516 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)
1517 > fp_type;
1518 return
1519 detail::expression::function_eval<
1520 fp_type
1521 , ClassA
1522 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
1523 >::make(
1524 fp_type(f)
1525 , obj
1526 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12
1527 );
1528 }
1529 template <
1530 typename RT
1531 , typename ClassT
1532 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12
1533 , typename ClassA
1534 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12
1535 >
1536 inline
1537 typename detail::expression::function_eval<
1538 detail::member_function_ptr<
1539 13
1540 , RT
1541 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const
1542 >
1543 , ClassA
1544 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
1545 >::type const
1546 bind(
1547 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const
1548 , ClassA const & obj
1549 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12
1550 )
1551 {
1552 typedef detail::member_function_ptr<
1553 13
1554 , RT
1555 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const
1556 > fp_type;
1557 return
1558 detail::expression::function_eval<
1559 fp_type
1560 , ClassA
1561 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
1562 >::make(
1563 fp_type(f)
1564 , obj
1565 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12
1566 );
1567 }
1568 template <
1569 typename RT
1570 , typename ClassT
1571 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12
1572 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12
1573 >
1574 inline
1575 typename detail::expression::function_eval<
1576 detail::member_function_ptr<
1577 13
1578 , RT
1579 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)
1580 >
1581 , ClassT
1582 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
1583 >::type const
1584 bind(
1585 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)
1586 , ClassT & obj
1587 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12
1588 )
1589 {
1590 typedef detail::member_function_ptr<
1591 13
1592 , RT
1593 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)
1594 > fp_type;
1595 return
1596 detail::expression::function_eval<
1597 fp_type
1598 , ClassT
1599 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
1600 >::make(
1601 fp_type(f)
1602 , obj
1603 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12
1604 );
1605 }
1606
1607
1608
1609
1610
1611
1612
1613 template <
1614 typename RT
1615 , typename ClassT
1616 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13
1617 , typename ClassA
1618 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13
1619 >
1620 inline
1621 typename detail::expression::function_eval<
1622 detail::member_function_ptr<
1623 14
1624 , RT
1625 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)
1626 >
1627 , ClassA
1628 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
1629 >::type const
1630 bind(
1631 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)
1632 , ClassA const & obj
1633 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13
1634 )
1635 {
1636 typedef detail::member_function_ptr<
1637 14
1638 , RT
1639 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)
1640 > fp_type;
1641 return
1642 detail::expression::function_eval<
1643 fp_type
1644 , ClassA
1645 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
1646 >::make(
1647 fp_type(f)
1648 , obj
1649 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13
1650 );
1651 }
1652 template <
1653 typename RT
1654 , typename ClassT
1655 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13
1656 , typename ClassA
1657 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13
1658 >
1659 inline
1660 typename detail::expression::function_eval<
1661 detail::member_function_ptr<
1662 14
1663 , RT
1664 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const
1665 >
1666 , ClassA
1667 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
1668 >::type const
1669 bind(
1670 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const
1671 , ClassA const & obj
1672 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13
1673 )
1674 {
1675 typedef detail::member_function_ptr<
1676 14
1677 , RT
1678 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const
1679 > fp_type;
1680 return
1681 detail::expression::function_eval<
1682 fp_type
1683 , ClassA
1684 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
1685 >::make(
1686 fp_type(f)
1687 , obj
1688 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13
1689 );
1690 }
1691 template <
1692 typename RT
1693 , typename ClassT
1694 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13
1695 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13
1696 >
1697 inline
1698 typename detail::expression::function_eval<
1699 detail::member_function_ptr<
1700 14
1701 , RT
1702 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)
1703 >
1704 , ClassT
1705 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
1706 >::type const
1707 bind(
1708 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)
1709 , ClassT & obj
1710 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13
1711 )
1712 {
1713 typedef detail::member_function_ptr<
1714 14
1715 , RT
1716 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)
1717 > fp_type;
1718 return
1719 detail::expression::function_eval<
1720 fp_type
1721 , ClassT
1722 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
1723 >::make(
1724 fp_type(f)
1725 , obj
1726 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13
1727 );
1728 }
1729
1730
1731
1732
1733
1734
1735
1736 template <
1737 typename RT
1738 , typename ClassT
1739 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14
1740 , typename ClassA
1741 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14
1742 >
1743 inline
1744 typename detail::expression::function_eval<
1745 detail::member_function_ptr<
1746 15
1747 , RT
1748 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)
1749 >
1750 , ClassA
1751 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
1752 >::type const
1753 bind(
1754 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)
1755 , ClassA const & obj
1756 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14
1757 )
1758 {
1759 typedef detail::member_function_ptr<
1760 15
1761 , RT
1762 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)
1763 > fp_type;
1764 return
1765 detail::expression::function_eval<
1766 fp_type
1767 , ClassA
1768 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
1769 >::make(
1770 fp_type(f)
1771 , obj
1772 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14
1773 );
1774 }
1775 template <
1776 typename RT
1777 , typename ClassT
1778 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14
1779 , typename ClassA
1780 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14
1781 >
1782 inline
1783 typename detail::expression::function_eval<
1784 detail::member_function_ptr<
1785 15
1786 , RT
1787 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const
1788 >
1789 , ClassA
1790 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
1791 >::type const
1792 bind(
1793 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const
1794 , ClassA const & obj
1795 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14
1796 )
1797 {
1798 typedef detail::member_function_ptr<
1799 15
1800 , RT
1801 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const
1802 > fp_type;
1803 return
1804 detail::expression::function_eval<
1805 fp_type
1806 , ClassA
1807 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
1808 >::make(
1809 fp_type(f)
1810 , obj
1811 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14
1812 );
1813 }
1814 template <
1815 typename RT
1816 , typename ClassT
1817 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14
1818 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14
1819 >
1820 inline
1821 typename detail::expression::function_eval<
1822 detail::member_function_ptr<
1823 15
1824 , RT
1825 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)
1826 >
1827 , ClassT
1828 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
1829 >::type const
1830 bind(
1831 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)
1832 , ClassT & obj
1833 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14
1834 )
1835 {
1836 typedef detail::member_function_ptr<
1837 15
1838 , RT
1839 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)
1840 > fp_type;
1841 return
1842 detail::expression::function_eval<
1843 fp_type
1844 , ClassT
1845 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
1846 >::make(
1847 fp_type(f)
1848 , obj
1849 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14
1850 );
1851 }
1852
1853
1854
1855
1856
1857
1858
1859 template <
1860 typename RT
1861 , typename ClassT
1862 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15
1863 , typename ClassA
1864 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15
1865 >
1866 inline
1867 typename detail::expression::function_eval<
1868 detail::member_function_ptr<
1869 16
1870 , RT
1871 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)
1872 >
1873 , ClassA
1874 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
1875 >::type const
1876 bind(
1877 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)
1878 , ClassA const & obj
1879 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15
1880 )
1881 {
1882 typedef detail::member_function_ptr<
1883 16
1884 , RT
1885 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)
1886 > fp_type;
1887 return
1888 detail::expression::function_eval<
1889 fp_type
1890 , ClassA
1891 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
1892 >::make(
1893 fp_type(f)
1894 , obj
1895 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15
1896 );
1897 }
1898 template <
1899 typename RT
1900 , typename ClassT
1901 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15
1902 , typename ClassA
1903 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15
1904 >
1905 inline
1906 typename detail::expression::function_eval<
1907 detail::member_function_ptr<
1908 16
1909 , RT
1910 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const
1911 >
1912 , ClassA
1913 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
1914 >::type const
1915 bind(
1916 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const
1917 , ClassA const & obj
1918 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15
1919 )
1920 {
1921 typedef detail::member_function_ptr<
1922 16
1923 , RT
1924 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const
1925 > fp_type;
1926 return
1927 detail::expression::function_eval<
1928 fp_type
1929 , ClassA
1930 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
1931 >::make(
1932 fp_type(f)
1933 , obj
1934 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15
1935 );
1936 }
1937 template <
1938 typename RT
1939 , typename ClassT
1940 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15
1941 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15
1942 >
1943 inline
1944 typename detail::expression::function_eval<
1945 detail::member_function_ptr<
1946 16
1947 , RT
1948 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)
1949 >
1950 , ClassT
1951 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
1952 >::type const
1953 bind(
1954 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)
1955 , ClassT & obj
1956 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15
1957 )
1958 {
1959 typedef detail::member_function_ptr<
1960 16
1961 , RT
1962 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)
1963 > fp_type;
1964 return
1965 detail::expression::function_eval<
1966 fp_type
1967 , ClassT
1968 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
1969 >::make(
1970 fp_type(f)
1971 , obj
1972 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15
1973 );
1974 }
1975
1976
1977
1978
1979
1980
1981
1982 template <
1983 typename RT
1984 , typename ClassT
1985 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16
1986 , typename ClassA
1987 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16
1988 >
1989 inline
1990 typename detail::expression::function_eval<
1991 detail::member_function_ptr<
1992 17
1993 , RT
1994 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)
1995 >
1996 , ClassA
1997 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
1998 >::type const
1999 bind(
2000 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)
2001 , ClassA const & obj
2002 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16
2003 )
2004 {
2005 typedef detail::member_function_ptr<
2006 17
2007 , RT
2008 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)
2009 > fp_type;
2010 return
2011 detail::expression::function_eval<
2012 fp_type
2013 , ClassA
2014 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
2015 >::make(
2016 fp_type(f)
2017 , obj
2018 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16
2019 );
2020 }
2021 template <
2022 typename RT
2023 , typename ClassT
2024 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16
2025 , typename ClassA
2026 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16
2027 >
2028 inline
2029 typename detail::expression::function_eval<
2030 detail::member_function_ptr<
2031 17
2032 , RT
2033 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const
2034 >
2035 , ClassA
2036 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
2037 >::type const
2038 bind(
2039 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const
2040 , ClassA const & obj
2041 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16
2042 )
2043 {
2044 typedef detail::member_function_ptr<
2045 17
2046 , RT
2047 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const
2048 > fp_type;
2049 return
2050 detail::expression::function_eval<
2051 fp_type
2052 , ClassA
2053 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
2054 >::make(
2055 fp_type(f)
2056 , obj
2057 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16
2058 );
2059 }
2060 template <
2061 typename RT
2062 , typename ClassT
2063 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16
2064 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16
2065 >
2066 inline
2067 typename detail::expression::function_eval<
2068 detail::member_function_ptr<
2069 17
2070 , RT
2071 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)
2072 >
2073 , ClassT
2074 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
2075 >::type const
2076 bind(
2077 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)
2078 , ClassT & obj
2079 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16
2080 )
2081 {
2082 typedef detail::member_function_ptr<
2083 17
2084 , RT
2085 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)
2086 > fp_type;
2087 return
2088 detail::expression::function_eval<
2089 fp_type
2090 , ClassT
2091 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
2092 >::make(
2093 fp_type(f)
2094 , obj
2095 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16
2096 );
2097 }
2098
2099
2100
2101
2102
2103
2104
2105 template <
2106 typename RT
2107 , typename ClassT
2108 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17
2109 , typename ClassA
2110 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17
2111 >
2112 inline
2113 typename detail::expression::function_eval<
2114 detail::member_function_ptr<
2115 18
2116 , RT
2117 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)
2118 >
2119 , ClassA
2120 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
2121 >::type const
2122 bind(
2123 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)
2124 , ClassA const & obj
2125 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17
2126 )
2127 {
2128 typedef detail::member_function_ptr<
2129 18
2130 , RT
2131 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)
2132 > fp_type;
2133 return
2134 detail::expression::function_eval<
2135 fp_type
2136 , ClassA
2137 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
2138 >::make(
2139 fp_type(f)
2140 , obj
2141 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17
2142 );
2143 }
2144 template <
2145 typename RT
2146 , typename ClassT
2147 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17
2148 , typename ClassA
2149 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17
2150 >
2151 inline
2152 typename detail::expression::function_eval<
2153 detail::member_function_ptr<
2154 18
2155 , RT
2156 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const
2157 >
2158 , ClassA
2159 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
2160 >::type const
2161 bind(
2162 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const
2163 , ClassA const & obj
2164 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17
2165 )
2166 {
2167 typedef detail::member_function_ptr<
2168 18
2169 , RT
2170 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const
2171 > fp_type;
2172 return
2173 detail::expression::function_eval<
2174 fp_type
2175 , ClassA
2176 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
2177 >::make(
2178 fp_type(f)
2179 , obj
2180 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17
2181 );
2182 }
2183 template <
2184 typename RT
2185 , typename ClassT
2186 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17
2187 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17
2188 >
2189 inline
2190 typename detail::expression::function_eval<
2191 detail::member_function_ptr<
2192 18
2193 , RT
2194 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)
2195 >
2196 , ClassT
2197 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
2198 >::type const
2199 bind(
2200 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)
2201 , ClassT & obj
2202 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17
2203 )
2204 {
2205 typedef detail::member_function_ptr<
2206 18
2207 , RT
2208 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)
2209 > fp_type;
2210 return
2211 detail::expression::function_eval<
2212 fp_type
2213 , ClassT
2214 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
2215 >::make(
2216 fp_type(f)
2217 , obj
2218 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17
2219 );
2220 }
2221
2222
2223
2224
2225
2226
2227
2228 template <
2229 typename RT
2230 , typename ClassT
2231 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18
2232 , typename ClassA
2233 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18
2234 >
2235 inline
2236 typename detail::expression::function_eval<
2237 detail::member_function_ptr<
2238 19
2239 , RT
2240 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)
2241 >
2242 , ClassA
2243 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
2244 >::type const
2245 bind(
2246 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)
2247 , ClassA const & obj
2248 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18
2249 )
2250 {
2251 typedef detail::member_function_ptr<
2252 19
2253 , RT
2254 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)
2255 > fp_type;
2256 return
2257 detail::expression::function_eval<
2258 fp_type
2259 , ClassA
2260 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
2261 >::make(
2262 fp_type(f)
2263 , obj
2264 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18
2265 );
2266 }
2267 template <
2268 typename RT
2269 , typename ClassT
2270 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18
2271 , typename ClassA
2272 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18
2273 >
2274 inline
2275 typename detail::expression::function_eval<
2276 detail::member_function_ptr<
2277 19
2278 , RT
2279 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const
2280 >
2281 , ClassA
2282 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
2283 >::type const
2284 bind(
2285 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const
2286 , ClassA const & obj
2287 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18
2288 )
2289 {
2290 typedef detail::member_function_ptr<
2291 19
2292 , RT
2293 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const
2294 > fp_type;
2295 return
2296 detail::expression::function_eval<
2297 fp_type
2298 , ClassA
2299 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
2300 >::make(
2301 fp_type(f)
2302 , obj
2303 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18
2304 );
2305 }
2306 template <
2307 typename RT
2308 , typename ClassT
2309 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18
2310 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18
2311 >
2312 inline
2313 typename detail::expression::function_eval<
2314 detail::member_function_ptr<
2315 19
2316 , RT
2317 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)
2318 >
2319 , ClassT
2320 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
2321 >::type const
2322 bind(
2323 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)
2324 , ClassT & obj
2325 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18
2326 )
2327 {
2328 typedef detail::member_function_ptr<
2329 19
2330 , RT
2331 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)
2332 > fp_type;
2333 return
2334 detail::expression::function_eval<
2335 fp_type
2336 , ClassT
2337 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
2338 >::make(
2339 fp_type(f)
2340 , obj
2341 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18
2342 );
2343 }
2344
2345
2346
2347
2348
2349
2350
2351 template <
2352 typename RT
2353 , typename ClassT
2354 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19
2355 , typename ClassA
2356 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19
2357 >
2358 inline
2359 typename detail::expression::function_eval<
2360 detail::member_function_ptr<
2361 20
2362 , RT
2363 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)
2364 >
2365 , ClassA
2366 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
2367 >::type const
2368 bind(
2369 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)
2370 , ClassA const & obj
2371 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19
2372 )
2373 {
2374 typedef detail::member_function_ptr<
2375 20
2376 , RT
2377 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)
2378 > fp_type;
2379 return
2380 detail::expression::function_eval<
2381 fp_type
2382 , ClassA
2383 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
2384 >::make(
2385 fp_type(f)
2386 , obj
2387 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19
2388 );
2389 }
2390 template <
2391 typename RT
2392 , typename ClassT
2393 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19
2394 , typename ClassA
2395 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19
2396 >
2397 inline
2398 typename detail::expression::function_eval<
2399 detail::member_function_ptr<
2400 20
2401 , RT
2402 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const
2403 >
2404 , ClassA
2405 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
2406 >::type const
2407 bind(
2408 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const
2409 , ClassA const & obj
2410 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19
2411 )
2412 {
2413 typedef detail::member_function_ptr<
2414 20
2415 , RT
2416 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const
2417 > fp_type;
2418 return
2419 detail::expression::function_eval<
2420 fp_type
2421 , ClassA
2422 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
2423 >::make(
2424 fp_type(f)
2425 , obj
2426 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19
2427 );
2428 }
2429 template <
2430 typename RT
2431 , typename ClassT
2432 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19
2433 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19
2434 >
2435 inline
2436 typename detail::expression::function_eval<
2437 detail::member_function_ptr<
2438 20
2439 , RT
2440 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)
2441 >
2442 , ClassT
2443 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
2444 >::type const
2445 bind(
2446 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)
2447 , ClassT & obj
2448 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19
2449 )
2450 {
2451 typedef detail::member_function_ptr<
2452 20
2453 , RT
2454 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)
2455 > fp_type;
2456 return
2457 detail::expression::function_eval<
2458 fp_type
2459 , ClassT
2460 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
2461 >::make(
2462 fp_type(f)
2463 , obj
2464 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19
2465 );
2466 }
2467
2468
2469
2470
2471
2472
2473
2474 template <
2475 typename RT
2476 , typename ClassT
2477 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20
2478 , typename ClassA
2479 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20
2480 >
2481 inline
2482 typename detail::expression::function_eval<
2483 detail::member_function_ptr<
2484 21
2485 , RT
2486 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)
2487 >
2488 , ClassA
2489 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20
2490 >::type const
2491 bind(
2492 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)
2493 , ClassA const & obj
2494 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20
2495 )
2496 {
2497 typedef detail::member_function_ptr<
2498 21
2499 , RT
2500 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)
2501 > fp_type;
2502 return
2503 detail::expression::function_eval<
2504 fp_type
2505 , ClassA
2506 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20
2507 >::make(
2508 fp_type(f)
2509 , obj
2510 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20
2511 );
2512 }
2513 template <
2514 typename RT
2515 , typename ClassT
2516 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20
2517 , typename ClassA
2518 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20
2519 >
2520 inline
2521 typename detail::expression::function_eval<
2522 detail::member_function_ptr<
2523 21
2524 , RT
2525 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const
2526 >
2527 , ClassA
2528 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20
2529 >::type const
2530 bind(
2531 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const
2532 , ClassA const & obj
2533 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20
2534 )
2535 {
2536 typedef detail::member_function_ptr<
2537 21
2538 , RT
2539 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const
2540 > fp_type;
2541 return
2542 detail::expression::function_eval<
2543 fp_type
2544 , ClassA
2545 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20
2546 >::make(
2547 fp_type(f)
2548 , obj
2549 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20
2550 );
2551 }
2552 template <
2553 typename RT
2554 , typename ClassT
2555 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20
2556 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20
2557 >
2558 inline
2559 typename detail::expression::function_eval<
2560 detail::member_function_ptr<
2561 21
2562 , RT
2563 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)
2564 >
2565 , ClassT
2566 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20
2567 >::type const
2568 bind(
2569 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)
2570 , ClassT & obj
2571 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20
2572 )
2573 {
2574 typedef detail::member_function_ptr<
2575 21
2576 , RT
2577 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)
2578 > fp_type;
2579 return
2580 detail::expression::function_eval<
2581 fp_type
2582 , ClassT
2583 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20
2584 >::make(
2585 fp_type(f)
2586 , obj
2587 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20
2588 );
2589 }
2590
2591
2592
2593
2594
2595
2596
2597 template <
2598 typename RT
2599 , typename ClassT
2600 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21
2601 , typename ClassA
2602 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21
2603 >
2604 inline
2605 typename detail::expression::function_eval<
2606 detail::member_function_ptr<
2607 22
2608 , RT
2609 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)
2610 >
2611 , ClassA
2612 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21
2613 >::type const
2614 bind(
2615 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)
2616 , ClassA const & obj
2617 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21
2618 )
2619 {
2620 typedef detail::member_function_ptr<
2621 22
2622 , RT
2623 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)
2624 > fp_type;
2625 return
2626 detail::expression::function_eval<
2627 fp_type
2628 , ClassA
2629 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21
2630 >::make(
2631 fp_type(f)
2632 , obj
2633 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21
2634 );
2635 }
2636 template <
2637 typename RT
2638 , typename ClassT
2639 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21
2640 , typename ClassA
2641 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21
2642 >
2643 inline
2644 typename detail::expression::function_eval<
2645 detail::member_function_ptr<
2646 22
2647 , RT
2648 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const
2649 >
2650 , ClassA
2651 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21
2652 >::type const
2653 bind(
2654 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const
2655 , ClassA const & obj
2656 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21
2657 )
2658 {
2659 typedef detail::member_function_ptr<
2660 22
2661 , RT
2662 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const
2663 > fp_type;
2664 return
2665 detail::expression::function_eval<
2666 fp_type
2667 , ClassA
2668 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21
2669 >::make(
2670 fp_type(f)
2671 , obj
2672 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21
2673 );
2674 }
2675 template <
2676 typename RT
2677 , typename ClassT
2678 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21
2679 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21
2680 >
2681 inline
2682 typename detail::expression::function_eval<
2683 detail::member_function_ptr<
2684 22
2685 , RT
2686 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)
2687 >
2688 , ClassT
2689 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21
2690 >::type const
2691 bind(
2692 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)
2693 , ClassT & obj
2694 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21
2695 )
2696 {
2697 typedef detail::member_function_ptr<
2698 22
2699 , RT
2700 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)
2701 > fp_type;
2702 return
2703 detail::expression::function_eval<
2704 fp_type
2705 , ClassT
2706 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21
2707 >::make(
2708 fp_type(f)
2709 , obj
2710 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21
2711 );
2712 }
2713
2714
2715
2716
2717
2718
2719
2720 template <
2721 typename RT
2722 , typename ClassT
2723 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22
2724 , typename ClassA
2725 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22
2726 >
2727 inline
2728 typename detail::expression::function_eval<
2729 detail::member_function_ptr<
2730 23
2731 , RT
2732 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)
2733 >
2734 , ClassA
2735 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22
2736 >::type const
2737 bind(
2738 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)
2739 , ClassA const & obj
2740 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22
2741 )
2742 {
2743 typedef detail::member_function_ptr<
2744 23
2745 , RT
2746 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)
2747 > fp_type;
2748 return
2749 detail::expression::function_eval<
2750 fp_type
2751 , ClassA
2752 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22
2753 >::make(
2754 fp_type(f)
2755 , obj
2756 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22
2757 );
2758 }
2759 template <
2760 typename RT
2761 , typename ClassT
2762 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22
2763 , typename ClassA
2764 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22
2765 >
2766 inline
2767 typename detail::expression::function_eval<
2768 detail::member_function_ptr<
2769 23
2770 , RT
2771 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const
2772 >
2773 , ClassA
2774 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22
2775 >::type const
2776 bind(
2777 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const
2778 , ClassA const & obj
2779 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22
2780 )
2781 {
2782 typedef detail::member_function_ptr<
2783 23
2784 , RT
2785 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const
2786 > fp_type;
2787 return
2788 detail::expression::function_eval<
2789 fp_type
2790 , ClassA
2791 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22
2792 >::make(
2793 fp_type(f)
2794 , obj
2795 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22
2796 );
2797 }
2798 template <
2799 typename RT
2800 , typename ClassT
2801 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22
2802 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22
2803 >
2804 inline
2805 typename detail::expression::function_eval<
2806 detail::member_function_ptr<
2807 23
2808 , RT
2809 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)
2810 >
2811 , ClassT
2812 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22
2813 >::type const
2814 bind(
2815 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)
2816 , ClassT & obj
2817 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22
2818 )
2819 {
2820 typedef detail::member_function_ptr<
2821 23
2822 , RT
2823 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)
2824 > fp_type;
2825 return
2826 detail::expression::function_eval<
2827 fp_type
2828 , ClassT
2829 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22
2830 >::make(
2831 fp_type(f)
2832 , obj
2833 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22
2834 );
2835 }
2836
2837
2838
2839
2840
2841
2842
2843 template <
2844 typename RT
2845 , typename ClassT
2846 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23
2847 , typename ClassA
2848 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23
2849 >
2850 inline
2851 typename detail::expression::function_eval<
2852 detail::member_function_ptr<
2853 24
2854 , RT
2855 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)
2856 >
2857 , ClassA
2858 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23
2859 >::type const
2860 bind(
2861 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)
2862 , ClassA const & obj
2863 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23
2864 )
2865 {
2866 typedef detail::member_function_ptr<
2867 24
2868 , RT
2869 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)
2870 > fp_type;
2871 return
2872 detail::expression::function_eval<
2873 fp_type
2874 , ClassA
2875 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23
2876 >::make(
2877 fp_type(f)
2878 , obj
2879 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23
2880 );
2881 }
2882 template <
2883 typename RT
2884 , typename ClassT
2885 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23
2886 , typename ClassA
2887 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23
2888 >
2889 inline
2890 typename detail::expression::function_eval<
2891 detail::member_function_ptr<
2892 24
2893 , RT
2894 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const
2895 >
2896 , ClassA
2897 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23
2898 >::type const
2899 bind(
2900 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const
2901 , ClassA const & obj
2902 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23
2903 )
2904 {
2905 typedef detail::member_function_ptr<
2906 24
2907 , RT
2908 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const
2909 > fp_type;
2910 return
2911 detail::expression::function_eval<
2912 fp_type
2913 , ClassA
2914 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23
2915 >::make(
2916 fp_type(f)
2917 , obj
2918 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23
2919 );
2920 }
2921 template <
2922 typename RT
2923 , typename ClassT
2924 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23
2925 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23
2926 >
2927 inline
2928 typename detail::expression::function_eval<
2929 detail::member_function_ptr<
2930 24
2931 , RT
2932 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)
2933 >
2934 , ClassT
2935 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23
2936 >::type const
2937 bind(
2938 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)
2939 , ClassT & obj
2940 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23
2941 )
2942 {
2943 typedef detail::member_function_ptr<
2944 24
2945 , RT
2946 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)
2947 > fp_type;
2948 return
2949 detail::expression::function_eval<
2950 fp_type
2951 , ClassT
2952 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23
2953 >::make(
2954 fp_type(f)
2955 , obj
2956 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23
2957 );
2958 }
2959
2960
2961
2962
2963
2964
2965
2966 template <
2967 typename RT
2968 , typename ClassT
2969 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24
2970 , typename ClassA
2971 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24
2972 >
2973 inline
2974 typename detail::expression::function_eval<
2975 detail::member_function_ptr<
2976 25
2977 , RT
2978 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)
2979 >
2980 , ClassA
2981 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24
2982 >::type const
2983 bind(
2984 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)
2985 , ClassA const & obj
2986 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24
2987 )
2988 {
2989 typedef detail::member_function_ptr<
2990 25
2991 , RT
2992 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)
2993 > fp_type;
2994 return
2995 detail::expression::function_eval<
2996 fp_type
2997 , ClassA
2998 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24
2999 >::make(
3000 fp_type(f)
3001 , obj
3002 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24
3003 );
3004 }
3005 template <
3006 typename RT
3007 , typename ClassT
3008 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24
3009 , typename ClassA
3010 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24
3011 >
3012 inline
3013 typename detail::expression::function_eval<
3014 detail::member_function_ptr<
3015 25
3016 , RT
3017 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const
3018 >
3019 , ClassA
3020 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24
3021 >::type const
3022 bind(
3023 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const
3024 , ClassA const & obj
3025 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24
3026 )
3027 {
3028 typedef detail::member_function_ptr<
3029 25
3030 , RT
3031 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const
3032 > fp_type;
3033 return
3034 detail::expression::function_eval<
3035 fp_type
3036 , ClassA
3037 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24
3038 >::make(
3039 fp_type(f)
3040 , obj
3041 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24
3042 );
3043 }
3044 template <
3045 typename RT
3046 , typename ClassT
3047 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24
3048 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24
3049 >
3050 inline
3051 typename detail::expression::function_eval<
3052 detail::member_function_ptr<
3053 25
3054 , RT
3055 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)
3056 >
3057 , ClassT
3058 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24
3059 >::type const
3060 bind(
3061 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)
3062 , ClassT & obj
3063 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24
3064 )
3065 {
3066 typedef detail::member_function_ptr<
3067 25
3068 , RT
3069 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)
3070 > fp_type;
3071 return
3072 detail::expression::function_eval<
3073 fp_type
3074 , ClassT
3075 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24
3076 >::make(
3077 fp_type(f)
3078 , obj
3079 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24
3080 );
3081 }
3082
3083
3084
3085
3086
3087
3088
3089 template <
3090 typename RT
3091 , typename ClassT
3092 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25
3093 , typename ClassA
3094 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25
3095 >
3096 inline
3097 typename detail::expression::function_eval<
3098 detail::member_function_ptr<
3099 26
3100 , RT
3101 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25)
3102 >
3103 , ClassA
3104 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25
3105 >::type const
3106 bind(
3107 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25)
3108 , ClassA const & obj
3109 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25
3110 )
3111 {
3112 typedef detail::member_function_ptr<
3113 26
3114 , RT
3115 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25)
3116 > fp_type;
3117 return
3118 detail::expression::function_eval<
3119 fp_type
3120 , ClassA
3121 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25
3122 >::make(
3123 fp_type(f)
3124 , obj
3125 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25
3126 );
3127 }
3128 template <
3129 typename RT
3130 , typename ClassT
3131 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25
3132 , typename ClassA
3133 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25
3134 >
3135 inline
3136 typename detail::expression::function_eval<
3137 detail::member_function_ptr<
3138 26
3139 , RT
3140 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25) const
3141 >
3142 , ClassA
3143 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25
3144 >::type const
3145 bind(
3146 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25) const
3147 , ClassA const & obj
3148 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25
3149 )
3150 {
3151 typedef detail::member_function_ptr<
3152 26
3153 , RT
3154 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25) const
3155 > fp_type;
3156 return
3157 detail::expression::function_eval<
3158 fp_type
3159 , ClassA
3160 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25
3161 >::make(
3162 fp_type(f)
3163 , obj
3164 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25
3165 );
3166 }
3167 template <
3168 typename RT
3169 , typename ClassT
3170 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25
3171 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25
3172 >
3173 inline
3174 typename detail::expression::function_eval<
3175 detail::member_function_ptr<
3176 26
3177 , RT
3178 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25)
3179 >
3180 , ClassT
3181 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25
3182 >::type const
3183 bind(
3184 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25)
3185 , ClassT & obj
3186 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25
3187 )
3188 {
3189 typedef detail::member_function_ptr<
3190 26
3191 , RT
3192 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25)
3193 > fp_type;
3194 return
3195 detail::expression::function_eval<
3196 fp_type
3197 , ClassT
3198 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25
3199 >::make(
3200 fp_type(f)
3201 , obj
3202 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25
3203 );
3204 }
3205
3206
3207
3208
3209
3210
3211
3212 template <
3213 typename RT
3214 , typename ClassT
3215 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26
3216 , typename ClassA
3217 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26
3218 >
3219 inline
3220 typename detail::expression::function_eval<
3221 detail::member_function_ptr<
3222 27
3223 , RT
3224 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26)
3225 >
3226 , ClassA
3227 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26
3228 >::type const
3229 bind(
3230 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26)
3231 , ClassA const & obj
3232 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26
3233 )
3234 {
3235 typedef detail::member_function_ptr<
3236 27
3237 , RT
3238 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26)
3239 > fp_type;
3240 return
3241 detail::expression::function_eval<
3242 fp_type
3243 , ClassA
3244 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26
3245 >::make(
3246 fp_type(f)
3247 , obj
3248 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26
3249 );
3250 }
3251 template <
3252 typename RT
3253 , typename ClassT
3254 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26
3255 , typename ClassA
3256 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26
3257 >
3258 inline
3259 typename detail::expression::function_eval<
3260 detail::member_function_ptr<
3261 27
3262 , RT
3263 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26) const
3264 >
3265 , ClassA
3266 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26
3267 >::type const
3268 bind(
3269 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26) const
3270 , ClassA const & obj
3271 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26
3272 )
3273 {
3274 typedef detail::member_function_ptr<
3275 27
3276 , RT
3277 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26) const
3278 > fp_type;
3279 return
3280 detail::expression::function_eval<
3281 fp_type
3282 , ClassA
3283 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26
3284 >::make(
3285 fp_type(f)
3286 , obj
3287 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26
3288 );
3289 }
3290 template <
3291 typename RT
3292 , typename ClassT
3293 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26
3294 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26
3295 >
3296 inline
3297 typename detail::expression::function_eval<
3298 detail::member_function_ptr<
3299 27
3300 , RT
3301 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26)
3302 >
3303 , ClassT
3304 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26
3305 >::type const
3306 bind(
3307 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26)
3308 , ClassT & obj
3309 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26
3310 )
3311 {
3312 typedef detail::member_function_ptr<
3313 27
3314 , RT
3315 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26)
3316 > fp_type;
3317 return
3318 detail::expression::function_eval<
3319 fp_type
3320 , ClassT
3321 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26
3322 >::make(
3323 fp_type(f)
3324 , obj
3325 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26
3326 );
3327 }
3328
3329
3330
3331
3332
3333
3334
3335 template <
3336 typename RT
3337 , typename ClassT
3338 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27
3339 , typename ClassA
3340 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27
3341 >
3342 inline
3343 typename detail::expression::function_eval<
3344 detail::member_function_ptr<
3345 28
3346 , RT
3347 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27)
3348 >
3349 , ClassA
3350 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27
3351 >::type const
3352 bind(
3353 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27)
3354 , ClassA const & obj
3355 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27
3356 )
3357 {
3358 typedef detail::member_function_ptr<
3359 28
3360 , RT
3361 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27)
3362 > fp_type;
3363 return
3364 detail::expression::function_eval<
3365 fp_type
3366 , ClassA
3367 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27
3368 >::make(
3369 fp_type(f)
3370 , obj
3371 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27
3372 );
3373 }
3374 template <
3375 typename RT
3376 , typename ClassT
3377 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27
3378 , typename ClassA
3379 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27
3380 >
3381 inline
3382 typename detail::expression::function_eval<
3383 detail::member_function_ptr<
3384 28
3385 , RT
3386 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27) const
3387 >
3388 , ClassA
3389 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27
3390 >::type const
3391 bind(
3392 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27) const
3393 , ClassA const & obj
3394 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27
3395 )
3396 {
3397 typedef detail::member_function_ptr<
3398 28
3399 , RT
3400 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27) const
3401 > fp_type;
3402 return
3403 detail::expression::function_eval<
3404 fp_type
3405 , ClassA
3406 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27
3407 >::make(
3408 fp_type(f)
3409 , obj
3410 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27
3411 );
3412 }
3413 template <
3414 typename RT
3415 , typename ClassT
3416 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27
3417 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27
3418 >
3419 inline
3420 typename detail::expression::function_eval<
3421 detail::member_function_ptr<
3422 28
3423 , RT
3424 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27)
3425 >
3426 , ClassT
3427 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27
3428 >::type const
3429 bind(
3430 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27)
3431 , ClassT & obj
3432 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27
3433 )
3434 {
3435 typedef detail::member_function_ptr<
3436 28
3437 , RT
3438 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27)
3439 > fp_type;
3440 return
3441 detail::expression::function_eval<
3442 fp_type
3443 , ClassT
3444 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27
3445 >::make(
3446 fp_type(f)
3447 , obj
3448 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27
3449 );
3450 }
3451
3452
3453
3454
3455
3456
3457
3458 template <
3459 typename RT
3460 , typename ClassT
3461 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28
3462 , typename ClassA
3463 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28
3464 >
3465 inline
3466 typename detail::expression::function_eval<
3467 detail::member_function_ptr<
3468 29
3469 , RT
3470 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28)
3471 >
3472 , ClassA
3473 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28
3474 >::type const
3475 bind(
3476 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28)
3477 , ClassA const & obj
3478 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28
3479 )
3480 {
3481 typedef detail::member_function_ptr<
3482 29
3483 , RT
3484 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28)
3485 > fp_type;
3486 return
3487 detail::expression::function_eval<
3488 fp_type
3489 , ClassA
3490 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28
3491 >::make(
3492 fp_type(f)
3493 , obj
3494 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28
3495 );
3496 }
3497 template <
3498 typename RT
3499 , typename ClassT
3500 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28
3501 , typename ClassA
3502 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28
3503 >
3504 inline
3505 typename detail::expression::function_eval<
3506 detail::member_function_ptr<
3507 29
3508 , RT
3509 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28) const
3510 >
3511 , ClassA
3512 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28
3513 >::type const
3514 bind(
3515 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28) const
3516 , ClassA const & obj
3517 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28
3518 )
3519 {
3520 typedef detail::member_function_ptr<
3521 29
3522 , RT
3523 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28) const
3524 > fp_type;
3525 return
3526 detail::expression::function_eval<
3527 fp_type
3528 , ClassA
3529 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28
3530 >::make(
3531 fp_type(f)
3532 , obj
3533 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28
3534 );
3535 }
3536 template <
3537 typename RT
3538 , typename ClassT
3539 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28
3540 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28
3541 >
3542 inline
3543 typename detail::expression::function_eval<
3544 detail::member_function_ptr<
3545 29
3546 , RT
3547 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28)
3548 >
3549 , ClassT
3550 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28
3551 >::type const
3552 bind(
3553 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28)
3554 , ClassT & obj
3555 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28
3556 )
3557 {
3558 typedef detail::member_function_ptr<
3559 29
3560 , RT
3561 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28)
3562 > fp_type;
3563 return
3564 detail::expression::function_eval<
3565 fp_type
3566 , ClassT
3567 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28
3568 >::make(
3569 fp_type(f)
3570 , obj
3571 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28
3572 );
3573 }