Back to home page

EIC code displayed by LXR

 
 

    


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

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 RT
0016       , typename T0 , typename T1
0017       , typename A0 , typename A1
0018     >
0019     inline
0020     typename detail::expression::function_eval<
0021         detail::function_ptr<
0022             2
0023           , RT
0024           , RT(*)(T0 , T1)
0025         >
0026       , A0 , A1
0027     >::type const
0028     bind(
0029         RT(*f)(T0 , T1)
0030       , A0 const& a0 , A1 const& a1
0031     )
0032     {
0033         typedef detail::function_ptr<
0034             2
0035           , RT
0036           , RT(*)(T0 , T1)
0037         > fp_type;
0038         return
0039             detail::expression::function_eval<
0040                 fp_type
0041               , A0 , A1
0042             >::make(
0043                 fp_type(f)
0044               , a0 , a1
0045             );
0046     }
0047     
0048     
0049     
0050     
0051     
0052     
0053     
0054     template <
0055         typename RT
0056       , typename T0 , typename T1 , typename T2
0057       , typename A0 , typename A1 , typename A2
0058     >
0059     inline
0060     typename detail::expression::function_eval<
0061         detail::function_ptr<
0062             3
0063           , RT
0064           , RT(*)(T0 , T1 , T2)
0065         >
0066       , A0 , A1 , A2
0067     >::type const
0068     bind(
0069         RT(*f)(T0 , T1 , T2)
0070       , A0 const& a0 , A1 const& a1 , A2 const& a2
0071     )
0072     {
0073         typedef detail::function_ptr<
0074             3
0075           , RT
0076           , RT(*)(T0 , T1 , T2)
0077         > fp_type;
0078         return
0079             detail::expression::function_eval<
0080                 fp_type
0081               , A0 , A1 , A2
0082             >::make(
0083                 fp_type(f)
0084               , a0 , a1 , a2
0085             );
0086     }
0087     
0088     
0089     
0090     
0091     
0092     
0093     
0094     template <
0095         typename RT
0096       , typename T0 , typename T1 , typename T2 , typename T3
0097       , typename A0 , typename A1 , typename A2 , typename A3
0098     >
0099     inline
0100     typename detail::expression::function_eval<
0101         detail::function_ptr<
0102             4
0103           , RT
0104           , RT(*)(T0 , T1 , T2 , T3)
0105         >
0106       , A0 , A1 , A2 , A3
0107     >::type const
0108     bind(
0109         RT(*f)(T0 , T1 , T2 , T3)
0110       , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3
0111     )
0112     {
0113         typedef detail::function_ptr<
0114             4
0115           , RT
0116           , RT(*)(T0 , T1 , T2 , T3)
0117         > fp_type;
0118         return
0119             detail::expression::function_eval<
0120                 fp_type
0121               , A0 , A1 , A2 , A3
0122             >::make(
0123                 fp_type(f)
0124               , a0 , a1 , a2 , a3
0125             );
0126     }
0127     
0128     
0129     
0130     
0131     
0132     
0133     
0134     template <
0135         typename RT
0136       , typename T0 , typename T1 , typename T2 , typename T3 , typename T4
0137       , typename A0 , typename A1 , typename A2 , typename A3 , typename A4
0138     >
0139     inline
0140     typename detail::expression::function_eval<
0141         detail::function_ptr<
0142             5
0143           , RT
0144           , RT(*)(T0 , T1 , T2 , T3 , T4)
0145         >
0146       , A0 , A1 , A2 , A3 , A4
0147     >::type const
0148     bind(
0149         RT(*f)(T0 , T1 , T2 , T3 , T4)
0150       , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4
0151     )
0152     {
0153         typedef detail::function_ptr<
0154             5
0155           , RT
0156           , RT(*)(T0 , T1 , T2 , T3 , T4)
0157         > fp_type;
0158         return
0159             detail::expression::function_eval<
0160                 fp_type
0161               , A0 , A1 , A2 , A3 , A4
0162             >::make(
0163                 fp_type(f)
0164               , a0 , a1 , a2 , a3 , a4
0165             );
0166     }
0167     
0168     
0169     
0170     
0171     
0172     
0173     
0174     template <
0175         typename RT
0176       , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5
0177       , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5
0178     >
0179     inline
0180     typename detail::expression::function_eval<
0181         detail::function_ptr<
0182             6
0183           , RT
0184           , RT(*)(T0 , T1 , T2 , T3 , T4 , T5)
0185         >
0186       , A0 , A1 , A2 , A3 , A4 , A5
0187     >::type const
0188     bind(
0189         RT(*f)(T0 , T1 , T2 , T3 , T4 , T5)
0190       , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5
0191     )
0192     {
0193         typedef detail::function_ptr<
0194             6
0195           , RT
0196           , RT(*)(T0 , T1 , T2 , T3 , T4 , T5)
0197         > fp_type;
0198         return
0199             detail::expression::function_eval<
0200                 fp_type
0201               , A0 , A1 , A2 , A3 , A4 , A5
0202             >::make(
0203                 fp_type(f)
0204               , a0 , a1 , a2 , a3 , a4 , a5
0205             );
0206     }
0207     
0208     
0209     
0210     
0211     
0212     
0213     
0214     template <
0215         typename RT
0216       , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6
0217       , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6
0218     >
0219     inline
0220     typename detail::expression::function_eval<
0221         detail::function_ptr<
0222             7
0223           , RT
0224           , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
0225         >
0226       , A0 , A1 , A2 , A3 , A4 , A5 , A6
0227     >::type const
0228     bind(
0229         RT(*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
0230       , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6
0231     )
0232     {
0233         typedef detail::function_ptr<
0234             7
0235           , RT
0236           , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
0237         > fp_type;
0238         return
0239             detail::expression::function_eval<
0240                 fp_type
0241               , A0 , A1 , A2 , A3 , A4 , A5 , A6
0242             >::make(
0243                 fp_type(f)
0244               , a0 , a1 , a2 , a3 , a4 , a5 , a6
0245             );
0246     }
0247     
0248     
0249     
0250     
0251     
0252     
0253     
0254     template <
0255         typename RT
0256       , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7
0257       , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7
0258     >
0259     inline
0260     typename detail::expression::function_eval<
0261         detail::function_ptr<
0262             8
0263           , RT
0264           , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
0265         >
0266       , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
0267     >::type const
0268     bind(
0269         RT(*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
0270       , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7
0271     )
0272     {
0273         typedef detail::function_ptr<
0274             8
0275           , RT
0276           , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
0277         > fp_type;
0278         return
0279             detail::expression::function_eval<
0280                 fp_type
0281               , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
0282             >::make(
0283                 fp_type(f)
0284               , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7
0285             );
0286     }
0287     
0288     
0289     
0290     
0291     
0292     
0293     
0294     template <
0295         typename RT
0296       , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8
0297       , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8
0298     >
0299     inline
0300     typename detail::expression::function_eval<
0301         detail::function_ptr<
0302             9
0303           , RT
0304           , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)
0305         >
0306       , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
0307     >::type const
0308     bind(
0309         RT(*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)
0310       , 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
0311     )
0312     {
0313         typedef detail::function_ptr<
0314             9
0315           , RT
0316           , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)
0317         > fp_type;
0318         return
0319             detail::expression::function_eval<
0320                 fp_type
0321               , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
0322             >::make(
0323                 fp_type(f)
0324               , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8
0325             );
0326     }