Chris@16
|
1 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
2 /// \file args.hpp
|
Chris@16
|
3 /// Contains definition of \c term\<\>, \c list1\<\>, \c list2\<\>, ...
|
Chris@16
|
4 /// class templates.
|
Chris@16
|
5 //
|
Chris@16
|
6 // Copyright 2008 Eric Niebler. Distributed under the Boost
|
Chris@16
|
7 // Software License, Version 1.0. (See accompanying file
|
Chris@16
|
8 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
9
|
Chris@16
|
10
|
Chris@16
|
11
|
Chris@16
|
12
|
Chris@16
|
13 template< typename Arg0 >
|
Chris@16
|
14 struct term
|
Chris@16
|
15 {
|
Chris@16
|
16 static const long arity = 0;
|
Chris@16
|
17 typedef Arg0 child0;
|
Chris@16
|
18 typedef mpl::void_ child1; typedef mpl::void_ child2; typedef mpl::void_ child3; typedef mpl::void_ child4; typedef mpl::void_ child5; typedef mpl::void_ child6; typedef mpl::void_ child7; typedef mpl::void_ child8; typedef mpl::void_ child9;
|
Chris@16
|
19
|
Chris@16
|
20
|
Chris@16
|
21 typedef Arg0 back_;
|
Chris@16
|
22 };
|
Chris@16
|
23
|
Chris@16
|
24
|
Chris@16
|
25
|
Chris@16
|
26
|
Chris@16
|
27 template< typename Arg0 >
|
Chris@16
|
28 struct list1
|
Chris@16
|
29 {
|
Chris@16
|
30 static const long arity = 1;
|
Chris@16
|
31 typedef Arg0 child0;
|
Chris@16
|
32 typedef mpl::void_ child1; typedef mpl::void_ child2; typedef mpl::void_ child3; typedef mpl::void_ child4; typedef mpl::void_ child5; typedef mpl::void_ child6; typedef mpl::void_ child7; typedef mpl::void_ child8; typedef mpl::void_ child9;
|
Chris@16
|
33
|
Chris@16
|
34
|
Chris@16
|
35 typedef Arg0 back_;
|
Chris@16
|
36 };
|
Chris@16
|
37
|
Chris@16
|
38
|
Chris@16
|
39
|
Chris@16
|
40
|
Chris@16
|
41 template< typename Arg0 , typename Arg1 >
|
Chris@16
|
42 struct list2
|
Chris@16
|
43 {
|
Chris@16
|
44 static const long arity = 2;
|
Chris@16
|
45 typedef Arg0 child0; typedef Arg1 child1;
|
Chris@16
|
46 typedef mpl::void_ child2; typedef mpl::void_ child3; typedef mpl::void_ child4; typedef mpl::void_ child5; typedef mpl::void_ child6; typedef mpl::void_ child7; typedef mpl::void_ child8; typedef mpl::void_ child9;
|
Chris@16
|
47
|
Chris@16
|
48
|
Chris@16
|
49 typedef Arg1 back_;
|
Chris@16
|
50 };
|
Chris@16
|
51
|
Chris@16
|
52
|
Chris@16
|
53
|
Chris@16
|
54
|
Chris@16
|
55 template< typename Arg0 , typename Arg1 , typename Arg2 >
|
Chris@16
|
56 struct list3
|
Chris@16
|
57 {
|
Chris@16
|
58 static const long arity = 3;
|
Chris@16
|
59 typedef Arg0 child0; typedef Arg1 child1; typedef Arg2 child2;
|
Chris@16
|
60 typedef mpl::void_ child3; typedef mpl::void_ child4; typedef mpl::void_ child5; typedef mpl::void_ child6; typedef mpl::void_ child7; typedef mpl::void_ child8; typedef mpl::void_ child9;
|
Chris@16
|
61
|
Chris@16
|
62
|
Chris@16
|
63 typedef Arg2 back_;
|
Chris@16
|
64 };
|
Chris@16
|
65
|
Chris@16
|
66
|
Chris@16
|
67
|
Chris@16
|
68
|
Chris@16
|
69 template< typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 >
|
Chris@16
|
70 struct list4
|
Chris@16
|
71 {
|
Chris@16
|
72 static const long arity = 4;
|
Chris@16
|
73 typedef Arg0 child0; typedef Arg1 child1; typedef Arg2 child2; typedef Arg3 child3;
|
Chris@16
|
74 typedef mpl::void_ child4; typedef mpl::void_ child5; typedef mpl::void_ child6; typedef mpl::void_ child7; typedef mpl::void_ child8; typedef mpl::void_ child9;
|
Chris@16
|
75
|
Chris@16
|
76
|
Chris@16
|
77 typedef Arg3 back_;
|
Chris@16
|
78 };
|
Chris@16
|
79
|
Chris@16
|
80
|
Chris@16
|
81
|
Chris@16
|
82
|
Chris@16
|
83 template< typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 >
|
Chris@16
|
84 struct list5
|
Chris@16
|
85 {
|
Chris@16
|
86 static const long arity = 5;
|
Chris@16
|
87 typedef Arg0 child0; typedef Arg1 child1; typedef Arg2 child2; typedef Arg3 child3; typedef Arg4 child4;
|
Chris@16
|
88 typedef mpl::void_ child5; typedef mpl::void_ child6; typedef mpl::void_ child7; typedef mpl::void_ child8; typedef mpl::void_ child9;
|
Chris@16
|
89
|
Chris@16
|
90
|
Chris@16
|
91 typedef Arg4 back_;
|
Chris@16
|
92 };
|
Chris@16
|
93
|
Chris@16
|
94
|
Chris@16
|
95
|
Chris@16
|
96
|
Chris@16
|
97 template< typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 >
|
Chris@16
|
98 struct list6
|
Chris@16
|
99 {
|
Chris@16
|
100 static const long arity = 6;
|
Chris@16
|
101 typedef Arg0 child0; typedef Arg1 child1; typedef Arg2 child2; typedef Arg3 child3; typedef Arg4 child4; typedef Arg5 child5;
|
Chris@16
|
102 typedef mpl::void_ child6; typedef mpl::void_ child7; typedef mpl::void_ child8; typedef mpl::void_ child9;
|
Chris@16
|
103
|
Chris@16
|
104
|
Chris@16
|
105 typedef Arg5 back_;
|
Chris@16
|
106 };
|
Chris@16
|
107
|
Chris@16
|
108
|
Chris@16
|
109
|
Chris@16
|
110
|
Chris@16
|
111 template< typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 >
|
Chris@16
|
112 struct list7
|
Chris@16
|
113 {
|
Chris@16
|
114 static const long arity = 7;
|
Chris@16
|
115 typedef Arg0 child0; typedef Arg1 child1; typedef Arg2 child2; typedef Arg3 child3; typedef Arg4 child4; typedef Arg5 child5; typedef Arg6 child6;
|
Chris@16
|
116 typedef mpl::void_ child7; typedef mpl::void_ child8; typedef mpl::void_ child9;
|
Chris@16
|
117
|
Chris@16
|
118
|
Chris@16
|
119 typedef Arg6 back_;
|
Chris@16
|
120 };
|
Chris@16
|
121
|
Chris@16
|
122
|
Chris@16
|
123
|
Chris@16
|
124
|
Chris@16
|
125 template< typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 >
|
Chris@16
|
126 struct list8
|
Chris@16
|
127 {
|
Chris@16
|
128 static const long arity = 8;
|
Chris@16
|
129 typedef Arg0 child0; typedef Arg1 child1; typedef Arg2 child2; typedef Arg3 child3; typedef Arg4 child4; typedef Arg5 child5; typedef Arg6 child6; typedef Arg7 child7;
|
Chris@16
|
130 typedef mpl::void_ child8; typedef mpl::void_ child9;
|
Chris@16
|
131
|
Chris@16
|
132
|
Chris@16
|
133 typedef Arg7 back_;
|
Chris@16
|
134 };
|
Chris@16
|
135
|
Chris@16
|
136
|
Chris@16
|
137
|
Chris@16
|
138
|
Chris@16
|
139 template< typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 , typename Arg8 >
|
Chris@16
|
140 struct list9
|
Chris@16
|
141 {
|
Chris@16
|
142 static const long arity = 9;
|
Chris@16
|
143 typedef Arg0 child0; typedef Arg1 child1; typedef Arg2 child2; typedef Arg3 child3; typedef Arg4 child4; typedef Arg5 child5; typedef Arg6 child6; typedef Arg7 child7; typedef Arg8 child8;
|
Chris@16
|
144 typedef mpl::void_ child9;
|
Chris@16
|
145
|
Chris@16
|
146
|
Chris@16
|
147 typedef Arg8 back_;
|
Chris@16
|
148 };
|
Chris@16
|
149
|
Chris@16
|
150
|
Chris@16
|
151
|
Chris@16
|
152
|
Chris@16
|
153 template< typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 , typename Arg8 , typename Arg9 >
|
Chris@16
|
154 struct list10
|
Chris@16
|
155 {
|
Chris@16
|
156 static const long arity = 10;
|
Chris@16
|
157 typedef Arg0 child0; typedef Arg1 child1; typedef Arg2 child2; typedef Arg3 child3; typedef Arg4 child4; typedef Arg5 child5; typedef Arg6 child6; typedef Arg7 child7; typedef Arg8 child8; typedef Arg9 child9;
|
Chris@16
|
158
|
Chris@16
|
159
|
Chris@16
|
160
|
Chris@16
|
161 typedef Arg9 back_;
|
Chris@16
|
162 };
|