Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:41:06

0001 
0002 // Copyright Aleksey Gurtovoy 2002-2004
0003 //
0004 // Distributed under the Boost Software License, Version 1.0. 
0005 // (See accompanying file LICENSE_1_0.txt or copy at 
0006 // http://www.boost.org/LICENSE_1_0.txt)
0007 //
0008 
0009 // Preprocessed version of "boost/mpl/unpack_args.hpp" header
0010 // -- DO NOT modify by hand!
0011 
0012 namespace boost { namespace mpl {
0013 
0014 namespace aux {
0015 
0016 template< int size, typename F, typename Args >
0017 struct unpack_args_impl;
0018 
0019 template< typename F, typename Args >
0020 struct unpack_args_impl< 0,F,Args >
0021     : apply0<
0022           F
0023         >
0024 {
0025 };
0026 
0027 template< typename F, typename Args >
0028 struct unpack_args_impl< 1,F,Args >
0029     : apply1<
0030           F
0031         , typename at_c< Args,0 >::type
0032         >
0033 {
0034 };
0035 
0036 template< typename F, typename Args >
0037 struct unpack_args_impl< 2,F,Args >
0038     : apply2<
0039           F
0040         , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
0041         >
0042 {
0043 };
0044 
0045 template< typename F, typename Args >
0046 struct unpack_args_impl< 3,F,Args >
0047     : apply3<
0048           F
0049         , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
0050         , typename at_c< Args,2 >::type
0051         >
0052 {
0053 };
0054 
0055 template< typename F, typename Args >
0056 struct unpack_args_impl< 4,F,Args >
0057     : apply4<
0058           F
0059         , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
0060         , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
0061         >
0062 {
0063 };
0064 
0065 template< typename F, typename Args >
0066 struct unpack_args_impl< 5,F,Args >
0067     : apply5<
0068           F
0069         , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
0070         , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
0071         , typename at_c< Args,4 >::type
0072         >
0073 {
0074 };
0075 
0076 }
0077 
0078 template<
0079       typename F
0080     >
0081 struct unpack_args
0082 {
0083     template< typename Args > struct apply
0084     {
0085         typedef typename aux::unpack_args_impl<
0086               size<Args>::value
0087             , F
0088             , Args
0089             >::type type;
0090 
0091     };
0092 };
0093 
0094 BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
0095 
0096 }}
0097