File indexing completed on 2025-01-18 09:50:20
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036 template<typename Tag, typename Arg0>
0037 struct basic_expr<Tag, term<Arg0>, 0>
0038 {
0039 typedef Tag proto_tag;
0040 static const long proto_arity_c = 0;
0041 typedef mpl::long_<0 > proto_arity;
0042 typedef basic_expr proto_base_expr;
0043 typedef term<Arg0> proto_args;
0044 typedef basic_expr proto_grammar;
0045 typedef basic_default_domain proto_domain;
0046 typedef default_generator proto_generator;
0047 typedef proto::tag::proto_expr<Tag, proto_domain> fusion_tag;
0048 typedef basic_expr proto_derived_expr;
0049 typedef void proto_is_expr_;
0050 typedef Arg0 proto_child0; proto_child0 child0;
0051 typedef void proto_child1; typedef void proto_child2; typedef void proto_child3; typedef void proto_child4; typedef void proto_child5; typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
0052
0053
0054 BOOST_FORCEINLINE
0055 basic_expr const &proto_base() const
0056 {
0057 return *this;
0058 }
0059
0060
0061 BOOST_FORCEINLINE
0062 basic_expr &proto_base()
0063 {
0064 return *this;
0065 }
0066
0067
0068
0069 template<typename A0>
0070 BOOST_FORCEINLINE
0071 static basic_expr const make(A0 &a0)
0072 {
0073 return detail::make_terminal(a0, static_cast<basic_expr *>(0), static_cast<proto_args *>(0));
0074 }
0075
0076
0077 template<typename A0>
0078 BOOST_FORCEINLINE
0079 static basic_expr const make(A0 const &a0)
0080 {
0081 return detail::make_terminal(a0, static_cast<basic_expr *>(0), static_cast<proto_args *>(0));
0082 }
0083
0084
0085 typedef detail::not_a_valid_type address_of_hack_type_;
0086 };
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114 template<typename Tag , typename Arg0>
0115 struct basic_expr<Tag, list1<Arg0>, 1 >
0116 {
0117 typedef Tag proto_tag;
0118 static const long proto_arity_c = 1;
0119 typedef mpl::long_<1 > proto_arity;
0120 typedef basic_expr proto_base_expr;
0121 typedef list1<Arg0> proto_args;
0122 typedef basic_expr proto_grammar;
0123 typedef basic_default_domain proto_domain;
0124 typedef default_generator proto_generator;
0125 typedef proto::tag::proto_expr<Tag, proto_domain> fusion_tag;
0126 typedef basic_expr proto_derived_expr;
0127 typedef void proto_is_expr_;
0128 typedef Arg0 proto_child0; proto_child0 child0;
0129 typedef void proto_child1; typedef void proto_child2; typedef void proto_child3; typedef void proto_child4; typedef void proto_child5; typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
0130
0131
0132 BOOST_FORCEINLINE
0133 basic_expr const &proto_base() const
0134 {
0135 return *this;
0136 }
0137
0138
0139 BOOST_FORCEINLINE
0140 basic_expr &proto_base()
0141 {
0142 return *this;
0143 }
0144
0145
0146
0147 template<typename A0>
0148 BOOST_FORCEINLINE
0149 static basic_expr const make(A0 const &a0)
0150 {
0151 basic_expr that = {a0};
0152 return that;
0153 }
0154
0155
0156
0157 typedef typename detail::address_of_hack<Tag, proto_child0>::type address_of_hack_type_;
0158
0159
0160
0161
0162
0163
0164
0165 BOOST_FORCEINLINE
0166 operator address_of_hack_type_() const
0167 {
0168 return boost::addressof(this->child0);
0169 }
0170 };
0171
0172
0173
0174
0175
0176
0177
0178
0179
0180
0181
0182
0183
0184
0185
0186
0187
0188
0189
0190
0191
0192
0193
0194
0195
0196
0197
0198 template<typename Tag , typename Arg0 , typename Arg1>
0199 struct basic_expr<Tag, list2<Arg0 , Arg1>, 2 >
0200 {
0201 typedef Tag proto_tag;
0202 static const long proto_arity_c = 2;
0203 typedef mpl::long_<2 > proto_arity;
0204 typedef basic_expr proto_base_expr;
0205 typedef list2<Arg0 , Arg1> proto_args;
0206 typedef basic_expr proto_grammar;
0207 typedef basic_default_domain proto_domain;
0208 typedef default_generator proto_generator;
0209 typedef proto::tag::proto_expr<Tag, proto_domain> fusion_tag;
0210 typedef basic_expr proto_derived_expr;
0211 typedef void proto_is_expr_;
0212 typedef Arg0 proto_child0; proto_child0 child0; typedef Arg1 proto_child1; proto_child1 child1;
0213 typedef void proto_child2; typedef void proto_child3; typedef void proto_child4; typedef void proto_child5; typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
0214
0215
0216 BOOST_FORCEINLINE
0217 basic_expr const &proto_base() const
0218 {
0219 return *this;
0220 }
0221
0222
0223 BOOST_FORCEINLINE
0224 basic_expr &proto_base()
0225 {
0226 return *this;
0227 }
0228
0229
0230
0231 template<typename A0 , typename A1>
0232 BOOST_FORCEINLINE
0233 static basic_expr const make(A0 const &a0 , A1 const &a1)
0234 {
0235 basic_expr that = {a0 , a1};
0236 return that;
0237 }
0238
0239
0240 typedef detail::not_a_valid_type address_of_hack_type_;
0241 };
0242
0243
0244
0245
0246
0247
0248
0249
0250
0251
0252
0253
0254
0255
0256
0257
0258
0259
0260
0261
0262
0263
0264
0265
0266
0267
0268
0269 template<typename Tag , typename Arg0 , typename Arg1 , typename Arg2>
0270 struct basic_expr<Tag, list3<Arg0 , Arg1 , Arg2>, 3 >
0271 {
0272 typedef Tag proto_tag;
0273 static const long proto_arity_c = 3;
0274 typedef mpl::long_<3 > proto_arity;
0275 typedef basic_expr proto_base_expr;
0276 typedef list3<Arg0 , Arg1 , Arg2> proto_args;
0277 typedef basic_expr proto_grammar;
0278 typedef basic_default_domain proto_domain;
0279 typedef default_generator proto_generator;
0280 typedef proto::tag::proto_expr<Tag, proto_domain> fusion_tag;
0281 typedef basic_expr proto_derived_expr;
0282 typedef void proto_is_expr_;
0283 typedef Arg0 proto_child0; proto_child0 child0; typedef Arg1 proto_child1; proto_child1 child1; typedef Arg2 proto_child2; proto_child2 child2;
0284 typedef void proto_child3; typedef void proto_child4; typedef void proto_child5; typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
0285
0286
0287 BOOST_FORCEINLINE
0288 basic_expr const &proto_base() const
0289 {
0290 return *this;
0291 }
0292
0293
0294 BOOST_FORCEINLINE
0295 basic_expr &proto_base()
0296 {
0297 return *this;
0298 }
0299
0300
0301
0302 template<typename A0 , typename A1 , typename A2>
0303 BOOST_FORCEINLINE
0304 static basic_expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2)
0305 {
0306 basic_expr that = {a0 , a1 , a2};
0307 return that;
0308 }
0309
0310
0311 typedef detail::not_a_valid_type address_of_hack_type_;
0312 };
0313
0314
0315
0316
0317
0318
0319
0320
0321
0322
0323
0324
0325
0326
0327
0328
0329
0330
0331
0332
0333
0334
0335
0336
0337
0338
0339
0340 template<typename Tag , typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3>
0341 struct basic_expr<Tag, list4<Arg0 , Arg1 , Arg2 , Arg3>, 4 >
0342 {
0343 typedef Tag proto_tag;
0344 static const long proto_arity_c = 4;
0345 typedef mpl::long_<4 > proto_arity;
0346 typedef basic_expr proto_base_expr;
0347 typedef list4<Arg0 , Arg1 , Arg2 , Arg3> proto_args;
0348 typedef basic_expr proto_grammar;
0349 typedef basic_default_domain proto_domain;
0350 typedef default_generator proto_generator;
0351 typedef proto::tag::proto_expr<Tag, proto_domain> fusion_tag;
0352 typedef basic_expr proto_derived_expr;
0353 typedef void proto_is_expr_;
0354 typedef Arg0 proto_child0; proto_child0 child0; typedef Arg1 proto_child1; proto_child1 child1; typedef Arg2 proto_child2; proto_child2 child2; typedef Arg3 proto_child3; proto_child3 child3;
0355 typedef void proto_child4; typedef void proto_child5; typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
0356
0357
0358 BOOST_FORCEINLINE
0359 basic_expr const &proto_base() const
0360 {
0361 return *this;
0362 }
0363
0364
0365 BOOST_FORCEINLINE
0366 basic_expr &proto_base()
0367 {
0368 return *this;
0369 }
0370
0371
0372
0373 template<typename A0 , typename A1 , typename A2 , typename A3>
0374 BOOST_FORCEINLINE
0375 static basic_expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3)
0376 {
0377 basic_expr that = {a0 , a1 , a2 , a3};
0378 return that;
0379 }
0380
0381
0382 typedef detail::not_a_valid_type address_of_hack_type_;
0383 };
0384
0385
0386
0387
0388
0389
0390
0391
0392
0393
0394
0395
0396
0397
0398
0399
0400
0401
0402
0403
0404
0405
0406
0407
0408
0409
0410
0411 template<typename Tag , typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4>
0412 struct basic_expr<Tag, list5<Arg0 , Arg1 , Arg2 , Arg3 , Arg4>, 5 >
0413 {
0414 typedef Tag proto_tag;
0415 static const long proto_arity_c = 5;
0416 typedef mpl::long_<5 > proto_arity;
0417 typedef basic_expr proto_base_expr;
0418 typedef list5<Arg0 , Arg1 , Arg2 , Arg3 , Arg4> proto_args;
0419 typedef basic_expr proto_grammar;
0420 typedef basic_default_domain proto_domain;
0421 typedef default_generator proto_generator;
0422 typedef proto::tag::proto_expr<Tag, proto_domain> fusion_tag;
0423 typedef basic_expr proto_derived_expr;
0424 typedef void proto_is_expr_;
0425 typedef Arg0 proto_child0; proto_child0 child0; typedef Arg1 proto_child1; proto_child1 child1; typedef Arg2 proto_child2; proto_child2 child2; typedef Arg3 proto_child3; proto_child3 child3; typedef Arg4 proto_child4; proto_child4 child4;
0426 typedef void proto_child5; typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
0427
0428
0429 BOOST_FORCEINLINE
0430 basic_expr const &proto_base() const
0431 {
0432 return *this;
0433 }
0434
0435
0436 BOOST_FORCEINLINE
0437 basic_expr &proto_base()
0438 {
0439 return *this;
0440 }
0441
0442
0443
0444 template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
0445 BOOST_FORCEINLINE
0446 static basic_expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4)
0447 {
0448 basic_expr that = {a0 , a1 , a2 , a3 , a4};
0449 return that;
0450 }
0451
0452
0453 typedef detail::not_a_valid_type address_of_hack_type_;
0454 };
0455
0456
0457
0458
0459
0460
0461
0462
0463
0464
0465
0466
0467
0468
0469
0470
0471
0472
0473
0474
0475
0476
0477
0478
0479
0480
0481
0482 template<typename Tag , typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5>
0483 struct basic_expr<Tag, list6<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5>, 6 >
0484 {
0485 typedef Tag proto_tag;
0486 static const long proto_arity_c = 6;
0487 typedef mpl::long_<6 > proto_arity;
0488 typedef basic_expr proto_base_expr;
0489 typedef list6<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5> proto_args;
0490 typedef basic_expr proto_grammar;
0491 typedef basic_default_domain proto_domain;
0492 typedef default_generator proto_generator;
0493 typedef proto::tag::proto_expr<Tag, proto_domain> fusion_tag;
0494 typedef basic_expr proto_derived_expr;
0495 typedef void proto_is_expr_;
0496 typedef Arg0 proto_child0; proto_child0 child0; typedef Arg1 proto_child1; proto_child1 child1; typedef Arg2 proto_child2; proto_child2 child2; typedef Arg3 proto_child3; proto_child3 child3; typedef Arg4 proto_child4; proto_child4 child4; typedef Arg5 proto_child5; proto_child5 child5;
0497 typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
0498
0499
0500 BOOST_FORCEINLINE
0501 basic_expr const &proto_base() const
0502 {
0503 return *this;
0504 }
0505
0506
0507 BOOST_FORCEINLINE
0508 basic_expr &proto_base()
0509 {
0510 return *this;
0511 }
0512
0513
0514
0515 template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
0516 BOOST_FORCEINLINE
0517 static basic_expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5)
0518 {
0519 basic_expr that = {a0 , a1 , a2 , a3 , a4 , a5};
0520 return that;
0521 }
0522
0523
0524 typedef detail::not_a_valid_type address_of_hack_type_;
0525 };
0526
0527
0528
0529
0530
0531
0532
0533
0534
0535
0536
0537
0538
0539
0540
0541
0542
0543
0544
0545
0546
0547
0548
0549
0550
0551
0552
0553 template<typename Tag , typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6>
0554 struct basic_expr<Tag, list7<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6>, 7 >
0555 {
0556 typedef Tag proto_tag;
0557 static const long proto_arity_c = 7;
0558 typedef mpl::long_<7 > proto_arity;
0559 typedef basic_expr proto_base_expr;
0560 typedef list7<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6> proto_args;
0561 typedef basic_expr proto_grammar;
0562 typedef basic_default_domain proto_domain;
0563 typedef default_generator proto_generator;
0564 typedef proto::tag::proto_expr<Tag, proto_domain> fusion_tag;
0565 typedef basic_expr proto_derived_expr;
0566 typedef void proto_is_expr_;
0567 typedef Arg0 proto_child0; proto_child0 child0; typedef Arg1 proto_child1; proto_child1 child1; typedef Arg2 proto_child2; proto_child2 child2; typedef Arg3 proto_child3; proto_child3 child3; typedef Arg4 proto_child4; proto_child4 child4; typedef Arg5 proto_child5; proto_child5 child5; typedef Arg6 proto_child6; proto_child6 child6;
0568 typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
0569
0570
0571 BOOST_FORCEINLINE
0572 basic_expr const &proto_base() const
0573 {
0574 return *this;
0575 }
0576
0577
0578 BOOST_FORCEINLINE
0579 basic_expr &proto_base()
0580 {
0581 return *this;
0582 }
0583
0584
0585
0586 template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
0587 BOOST_FORCEINLINE
0588 static basic_expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6)
0589 {
0590 basic_expr that = {a0 , a1 , a2 , a3 , a4 , a5 , a6};
0591 return that;
0592 }
0593
0594
0595 typedef detail::not_a_valid_type address_of_hack_type_;
0596 };
0597
0598
0599
0600
0601
0602
0603
0604
0605
0606
0607
0608
0609
0610
0611
0612
0613
0614
0615
0616
0617
0618
0619
0620
0621
0622
0623
0624 template<typename Tag , typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7>
0625 struct basic_expr<Tag, list8<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6 , Arg7>, 8 >
0626 {
0627 typedef Tag proto_tag;
0628 static const long proto_arity_c = 8;
0629 typedef mpl::long_<8 > proto_arity;
0630 typedef basic_expr proto_base_expr;
0631 typedef list8<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6 , Arg7> proto_args;
0632 typedef basic_expr proto_grammar;
0633 typedef basic_default_domain proto_domain;
0634 typedef default_generator proto_generator;
0635 typedef proto::tag::proto_expr<Tag, proto_domain> fusion_tag;
0636 typedef basic_expr proto_derived_expr;
0637 typedef void proto_is_expr_;
0638 typedef Arg0 proto_child0; proto_child0 child0; typedef Arg1 proto_child1; proto_child1 child1; typedef Arg2 proto_child2; proto_child2 child2; typedef Arg3 proto_child3; proto_child3 child3; typedef Arg4 proto_child4; proto_child4 child4; typedef Arg5 proto_child5; proto_child5 child5; typedef Arg6 proto_child6; proto_child6 child6; typedef Arg7 proto_child7; proto_child7 child7;
0639 typedef void proto_child8; typedef void proto_child9;
0640
0641
0642 BOOST_FORCEINLINE
0643 basic_expr const &proto_base() const
0644 {
0645 return *this;
0646 }
0647
0648
0649 BOOST_FORCEINLINE
0650 basic_expr &proto_base()
0651 {
0652 return *this;
0653 }
0654
0655
0656
0657 template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
0658 BOOST_FORCEINLINE
0659 static basic_expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7)
0660 {
0661 basic_expr that = {a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7};
0662 return that;
0663 }
0664
0665
0666 typedef detail::not_a_valid_type address_of_hack_type_;
0667 };
0668
0669
0670
0671
0672
0673
0674
0675
0676
0677
0678
0679
0680
0681
0682
0683
0684
0685
0686
0687
0688
0689
0690
0691
0692
0693
0694
0695 template<typename Tag , typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 , typename Arg8>
0696 struct basic_expr<Tag, list9<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6 , Arg7 , Arg8>, 9 >
0697 {
0698 typedef Tag proto_tag;
0699 static const long proto_arity_c = 9;
0700 typedef mpl::long_<9 > proto_arity;
0701 typedef basic_expr proto_base_expr;
0702 typedef list9<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6 , Arg7 , Arg8> proto_args;
0703 typedef basic_expr proto_grammar;
0704 typedef basic_default_domain proto_domain;
0705 typedef default_generator proto_generator;
0706 typedef proto::tag::proto_expr<Tag, proto_domain> fusion_tag;
0707 typedef basic_expr proto_derived_expr;
0708 typedef void proto_is_expr_;
0709 typedef Arg0 proto_child0; proto_child0 child0; typedef Arg1 proto_child1; proto_child1 child1; typedef Arg2 proto_child2; proto_child2 child2; typedef Arg3 proto_child3; proto_child3 child3; typedef Arg4 proto_child4; proto_child4 child4; typedef Arg5 proto_child5; proto_child5 child5; typedef Arg6 proto_child6; proto_child6 child6; typedef Arg7 proto_child7; proto_child7 child7; typedef Arg8 proto_child8; proto_child8 child8;
0710 typedef void proto_child9;
0711
0712
0713 BOOST_FORCEINLINE
0714 basic_expr const &proto_base() const
0715 {
0716 return *this;
0717 }
0718
0719
0720 BOOST_FORCEINLINE
0721 basic_expr &proto_base()
0722 {
0723 return *this;
0724 }
0725
0726
0727
0728 template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
0729 BOOST_FORCEINLINE
0730 static basic_expr const make(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)
0731 {
0732 basic_expr that = {a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8};
0733 return that;
0734 }
0735
0736
0737 typedef detail::not_a_valid_type address_of_hack_type_;
0738 };
0739
0740
0741
0742
0743
0744
0745
0746
0747
0748
0749
0750
0751
0752
0753
0754
0755
0756
0757
0758
0759
0760
0761
0762
0763
0764
0765
0766 template<typename Tag , typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 , typename Arg8 , typename Arg9>
0767 struct basic_expr<Tag, list10<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6 , Arg7 , Arg8 , Arg9>, 10 >
0768 {
0769 typedef Tag proto_tag;
0770 static const long proto_arity_c = 10;
0771 typedef mpl::long_<10 > proto_arity;
0772 typedef basic_expr proto_base_expr;
0773 typedef list10<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6 , Arg7 , Arg8 , Arg9> proto_args;
0774 typedef basic_expr proto_grammar;
0775 typedef basic_default_domain proto_domain;
0776 typedef default_generator proto_generator;
0777 typedef proto::tag::proto_expr<Tag, proto_domain> fusion_tag;
0778 typedef basic_expr proto_derived_expr;
0779 typedef void proto_is_expr_;
0780 typedef Arg0 proto_child0; proto_child0 child0; typedef Arg1 proto_child1; proto_child1 child1; typedef Arg2 proto_child2; proto_child2 child2; typedef Arg3 proto_child3; proto_child3 child3; typedef Arg4 proto_child4; proto_child4 child4; typedef Arg5 proto_child5; proto_child5 child5; typedef Arg6 proto_child6; proto_child6 child6; typedef Arg7 proto_child7; proto_child7 child7; typedef Arg8 proto_child8; proto_child8 child8; typedef Arg9 proto_child9; proto_child9 child9;
0781
0782
0783
0784 BOOST_FORCEINLINE
0785 basic_expr const &proto_base() const
0786 {
0787 return *this;
0788 }
0789
0790
0791 BOOST_FORCEINLINE
0792 basic_expr &proto_base()
0793 {
0794 return *this;
0795 }
0796
0797
0798
0799 template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
0800 BOOST_FORCEINLINE
0801 static basic_expr const make(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)
0802 {
0803 basic_expr that = {a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9};
0804 return that;
0805 }
0806
0807
0808 typedef detail::not_a_valid_type address_of_hack_type_;
0809 };