Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-23 09:47:58

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