12 namespace boost {
namespace mpl {
16 template< BOOST_MPL_AUX_NTTP_DECL(
int, size) >
struct unpack_args_impl
18 template<
typename F,
typename Args >
struct apply;
21 template<>
struct unpack_args_impl<0>
23 template<
typename F,
typename Args >
struct apply
31 template<>
struct unpack_args_impl<1>
33 template<
typename F,
typename Args >
struct apply
36 , typename at_c< Args,0 >::type
42 template<>
struct unpack_args_impl<2>
44 template<
typename F,
typename Args >
struct apply
47 , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
53 template<>
struct unpack_args_impl<3>
55 template<
typename F,
typename Args >
struct apply
58 , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
59 , typename at_c< Args,2 >::type
65 template<>
struct unpack_args_impl<4>
67 template<
typename F,
typename Args >
struct apply
70 , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
71 , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
77 template<>
struct unpack_args_impl<5>
79 template<
typename F,
typename Args >
struct apply
82 , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
83 , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
84 , typename at_c< Args,4 >::type
97 template<
typename Args >
struct apply
99 : aux::unpack_args_impl< size<Args>::value >
100 ::template apply< F,Args >