1 2 // Copyright Aleksey Gurtovoy 2002-2004 3 // 4 // Distributed under the Boost Software License, Version 1.0. 5 // (See accompanying file LICENSE_1_0.txt or copy at 6 // http://www.boost.org/LICENSE_1_0.txt) 7 // 8 9 // Preprocessed version of "boost/mpl/unpack_args.hpp" header 10 // -- DO NOT modify by hand! 11 12 namespace boost { namespace mpl { 13 14 namespace aux { 15 16 template< int size, typename F, typename Args > 17 struct unpack_args_impl; 18 19 template< typename F, typename Args > 20 struct unpack_args_impl< 0,F,Args > 21 : apply0< 22 F 23 > 24 { 25 }; 26 27 template< typename F, typename Args > 28 struct unpack_args_impl< 1,F,Args > 29 : apply1< 30 F 31 , typename at_c< Args,0 >::type 32 > 33 { 34 }; 35 36 template< typename F, typename Args > 37 struct unpack_args_impl< 2,F,Args > 38 : apply2< 39 F 40 , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type 41 > 42 { 43 }; 44 45 template< typename F, typename Args > 46 struct unpack_args_impl< 3,F,Args > 47 : apply3< 48 F 49 , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type 50 , typename at_c< Args,2 >::type 51 > 52 { 53 }; 54 55 template< typename F, typename Args > 56 struct unpack_args_impl< 4,F,Args > 57 : apply4< 58 F 59 , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type 60 , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type 61 > 62 { 63 }; 64 65 template< typename F, typename Args > 66 struct unpack_args_impl< 5,F,Args > 67 : apply5< 68 F 69 , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type 70 , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type 71 , typename at_c< Args,4 >::type 72 > 73 { 74 }; 75 76 } 77 78 template< 79 typename F 80 > 81 struct unpack_args 82 { 83 template< typename Args > struct apply 84 85 : aux::unpack_args_impl< size<Args>::value,F, Args > 86 87 { 88 }; 89 }; 90 91 BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args) 92 93 }} 94 95