blob: bee7472c0f2ca0e3581c4032c14ad562e8106640 [file] [log] [blame]
Jeff Thompsona28eed82013-08-22 16:21:10 -07001
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 "ndnboost/mpl/unpack_args.hpp" header
10// -- DO NOT modify by hand!
11
12namespace ndnboost { namespace mpl {
13
14namespace aux {
15
16template< BOOST_MPL_AUX_NTTP_DECL(int, size) > struct unpack_args_impl
17{
18 template< typename F, typename Args > struct apply;
19};
20
21template<> struct unpack_args_impl<0>
22{
23 template< typename F, typename Args > struct apply
24 : apply0<
25 F
26 >
27 {
28 };
29};
30
31template<> struct unpack_args_impl<1>
32{
33 template< typename F, typename Args > struct apply
34 : apply1<
35 F
36 , typename at_c< Args,0 >::type
37 >
38 {
39 };
40};
41
42template<> struct unpack_args_impl<2>
43{
44 template< typename F, typename Args > struct apply
45 : apply2<
46 F
47 , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
48 >
49 {
50 };
51};
52
53template<> struct unpack_args_impl<3>
54{
55 template< typename F, typename Args > struct apply
56 : apply3<
57 F
58 , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
59 , typename at_c< Args,2 >::type
60 >
61 {
62 };
63};
64
65template<> struct unpack_args_impl<4>
66{
67 template< typename F, typename Args > struct apply
68 : apply4<
69 F
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
72 >
73 {
74 };
75};
76
77template<> struct unpack_args_impl<5>
78{
79 template< typename F, typename Args > struct apply
80 : apply5<
81 F
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
85 >
86 {
87 };
88};
89
90}
91
92template<
93 typename F
94 >
95struct unpack_args
96{
97 template< typename Args > struct apply
98
99 : aux::unpack_args_impl< size<Args>::value >
100 ::template apply< F,Args >
101
102 {
103 };
104};
105
106BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
107
108}}
109