Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:45:31

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