blob: 3098efecc969b1ea9b63623c6ef5833cf45070cf [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< 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 typedef typename aux::unpack_args_impl<
86 size<Args>::value
87 , F
88 , Args
89 >::type type;
90
91 };
92};
93
94BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
95
96}}
97