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         }