Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:44:28

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     
0016         
0017         template <typename Fun, typename Expr, typename State, typename Data>
0018         struct call_impl<Fun, Expr, State, Data, 1>
0019             : proto::transform_impl<Expr, State, Data>
0020         {
0021             typedef
0022                 typename boost::phoenix::result_of::context<State, Data>::type
0023                 context_type;
0024             typedef typename proto::result_of::child_c<Expr, 0>::type A0;
0025             typedef
0026                 typename boost::result_of<
0027                     Fun(A0, context_type)
0028                 >::type
0029                 result_type;
0030             result_type operator()(
0031                 typename call_impl::expr_param e
0032               , typename call_impl::state_param s
0033               , typename call_impl::data_param d
0034             ) const
0035             {
0036                 return
0037                     Fun()(
0038                         proto::child_c< 0>(e)
0039                       , boost::phoenix::context(s, d)
0040                     );
0041             }
0042         };
0043     
0044     
0045     
0046     
0047     
0048     
0049     
0050         
0051         template <typename Fun, typename Expr, typename State, typename Data>
0052         struct call_impl<Fun, Expr, State, Data, 2>
0053             : proto::transform_impl<Expr, State, Data>
0054         {
0055             typedef
0056                 typename boost::phoenix::result_of::context<State, Data>::type
0057                 context_type;
0058             typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1;
0059             typedef
0060                 typename boost::result_of<
0061                     Fun(A0 , A1, context_type)
0062                 >::type
0063                 result_type;
0064             result_type operator()(
0065                 typename call_impl::expr_param e
0066               , typename call_impl::state_param s
0067               , typename call_impl::data_param d
0068             ) const
0069             {
0070                 return
0071                     Fun()(
0072                         proto::child_c< 0>(e) , proto::child_c< 1>(e)
0073                       , boost::phoenix::context(s, d)
0074                     );
0075             }
0076         };
0077     
0078     
0079     
0080     
0081     
0082     
0083     
0084         
0085         template <typename Fun, typename Expr, typename State, typename Data>
0086         struct call_impl<Fun, Expr, State, Data, 3>
0087             : proto::transform_impl<Expr, State, Data>
0088         {
0089             typedef
0090                 typename boost::phoenix::result_of::context<State, Data>::type
0091                 context_type;
0092             typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2;
0093             typedef
0094                 typename boost::result_of<
0095                     Fun(A0 , A1 , A2, context_type)
0096                 >::type
0097                 result_type;
0098             result_type operator()(
0099                 typename call_impl::expr_param e
0100               , typename call_impl::state_param s
0101               , typename call_impl::data_param d
0102             ) const
0103             {
0104                 return
0105                     Fun()(
0106                         proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e)
0107                       , boost::phoenix::context(s, d)
0108                     );
0109             }
0110         };
0111     
0112     
0113     
0114     
0115     
0116     
0117     
0118         
0119         template <typename Fun, typename Expr, typename State, typename Data>
0120         struct call_impl<Fun, Expr, State, Data, 4>
0121             : proto::transform_impl<Expr, State, Data>
0122         {
0123             typedef
0124                 typename boost::phoenix::result_of::context<State, Data>::type
0125                 context_type;
0126             typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3;
0127             typedef
0128                 typename boost::result_of<
0129                     Fun(A0 , A1 , A2 , A3, context_type)
0130                 >::type
0131                 result_type;
0132             result_type operator()(
0133                 typename call_impl::expr_param e
0134               , typename call_impl::state_param s
0135               , typename call_impl::data_param d
0136             ) const
0137             {
0138                 return
0139                     Fun()(
0140                         proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e)
0141                       , boost::phoenix::context(s, d)
0142                     );
0143             }
0144         };
0145     
0146     
0147     
0148     
0149     
0150     
0151     
0152         
0153         template <typename Fun, typename Expr, typename State, typename Data>
0154         struct call_impl<Fun, Expr, State, Data, 5>
0155             : proto::transform_impl<Expr, State, Data>
0156         {
0157             typedef
0158                 typename boost::phoenix::result_of::context<State, Data>::type
0159                 context_type;
0160             typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4;
0161             typedef
0162                 typename boost::result_of<
0163                     Fun(A0 , A1 , A2 , A3 , A4, context_type)
0164                 >::type
0165                 result_type;
0166             result_type operator()(
0167                 typename call_impl::expr_param e
0168               , typename call_impl::state_param s
0169               , typename call_impl::data_param d
0170             ) const
0171             {
0172                 return
0173                     Fun()(
0174                         proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e)
0175                       , boost::phoenix::context(s, d)
0176                     );
0177             }
0178         };
0179     
0180     
0181     
0182     
0183     
0184     
0185     
0186         
0187         template <typename Fun, typename Expr, typename State, typename Data>
0188         struct call_impl<Fun, Expr, State, Data, 6>
0189             : proto::transform_impl<Expr, State, Data>
0190         {
0191             typedef
0192                 typename boost::phoenix::result_of::context<State, Data>::type
0193                 context_type;
0194             typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5;
0195             typedef
0196                 typename boost::result_of<
0197                     Fun(A0 , A1 , A2 , A3 , A4 , A5, context_type)
0198                 >::type
0199                 result_type;
0200             result_type operator()(
0201                 typename call_impl::expr_param e
0202               , typename call_impl::state_param s
0203               , typename call_impl::data_param d
0204             ) const
0205             {
0206                 return
0207                     Fun()(
0208                         proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e)
0209                       , boost::phoenix::context(s, d)
0210                     );
0211             }
0212         };
0213     
0214     
0215     
0216     
0217     
0218     
0219     
0220         
0221         template <typename Fun, typename Expr, typename State, typename Data>
0222         struct call_impl<Fun, Expr, State, Data, 7>
0223             : proto::transform_impl<Expr, State, Data>
0224         {
0225             typedef
0226                 typename boost::phoenix::result_of::context<State, Data>::type
0227                 context_type;
0228             typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6;
0229             typedef
0230                 typename boost::result_of<
0231                     Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6, context_type)
0232                 >::type
0233                 result_type;
0234             result_type operator()(
0235                 typename call_impl::expr_param e
0236               , typename call_impl::state_param s
0237               , typename call_impl::data_param d
0238             ) const
0239             {
0240                 return
0241                     Fun()(
0242                         proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e)
0243                       , boost::phoenix::context(s, d)
0244                     );
0245             }
0246         };
0247     
0248     
0249     
0250     
0251     
0252     
0253     
0254         
0255         template <typename Fun, typename Expr, typename State, typename Data>
0256         struct call_impl<Fun, Expr, State, Data, 8>
0257             : proto::transform_impl<Expr, State, Data>
0258         {
0259             typedef
0260                 typename boost::phoenix::result_of::context<State, Data>::type
0261                 context_type;
0262             typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7;
0263             typedef
0264                 typename boost::result_of<
0265                     Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7, context_type)
0266                 >::type
0267                 result_type;
0268             result_type operator()(
0269                 typename call_impl::expr_param e
0270               , typename call_impl::state_param s
0271               , typename call_impl::data_param d
0272             ) const
0273             {
0274                 return
0275                     Fun()(
0276                         proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e)
0277                       , boost::phoenix::context(s, d)
0278                     );
0279             }
0280         };
0281     
0282     
0283     
0284     
0285     
0286     
0287     
0288         
0289         template <typename Fun, typename Expr, typename State, typename Data>
0290         struct call_impl<Fun, Expr, State, Data, 9>
0291             : proto::transform_impl<Expr, State, Data>
0292         {
0293             typedef
0294                 typename boost::phoenix::result_of::context<State, Data>::type
0295                 context_type;
0296             typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8;
0297             typedef
0298                 typename boost::result_of<
0299                     Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8, context_type)
0300                 >::type
0301                 result_type;
0302             result_type operator()(
0303                 typename call_impl::expr_param e
0304               , typename call_impl::state_param s
0305               , typename call_impl::data_param d
0306             ) const
0307             {
0308                 return
0309                     Fun()(
0310                         proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e)
0311                       , boost::phoenix::context(s, d)
0312                     );
0313             }
0314         };
0315     
0316     
0317     
0318     
0319     
0320     
0321     
0322         
0323         template <typename Fun, typename Expr, typename State, typename Data>
0324         struct call_impl<Fun, Expr, State, Data, 10>
0325             : proto::transform_impl<Expr, State, Data>
0326         {
0327             typedef
0328                 typename boost::phoenix::result_of::context<State, Data>::type
0329                 context_type;
0330             typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9;
0331             typedef
0332                 typename boost::result_of<
0333                     Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9, context_type)
0334                 >::type
0335                 result_type;
0336             result_type operator()(
0337                 typename call_impl::expr_param e
0338               , typename call_impl::state_param s
0339               , typename call_impl::data_param d
0340             ) const
0341             {
0342                 return
0343                     Fun()(
0344                         proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e)
0345                       , boost::phoenix::context(s, d)
0346                     );
0347             }
0348         };
0349     
0350     
0351     
0352     
0353     
0354     
0355     
0356         
0357         template <typename Fun, typename Expr, typename State, typename Data>
0358         struct call_impl<Fun, Expr, State, Data, 11>
0359             : proto::transform_impl<Expr, State, Data>
0360         {
0361             typedef
0362                 typename boost::phoenix::result_of::context<State, Data>::type
0363                 context_type;
0364             typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10;
0365             typedef
0366                 typename boost::result_of<
0367                     Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10, context_type)
0368                 >::type
0369                 result_type;
0370             result_type operator()(
0371                 typename call_impl::expr_param e
0372               , typename call_impl::state_param s
0373               , typename call_impl::data_param d
0374             ) const
0375             {
0376                 return
0377                     Fun()(
0378                         proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e)
0379                       , boost::phoenix::context(s, d)
0380                     );
0381             }
0382         };
0383     
0384     
0385     
0386     
0387     
0388     
0389     
0390         
0391         template <typename Fun, typename Expr, typename State, typename Data>
0392         struct call_impl<Fun, Expr, State, Data, 12>
0393             : proto::transform_impl<Expr, State, Data>
0394         {
0395             typedef
0396                 typename boost::phoenix::result_of::context<State, Data>::type
0397                 context_type;
0398             typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11;
0399             typedef
0400                 typename boost::result_of<
0401                     Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11, context_type)
0402                 >::type
0403                 result_type;
0404             result_type operator()(
0405                 typename call_impl::expr_param e
0406               , typename call_impl::state_param s
0407               , typename call_impl::data_param d
0408             ) const
0409             {
0410                 return
0411                     Fun()(
0412                         proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e)
0413                       , boost::phoenix::context(s, d)
0414                     );
0415             }
0416         };
0417     
0418     
0419     
0420     
0421     
0422     
0423     
0424         
0425         template <typename Fun, typename Expr, typename State, typename Data>
0426         struct call_impl<Fun, Expr, State, Data, 13>
0427             : proto::transform_impl<Expr, State, Data>
0428         {
0429             typedef
0430                 typename boost::phoenix::result_of::context<State, Data>::type
0431                 context_type;
0432             typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11; typedef typename proto::result_of::child_c<Expr, 12>::type A12;
0433             typedef
0434                 typename boost::result_of<
0435                     Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12, context_type)
0436                 >::type
0437                 result_type;
0438             result_type operator()(
0439                 typename call_impl::expr_param e
0440               , typename call_impl::state_param s
0441               , typename call_impl::data_param d
0442             ) const
0443             {
0444                 return
0445                     Fun()(
0446                         proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e)
0447                       , boost::phoenix::context(s, d)
0448                     );
0449             }
0450         };
0451     
0452     
0453     
0454     
0455     
0456     
0457     
0458         
0459         template <typename Fun, typename Expr, typename State, typename Data>
0460         struct call_impl<Fun, Expr, State, Data, 14>
0461             : proto::transform_impl<Expr, State, Data>
0462         {
0463             typedef
0464                 typename boost::phoenix::result_of::context<State, Data>::type
0465                 context_type;
0466             typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11; typedef typename proto::result_of::child_c<Expr, 12>::type A12; typedef typename proto::result_of::child_c<Expr, 13>::type A13;
0467             typedef
0468                 typename boost::result_of<
0469                     Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13, context_type)
0470                 >::type
0471                 result_type;
0472             result_type operator()(
0473                 typename call_impl::expr_param e
0474               , typename call_impl::state_param s
0475               , typename call_impl::data_param d
0476             ) const
0477             {
0478                 return
0479                     Fun()(
0480                         proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e)
0481                       , boost::phoenix::context(s, d)
0482                     );
0483             }
0484         };
0485     
0486     
0487     
0488     
0489     
0490     
0491     
0492         
0493         template <typename Fun, typename Expr, typename State, typename Data>
0494         struct call_impl<Fun, Expr, State, Data, 15>
0495             : proto::transform_impl<Expr, State, Data>
0496         {
0497             typedef
0498                 typename boost::phoenix::result_of::context<State, Data>::type
0499                 context_type;
0500             typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11; typedef typename proto::result_of::child_c<Expr, 12>::type A12; typedef typename proto::result_of::child_c<Expr, 13>::type A13; typedef typename proto::result_of::child_c<Expr, 14>::type A14;
0501             typedef
0502                 typename boost::result_of<
0503                     Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14, context_type)
0504                 >::type
0505                 result_type;
0506             result_type operator()(
0507                 typename call_impl::expr_param e
0508               , typename call_impl::state_param s
0509               , typename call_impl::data_param d
0510             ) const
0511             {
0512                 return
0513                     Fun()(
0514                         proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e)
0515                       , boost::phoenix::context(s, d)
0516                     );
0517             }
0518         };
0519     
0520     
0521     
0522     
0523     
0524     
0525     
0526         
0527         template <typename Fun, typename Expr, typename State, typename Data>
0528         struct call_impl<Fun, Expr, State, Data, 16>
0529             : proto::transform_impl<Expr, State, Data>
0530         {
0531             typedef
0532                 typename boost::phoenix::result_of::context<State, Data>::type
0533                 context_type;
0534             typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11; typedef typename proto::result_of::child_c<Expr, 12>::type A12; typedef typename proto::result_of::child_c<Expr, 13>::type A13; typedef typename proto::result_of::child_c<Expr, 14>::type A14; typedef typename proto::result_of::child_c<Expr, 15>::type A15;
0535             typedef
0536                 typename boost::result_of<
0537                     Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15, context_type)
0538                 >::type
0539                 result_type;
0540             result_type operator()(
0541                 typename call_impl::expr_param e
0542               , typename call_impl::state_param s
0543               , typename call_impl::data_param d
0544             ) const
0545             {
0546                 return
0547                     Fun()(
0548                         proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e)
0549                       , boost::phoenix::context(s, d)
0550                     );
0551             }
0552         };
0553     
0554     
0555     
0556     
0557     
0558     
0559     
0560         
0561         template <typename Fun, typename Expr, typename State, typename Data>
0562         struct call_impl<Fun, Expr, State, Data, 17>
0563             : proto::transform_impl<Expr, State, Data>
0564         {
0565             typedef
0566                 typename boost::phoenix::result_of::context<State, Data>::type
0567                 context_type;
0568             typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11; typedef typename proto::result_of::child_c<Expr, 12>::type A12; typedef typename proto::result_of::child_c<Expr, 13>::type A13; typedef typename proto::result_of::child_c<Expr, 14>::type A14; typedef typename proto::result_of::child_c<Expr, 15>::type A15; typedef typename proto::result_of::child_c<Expr, 16>::type A16;
0569             typedef
0570                 typename boost::result_of<
0571                     Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16, context_type)
0572                 >::type
0573                 result_type;
0574             result_type operator()(
0575                 typename call_impl::expr_param e
0576               , typename call_impl::state_param s
0577               , typename call_impl::data_param d
0578             ) const
0579             {
0580                 return
0581                     Fun()(
0582                         proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e)
0583                       , boost::phoenix::context(s, d)
0584                     );
0585             }
0586         };
0587     
0588     
0589     
0590     
0591     
0592     
0593     
0594         
0595         template <typename Fun, typename Expr, typename State, typename Data>
0596         struct call_impl<Fun, Expr, State, Data, 18>
0597             : proto::transform_impl<Expr, State, Data>
0598         {
0599             typedef
0600                 typename boost::phoenix::result_of::context<State, Data>::type
0601                 context_type;
0602             typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11; typedef typename proto::result_of::child_c<Expr, 12>::type A12; typedef typename proto::result_of::child_c<Expr, 13>::type A13; typedef typename proto::result_of::child_c<Expr, 14>::type A14; typedef typename proto::result_of::child_c<Expr, 15>::type A15; typedef typename proto::result_of::child_c<Expr, 16>::type A16; typedef typename proto::result_of::child_c<Expr, 17>::type A17;
0603             typedef
0604                 typename boost::result_of<
0605                     Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17, context_type)
0606                 >::type
0607                 result_type;
0608             result_type operator()(
0609                 typename call_impl::expr_param e
0610               , typename call_impl::state_param s
0611               , typename call_impl::data_param d
0612             ) const
0613             {
0614                 return
0615                     Fun()(
0616                         proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e)
0617                       , boost::phoenix::context(s, d)
0618                     );
0619             }
0620         };
0621     
0622     
0623     
0624     
0625     
0626     
0627     
0628         
0629         template <typename Fun, typename Expr, typename State, typename Data>
0630         struct call_impl<Fun, Expr, State, Data, 19>
0631             : proto::transform_impl<Expr, State, Data>
0632         {
0633             typedef
0634                 typename boost::phoenix::result_of::context<State, Data>::type
0635                 context_type;
0636             typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11; typedef typename proto::result_of::child_c<Expr, 12>::type A12; typedef typename proto::result_of::child_c<Expr, 13>::type A13; typedef typename proto::result_of::child_c<Expr, 14>::type A14; typedef typename proto::result_of::child_c<Expr, 15>::type A15; typedef typename proto::result_of::child_c<Expr, 16>::type A16; typedef typename proto::result_of::child_c<Expr, 17>::type A17; typedef typename proto::result_of::child_c<Expr, 18>::type A18;
0637             typedef
0638                 typename boost::result_of<
0639                     Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18, context_type)
0640                 >::type
0641                 result_type;
0642             result_type operator()(
0643                 typename call_impl::expr_param e
0644               , typename call_impl::state_param s
0645               , typename call_impl::data_param d
0646             ) const
0647             {
0648                 return
0649                     Fun()(
0650                         proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e)
0651                       , boost::phoenix::context(s, d)
0652                     );
0653             }
0654         };
0655     
0656     
0657     
0658     
0659     
0660     
0661     
0662         
0663         template <typename Fun, typename Expr, typename State, typename Data>
0664         struct call_impl<Fun, Expr, State, Data, 20>
0665             : proto::transform_impl<Expr, State, Data>
0666         {
0667             typedef
0668                 typename boost::phoenix::result_of::context<State, Data>::type
0669                 context_type;
0670             typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11; typedef typename proto::result_of::child_c<Expr, 12>::type A12; typedef typename proto::result_of::child_c<Expr, 13>::type A13; typedef typename proto::result_of::child_c<Expr, 14>::type A14; typedef typename proto::result_of::child_c<Expr, 15>::type A15; typedef typename proto::result_of::child_c<Expr, 16>::type A16; typedef typename proto::result_of::child_c<Expr, 17>::type A17; typedef typename proto::result_of::child_c<Expr, 18>::type A18; typedef typename proto::result_of::child_c<Expr, 19>::type A19;
0671             typedef
0672                 typename boost::result_of<
0673                     Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19, context_type)
0674                 >::type
0675                 result_type;
0676             result_type operator()(
0677                 typename call_impl::expr_param e
0678               , typename call_impl::state_param s
0679               , typename call_impl::data_param d
0680             ) const
0681             {
0682                 return
0683                     Fun()(
0684                         proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e) , proto::child_c< 19>(e)
0685                       , boost::phoenix::context(s, d)
0686                     );
0687             }
0688         };