// Copyright Aleksey Gurtovoy 2002-2004 | |
// | |
// Distributed under the Boost Software License, Version 1.0. | |
// (See accompanying file LICENSE_1_0.txt or copy at | |
// http://www.boost.org/LICENSE_1_0.txt) | |
// | |
// *Preprocessed* version of the main "unpack_args.hpp" header | |
// -- DO NOT modify by hand! | |
namespace boost { namespace mpl { | |
namespace aux { | |
template< int size, typename F, typename Args > | |
struct unpack_args_impl; | |
template< typename F, typename Args > | |
struct unpack_args_impl< 0,F,Args > | |
: apply0< | |
F | |
> | |
{ | |
}; | |
template< typename F, typename Args > | |
struct unpack_args_impl< 1,F,Args > | |
: apply1< | |
F | |
, typename at_c< Args,0 >::type | |
> | |
{ | |
}; | |
template< typename F, typename Args > | |
struct unpack_args_impl< 2,F,Args > | |
: apply2< | |
F | |
, typename at_c< Args,0 >::type, typename at_c< Args,1 >::type | |
> | |
{ | |
}; | |
template< typename F, typename Args > | |
struct unpack_args_impl< 3,F,Args > | |
: apply3< | |
F | |
, typename at_c< Args,0 >::type, typename at_c< Args,1 >::type | |
, typename at_c< Args,2 >::type | |
> | |
{ | |
}; | |
template< typename F, typename Args > | |
struct unpack_args_impl< 4,F,Args > | |
: apply4< | |
F | |
, typename at_c< Args,0 >::type, typename at_c< Args,1 >::type | |
, typename at_c< Args,2 >::type, typename at_c< Args,3 >::type | |
> | |
{ | |
}; | |
template< typename F, typename Args > | |
struct unpack_args_impl< 5,F,Args > | |
: apply5< | |
F | |
, typename at_c< Args,0 >::type, typename at_c< Args,1 >::type | |
, typename at_c< Args,2 >::type, typename at_c< Args,3 >::type | |
, typename at_c< Args,4 >::type | |
> | |
{ | |
}; | |
} | |
template< | |
typename F | |
> | |
struct unpack_args | |
{ | |
template< typename Args > struct apply | |
{ | |
typedef typename aux::unpack_args_impl< | |
size<Args>::value | |
, F | |
, Args | |
>::type type; | |
}; | |
}; | |
BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args) | |
}} | |