12 namespace boost {
namespace mpl {
16 template<
int size,
typename F,
typename Args >
17 struct unpack_args_impl;
19 template<
typename F,
typename Args >
20 struct unpack_args_impl< 0,F,Args >
27 template<
typename F,
typename Args >
28 struct unpack_args_impl< 1,F,Args >
31 , typename at_c< Args,0 >::type
36 template<
typename F,
typename Args >
37 struct unpack_args_impl< 2,F,Args >
40 , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
45 template<
typename F,
typename Args >
46 struct unpack_args_impl< 3,F,Args >
49 , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
50 , typename at_c< Args,2 >::type
55 template<
typename F,
typename Args >
56 struct unpack_args_impl< 4,F,Args >
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
65 template<
typename F,
typename Args >
66 struct unpack_args_impl< 5,F,Args >
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
83 template<
typename Args >
struct apply
85 : aux::unpack_args_impl< size<Args>::value,F, Args >