blob: 3ac43401af5453a05d58e37813cdb88c05a3414d [file] [log] [blame]
Jeff Thompsona28eed82013-08-22 16:21:10 -07001
2// Copyright Peter Dimov 2001-2002
3// Copyright Aleksey Gurtovoy 2001-2004
4//
5// Distributed under the Boost Software License, Version 1.0.
6// (See accompanying file LICENSE_1_0.txt or copy at
7// http://www.boost.org/LICENSE_1_0.txt)
8//
9
10// *Preprocessed* version of the main "arg.hpp" header
11// -- DO NOT modify by hand!
12
13BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
14template<> struct arg< -1 >
15{
16 BOOST_STATIC_CONSTANT(int, value = -1);
17 BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
18 BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
19
20 template<
21 typename U1, typename U2, typename U3, typename U4, typename U5
22 >
23 struct apply
24 {
25 typedef U1 type;
26 BOOST_MPL_AUX_ASSERT_NOT_NA(type);
27 };
28};
29
30template<> struct arg<1>
31{
32 BOOST_STATIC_CONSTANT(int, value = 1);
33 typedef arg<2> next;
34 BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
35 BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
36
37 template<
38 typename U1, typename U2, typename U3, typename U4, typename U5
39 >
40 struct apply
41 {
42 typedef U1 type;
43 BOOST_MPL_AUX_ASSERT_NOT_NA(type);
44 };
45};
46
47template<> struct arg<2>
48{
49 BOOST_STATIC_CONSTANT(int, value = 2);
50 typedef arg<3> next;
51 BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
52 BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
53
54 template<
55 typename U1, typename U2, typename U3, typename U4, typename U5
56 >
57 struct apply
58 {
59 typedef U2 type;
60 BOOST_MPL_AUX_ASSERT_NOT_NA(type);
61 };
62};
63
64template<> struct arg<3>
65{
66 BOOST_STATIC_CONSTANT(int, value = 3);
67 typedef arg<4> next;
68 BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
69 BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
70
71 template<
72 typename U1, typename U2, typename U3, typename U4, typename U5
73 >
74 struct apply
75 {
76 typedef U3 type;
77 BOOST_MPL_AUX_ASSERT_NOT_NA(type);
78 };
79};
80
81template<> struct arg<4>
82{
83 BOOST_STATIC_CONSTANT(int, value = 4);
84 typedef arg<5> next;
85 BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
86 BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
87
88 template<
89 typename U1, typename U2, typename U3, typename U4, typename U5
90 >
91 struct apply
92 {
93 typedef U4 type;
94 BOOST_MPL_AUX_ASSERT_NOT_NA(type);
95 };
96};
97
98template<> struct arg<5>
99{
100 BOOST_STATIC_CONSTANT(int, value = 5);
101 typedef arg<6> next;
102 BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
103 BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
104
105 template<
106 typename U1, typename U2, typename U3, typename U4, typename U5
107 >
108 struct apply
109 {
110 typedef U5 type;
111 BOOST_MPL_AUX_ASSERT_NOT_NA(type);
112 };
113};
114
115BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
116
117BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE