110 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | |
| // 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)
 | |
| 
 | |
| }}
 | |
| 
 | 
