Back to home page

EIC code displayed by LXR

 
 

    


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

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