Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:47:21

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 Try, typename A0, typename Context>
0016         typename boost::enable_if<
0017             proto::matches<
0018                 A0
0019               , rule::catch_
0020             >
0021           , result_type
0022         >::type
0023         operator()(Try const & try_, A0 const& a0, Context const & ctx
0024             BOOST_PHOENIX_SFINAE_AND_OVERLOADS) const
0025         {
0026             try
0027             {
0028                 boost::phoenix::eval(proto::child_c<0>(try_), ctx);
0029             }
0030             catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type &e ) { eval_catch_body(a0, e, ctx); }
0031         }
0032         template <typename Try, typename A0, typename Context>
0033         typename boost::disable_if<
0034             proto::matches<
0035                 A0
0036               , rule::catch_
0037             >
0038           , result_type
0039         >::type
0040         operator()(Try const & try_, A0 const& a0, Context const & ctx) const
0041         {
0042             try
0043             {
0044                 boost::phoenix::eval(proto::child_c<0>(try_), ctx);
0045             }
0046             
0047             catch(...)
0048             {
0049                 boost::phoenix::eval(
0050                     proto::child_c<0>(
0051                         a0
0052                     )
0053                   , ctx);
0054             }
0055         }
0056     
0057     
0058     
0059     
0060     
0061     
0062     
0063         template <typename Try, typename A0 , typename A1, typename Context>
0064         typename boost::enable_if<
0065             proto::matches<
0066                 A1
0067               , rule::catch_
0068             >
0069           , result_type
0070         >::type
0071         operator()(Try const & try_, A0 const& a0 , A1 const& a1, Context const & ctx
0072             BOOST_PHOENIX_SFINAE_AND_OVERLOADS) const
0073         {
0074             try
0075             {
0076                 boost::phoenix::eval(proto::child_c<0>(try_), ctx);
0077             }
0078             catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type &e ) { eval_catch_body(a0, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type &e ) { eval_catch_body(a1, e, ctx); }
0079         }
0080         template <typename Try, typename A0 , typename A1, typename Context>
0081         typename boost::disable_if<
0082             proto::matches<
0083                 A1
0084               , rule::catch_
0085             >
0086           , result_type
0087         >::type
0088         operator()(Try const & try_, A0 const& a0 , A1 const& a1, Context const & ctx) const
0089         {
0090             try
0091             {
0092                 boost::phoenix::eval(proto::child_c<0>(try_), ctx);
0093             }
0094             catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type &e ) { eval_catch_body(a0, e, ctx); }
0095             catch(...)
0096             {
0097                 boost::phoenix::eval(
0098                     proto::child_c<0>(
0099                         a1
0100                     )
0101                   , ctx);
0102             }
0103         }
0104     
0105     
0106     
0107     
0108     
0109     
0110     
0111         template <typename Try, typename A0 , typename A1 , typename A2, typename Context>
0112         typename boost::enable_if<
0113             proto::matches<
0114                 A2
0115               , rule::catch_
0116             >
0117           , result_type
0118         >::type
0119         operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2, Context const & ctx
0120             BOOST_PHOENIX_SFINAE_AND_OVERLOADS) const
0121         {
0122             try
0123             {
0124                 boost::phoenix::eval(proto::child_c<0>(try_), ctx);
0125             }
0126             catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type &e ) { eval_catch_body(a0, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type &e ) { eval_catch_body(a1, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type &e ) { eval_catch_body(a2, e, ctx); }
0127         }
0128         template <typename Try, typename A0 , typename A1 , typename A2, typename Context>
0129         typename boost::disable_if<
0130             proto::matches<
0131                 A2
0132               , rule::catch_
0133             >
0134           , result_type
0135         >::type
0136         operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2, Context const & ctx) const
0137         {
0138             try
0139             {
0140                 boost::phoenix::eval(proto::child_c<0>(try_), ctx);
0141             }
0142             catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type &e ) { eval_catch_body(a0, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type &e ) { eval_catch_body(a1, e, ctx); }
0143             catch(...)
0144             {
0145                 boost::phoenix::eval(
0146                     proto::child_c<0>(
0147                         a2
0148                     )
0149                   , ctx);
0150             }
0151         }
0152     
0153     
0154     
0155     
0156     
0157     
0158     
0159         template <typename Try, typename A0 , typename A1 , typename A2 , typename A3, typename Context>
0160         typename boost::enable_if<
0161             proto::matches<
0162                 A3
0163               , rule::catch_
0164             >
0165           , result_type
0166         >::type
0167         operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3, Context const & ctx
0168             BOOST_PHOENIX_SFINAE_AND_OVERLOADS) const
0169         {
0170             try
0171             {
0172                 boost::phoenix::eval(proto::child_c<0>(try_), ctx);
0173             }
0174             catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type &e ) { eval_catch_body(a0, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type &e ) { eval_catch_body(a1, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type &e ) { eval_catch_body(a2, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type &e ) { eval_catch_body(a3, e, ctx); }
0175         }
0176         template <typename Try, typename A0 , typename A1 , typename A2 , typename A3, typename Context>
0177         typename boost::disable_if<
0178             proto::matches<
0179                 A3
0180               , rule::catch_
0181             >
0182           , result_type
0183         >::type
0184         operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3, Context const & ctx) const
0185         {
0186             try
0187             {
0188                 boost::phoenix::eval(proto::child_c<0>(try_), ctx);
0189             }
0190             catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type &e ) { eval_catch_body(a0, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type &e ) { eval_catch_body(a1, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type &e ) { eval_catch_body(a2, e, ctx); }
0191             catch(...)
0192             {
0193                 boost::phoenix::eval(
0194                     proto::child_c<0>(
0195                         a3
0196                     )
0197                   , ctx);
0198             }
0199         }
0200     
0201     
0202     
0203     
0204     
0205     
0206     
0207         template <typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4, typename Context>
0208         typename boost::enable_if<
0209             proto::matches<
0210                 A4
0211               , rule::catch_
0212             >
0213           , result_type
0214         >::type
0215         operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4, Context const & ctx
0216             BOOST_PHOENIX_SFINAE_AND_OVERLOADS) const
0217         {
0218             try
0219             {
0220                 boost::phoenix::eval(proto::child_c<0>(try_), ctx);
0221             }
0222             catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type &e ) { eval_catch_body(a0, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type &e ) { eval_catch_body(a1, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type &e ) { eval_catch_body(a2, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type &e ) { eval_catch_body(a3, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type &e ) { eval_catch_body(a4, e, ctx); }
0223         }
0224         template <typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4, typename Context>
0225         typename boost::disable_if<
0226             proto::matches<
0227                 A4
0228               , rule::catch_
0229             >
0230           , result_type
0231         >::type
0232         operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4, Context const & ctx) const
0233         {
0234             try
0235             {
0236                 boost::phoenix::eval(proto::child_c<0>(try_), ctx);
0237             }
0238             catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type &e ) { eval_catch_body(a0, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type &e ) { eval_catch_body(a1, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type &e ) { eval_catch_body(a2, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type &e ) { eval_catch_body(a3, e, ctx); }
0239             catch(...)
0240             {
0241                 boost::phoenix::eval(
0242                     proto::child_c<0>(
0243                         a4
0244                     )
0245                   , ctx);
0246             }
0247         }
0248     
0249     
0250     
0251     
0252     
0253     
0254     
0255         template <typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5, typename Context>
0256         typename boost::enable_if<
0257             proto::matches<
0258                 A5
0259               , rule::catch_
0260             >
0261           , result_type
0262         >::type
0263         operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5, Context const & ctx
0264             BOOST_PHOENIX_SFINAE_AND_OVERLOADS) const
0265         {
0266             try
0267             {
0268                 boost::phoenix::eval(proto::child_c<0>(try_), ctx);
0269             }
0270             catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type &e ) { eval_catch_body(a0, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type &e ) { eval_catch_body(a1, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type &e ) { eval_catch_body(a2, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type &e ) { eval_catch_body(a3, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type &e ) { eval_catch_body(a4, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type &e ) { eval_catch_body(a5, e, ctx); }
0271         }
0272         template <typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5, typename Context>
0273         typename boost::disable_if<
0274             proto::matches<
0275                 A5
0276               , rule::catch_
0277             >
0278           , result_type
0279         >::type
0280         operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5, Context const & ctx) const
0281         {
0282             try
0283             {
0284                 boost::phoenix::eval(proto::child_c<0>(try_), ctx);
0285             }
0286             catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type &e ) { eval_catch_body(a0, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type &e ) { eval_catch_body(a1, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type &e ) { eval_catch_body(a2, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type &e ) { eval_catch_body(a3, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type &e ) { eval_catch_body(a4, e, ctx); }
0287             catch(...)
0288             {
0289                 boost::phoenix::eval(
0290                     proto::child_c<0>(
0291                         a5
0292                     )
0293                   , ctx);
0294             }
0295         }
0296     
0297     
0298     
0299     
0300     
0301     
0302     
0303         template <typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6, typename Context>
0304         typename boost::enable_if<
0305             proto::matches<
0306                 A6
0307               , rule::catch_
0308             >
0309           , result_type
0310         >::type
0311         operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6, Context const & ctx
0312             BOOST_PHOENIX_SFINAE_AND_OVERLOADS) const
0313         {
0314             try
0315             {
0316                 boost::phoenix::eval(proto::child_c<0>(try_), ctx);
0317             }
0318             catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type &e ) { eval_catch_body(a0, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type &e ) { eval_catch_body(a1, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type &e ) { eval_catch_body(a2, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type &e ) { eval_catch_body(a3, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type &e ) { eval_catch_body(a4, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type &e ) { eval_catch_body(a5, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type &e ) { eval_catch_body(a6, e, ctx); }
0319         }
0320         template <typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6, typename Context>
0321         typename boost::disable_if<
0322             proto::matches<
0323                 A6
0324               , rule::catch_
0325             >
0326           , result_type
0327         >::type
0328         operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6, Context const & ctx) const
0329         {
0330             try
0331             {
0332                 boost::phoenix::eval(proto::child_c<0>(try_), ctx);
0333             }
0334             catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type &e ) { eval_catch_body(a0, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type &e ) { eval_catch_body(a1, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type &e ) { eval_catch_body(a2, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type &e ) { eval_catch_body(a3, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type &e ) { eval_catch_body(a4, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type &e ) { eval_catch_body(a5, e, ctx); }
0335             catch(...)
0336             {
0337                 boost::phoenix::eval(
0338                     proto::child_c<0>(
0339                         a6
0340                     )
0341                   , ctx);
0342             }
0343         }
0344     
0345     
0346     
0347     
0348     
0349     
0350     
0351         template <typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7, typename Context>
0352         typename boost::enable_if<
0353             proto::matches<
0354                 A7
0355               , rule::catch_
0356             >
0357           , result_type
0358         >::type
0359         operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7, Context const & ctx
0360             BOOST_PHOENIX_SFINAE_AND_OVERLOADS) const
0361         {
0362             try
0363             {
0364                 boost::phoenix::eval(proto::child_c<0>(try_), ctx);
0365             }
0366             catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type &e ) { eval_catch_body(a0, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type &e ) { eval_catch_body(a1, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type &e ) { eval_catch_body(a2, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type &e ) { eval_catch_body(a3, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type &e ) { eval_catch_body(a4, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type &e ) { eval_catch_body(a5, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type &e ) { eval_catch_body(a6, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type &e ) { eval_catch_body(a7, e, ctx); }
0367         }
0368         template <typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7, typename Context>
0369         typename boost::disable_if<
0370             proto::matches<
0371                 A7
0372               , rule::catch_
0373             >
0374           , result_type
0375         >::type
0376         operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7, Context const & ctx) const
0377         {
0378             try
0379             {
0380                 boost::phoenix::eval(proto::child_c<0>(try_), ctx);
0381             }
0382             catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type &e ) { eval_catch_body(a0, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type &e ) { eval_catch_body(a1, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type &e ) { eval_catch_body(a2, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type &e ) { eval_catch_body(a3, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type &e ) { eval_catch_body(a4, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type &e ) { eval_catch_body(a5, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type &e ) { eval_catch_body(a6, e, ctx); }
0383             catch(...)
0384             {
0385                 boost::phoenix::eval(
0386                     proto::child_c<0>(
0387                         a7
0388                     )
0389                   , ctx);
0390             }
0391         }
0392     
0393     
0394     
0395     
0396     
0397     
0398     
0399         template <typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8, typename Context>
0400         typename boost::enable_if<
0401             proto::matches<
0402                 A8
0403               , rule::catch_
0404             >
0405           , result_type
0406         >::type
0407         operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8, Context const & ctx
0408             BOOST_PHOENIX_SFINAE_AND_OVERLOADS) const
0409         {
0410             try
0411             {
0412                 boost::phoenix::eval(proto::child_c<0>(try_), ctx);
0413             }
0414             catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type &e ) { eval_catch_body(a0, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type &e ) { eval_catch_body(a1, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type &e ) { eval_catch_body(a2, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type &e ) { eval_catch_body(a3, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type &e ) { eval_catch_body(a4, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type &e ) { eval_catch_body(a5, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type &e ) { eval_catch_body(a6, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type &e ) { eval_catch_body(a7, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type &e ) { eval_catch_body(a8, e, ctx); }
0415         }
0416         template <typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8, typename Context>
0417         typename boost::disable_if<
0418             proto::matches<
0419                 A8
0420               , rule::catch_
0421             >
0422           , result_type
0423         >::type
0424         operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8, Context const & ctx) const
0425         {
0426             try
0427             {
0428                 boost::phoenix::eval(proto::child_c<0>(try_), ctx);
0429             }
0430             catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type &e ) { eval_catch_body(a0, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type &e ) { eval_catch_body(a1, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type &e ) { eval_catch_body(a2, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type &e ) { eval_catch_body(a3, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type &e ) { eval_catch_body(a4, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type &e ) { eval_catch_body(a5, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type &e ) { eval_catch_body(a6, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type &e ) { eval_catch_body(a7, e, ctx); }
0431             catch(...)
0432             {
0433                 boost::phoenix::eval(
0434                     proto::child_c<0>(
0435                         a8
0436                     )
0437                   , ctx);
0438             }
0439         }
0440     
0441     
0442     
0443     
0444     
0445     
0446     
0447         template <typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9, typename Context>
0448         typename boost::enable_if<
0449             proto::matches<
0450                 A9
0451               , rule::catch_
0452             >
0453           , result_type
0454         >::type
0455         operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9, Context const & ctx
0456             BOOST_PHOENIX_SFINAE_AND_OVERLOADS) const
0457         {
0458             try
0459             {
0460                 boost::phoenix::eval(proto::child_c<0>(try_), ctx);
0461             }
0462             catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type &e ) { eval_catch_body(a0, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type &e ) { eval_catch_body(a1, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type &e ) { eval_catch_body(a2, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type &e ) { eval_catch_body(a3, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type &e ) { eval_catch_body(a4, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type &e ) { eval_catch_body(a5, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type &e ) { eval_catch_body(a6, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type &e ) { eval_catch_body(a7, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type &e ) { eval_catch_body(a8, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type::type &e ) { eval_catch_body(a9, e, ctx); }
0463         }
0464         template <typename Try, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9, typename Context>
0465         typename boost::disable_if<
0466             proto::matches<
0467                 A9
0468               , rule::catch_
0469             >
0470           , result_type
0471         >::type
0472         operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9, Context const & ctx) const
0473         {
0474             try
0475             {
0476                 boost::phoenix::eval(proto::child_c<0>(try_), ctx);
0477             }
0478             catch( typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type::type &e ) { eval_catch_body(a0, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type::type &e ) { eval_catch_body(a1, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type::type &e ) { eval_catch_body(a2, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type::type &e ) { eval_catch_body(a3, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type::type &e ) { eval_catch_body(a4, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type::type &e ) { eval_catch_body(a5, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type::type &e ) { eval_catch_body(a6, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type::type &e ) { eval_catch_body(a7, e, ctx); } catch( typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type::type &e ) { eval_catch_body(a8, e, ctx); }
0479             catch(...)
0480             {
0481                 boost::phoenix::eval(
0482                     proto::child_c<0>(
0483                         a9
0484                     )
0485                   , ctx);
0486             }
0487         }