File indexing completed on 2025-01-18 09:41:36
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
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 : aux::unpack_args_impl< size<Args>::value,F, Args >
0086
0087 {
0088 };
0089 };
0090
0091 BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
0092
0093 }}
0094