Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:46:41

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