PageRenderTime 52ms CodeModel.GetById 42ms app.highlight 8ms RepoModel.GetById 1ms app.codeStats 0ms

/Src/Dependencies/Boost/boost/mpl/aux_/preprocessed/mwcw/unpack_args.hpp

http://hadesmem.googlecode.com/
C++ Header | 94 lines | 68 code | 18 blank | 8 comment | 0 complexity | a38d8896913086aebb8c4d54abea37ac MD5 | raw file
 1
 2// Copyright Aleksey Gurtovoy 2002-2004
 3//
 4// Distributed under the Boost Software License, Version 1.0. 
 5// (See accompanying file LICENSE_1_0.txt or copy at 
 6// http://www.boost.org/LICENSE_1_0.txt)
 7//
 8
 9// Preprocessed version of "boost/mpl/unpack_args.hpp" header
10// -- DO NOT modify by hand!
11
12namespace boost { namespace mpl {
13
14namespace aux {
15
16template< int size, typename F, typename Args >
17struct unpack_args_impl;
18
19template< typename F, typename Args >
20struct unpack_args_impl< 0,F,Args >
21    : apply0<
22          F
23        >
24{
25};
26
27template< typename F, typename Args >
28struct unpack_args_impl< 1,F,Args >
29    : apply1<
30          F
31        , typename at_c< Args,0 >::type
32        >
33{
34};
35
36template< typename F, typename Args >
37struct unpack_args_impl< 2,F,Args >
38    : apply2<
39          F
40        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
41        >
42{
43};
44
45template< typename F, typename Args >
46struct unpack_args_impl< 3,F,Args >
47    : apply3<
48          F
49        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
50        , typename at_c< Args,2 >::type
51        >
52{
53};
54
55template< typename F, typename Args >
56struct unpack_args_impl< 4,F,Args >
57    : apply4<
58          F
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
61        >
62{
63};
64
65template< typename F, typename Args >
66struct unpack_args_impl< 5,F,Args >
67    : apply5<
68          F
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
72        >
73{
74};
75
76}
77
78template<
79      typename F
80    >
81struct unpack_args
82{
83    template< typename Args > struct apply
84
85        : aux::unpack_args_impl< size<Args>::value,F, Args >
86
87    {
88    };
89};
90
91BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
92
93}}
94