// 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 "boost/mpl/unpack_args.hpp" header | |
// -- DO NOT modify by hand! | |
namespace boost { namespace mpl { | |
namespace aux { | |
template< BOOST_MPL_AUX_NTTP_DECL(int, size) > struct unpack_args_impl | |
{ | |
template< typename F, typename Args > struct apply; | |
}; | |
template<> struct unpack_args_impl<0> | |
{ | |
template< typename F, typename Args > struct apply | |
: apply0< | |
F | |
> | |
{ | |
}; | |
}; | |
template<> struct unpack_args_impl<1> | |
{ | |
template< typename F, typename Args > struct apply | |
: apply1< | |
F | |
, typename at_c< Args,0 >::type | |
> | |
{ | |
}; | |
}; | |
template<> struct unpack_args_impl<2> | |
{ | |
template< typename F, typename Args > struct apply | |
: apply2< | |
F | |
, typename at_c< Args,0 >::type, typename at_c< Args,1 >::type | |
> | |
{ | |
}; | |
}; | |
template<> struct unpack_args_impl<3> | |
{ | |
template< typename F, typename Args > struct apply | |
: apply3< | |
F | |
, typename at_c< Args,0 >::type, typename at_c< Args,1 >::type | |
, typename at_c< Args,2 >::type | |
> | |
{ | |
}; | |
}; | |
template<> struct unpack_args_impl<4> | |
{ | |
template< typename F, typename Args > struct apply | |
: 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<> struct unpack_args_impl<5> | |
{ | |
template< typename F, typename Args > struct apply | |
: 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 | |
: aux::unpack_args_impl< size<Args>::value > | |
::template apply< F,Args > | |
{ | |
}; | |
}; | |
BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args) | |
}} | |