1 /*==============================================================================
2     Copyright (c) 2005-2010 Joel de Guzman
3     Copyright (c) 2010 Thomas Heller
4 
5     Distributed under the Boost Software License, Version 1.0. (See accompanying
6     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 ==============================================================================*/
8 namespace boost { namespace phoenix
9 {
10     template <typename Dummy = void>
11     struct vector0
12     {
13         typedef mpl::int_<0> size_type;
14         static const int size_value = 0;
15     };
16 }}
17 
18 
19 
20 
21 
22 
23 
24 namespace boost { namespace phoenix
25 {
26     template <typename A0>
27     struct vector1
28     {
29         typedef A0 member_type0; A0 a0;
30 
31         typedef mpl::int_<1> size_type;
32         static const int size_value = 1;
33         typedef
34             vector0<>
35             args_type;
argsboost::phoenix::vector136         args_type args() const
37         {
38             args_type r = {};
39             return r;
40         }
41     };
42 }}
43 BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
44     (A0)
45   , ( boost::phoenix::vector1 ) (A0)
46   , (A0, a0)
47 )
48 
49 
50 
51 
52 
53 
54 
55 namespace boost { namespace phoenix
56 {
57     template <typename A0 , typename A1>
58     struct vector2
59     {
60         typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1;
61 
62         typedef mpl::int_<2> size_type;
63         static const int size_value = 2;
64         typedef
65             vector1<A1>
66             args_type;
argsboost::phoenix::vector267         args_type args() const
68         {
69             args_type r = {a1};
70             return r;
71         }
72     };
73 }}
74 BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
75     (A0) (A1)
76   , ( boost::phoenix::vector2 ) (A0) (A1)
77   , (A0, a0) (A1, a1)
78 )
79 
80 
81 
82 
83 
84 
85 
86 namespace boost { namespace phoenix
87 {
88     template <typename A0 , typename A1 , typename A2>
89     struct vector3
90     {
91         typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2;
92 
93         typedef mpl::int_<3> size_type;
94         static const int size_value = 3;
95         typedef
96             vector2<A1 , A2>
97             args_type;
argsboost::phoenix::vector398         args_type args() const
99         {
100             args_type r = {a1 , a2};
101             return r;
102         }
103     };
104 }}
105 BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
106     (A0) (A1) (A2)
107   , ( boost::phoenix::vector3 ) (A0) (A1) (A2)
108   , (A0, a0) (A1, a1) (A2, a2)
109 )
110 
111 
112 
113 
114 
115 
116 
117 namespace boost { namespace phoenix
118 {
119     template <typename A0 , typename A1 , typename A2 , typename A3>
120     struct vector4
121     {
122         typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2; typedef A3 member_type3; A3 a3;
123 
124         typedef mpl::int_<4> size_type;
125         static const int size_value = 4;
126         typedef
127             vector3<A1 , A2 , A3>
128             args_type;
argsboost::phoenix::vector4129         args_type args() const
130         {
131             args_type r = {a1 , a2 , a3};
132             return r;
133         }
134     };
135 }}
136 BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
137     (A0) (A1) (A2) (A3)
138   , ( boost::phoenix::vector4 ) (A0) (A1) (A2) (A3)
139   , (A0, a0) (A1, a1) (A2, a2) (A3, a3)
140 )
141 
142 
143 
144 
145 
146 
147 
148 namespace boost { namespace phoenix
149 {
150     template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
151     struct vector5
152     {
153         typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2; typedef A3 member_type3; A3 a3; typedef A4 member_type4; A4 a4;
154 
155         typedef mpl::int_<5> size_type;
156         static const int size_value = 5;
157         typedef
158             vector4<A1 , A2 , A3 , A4>
159             args_type;
argsboost::phoenix::vector5160         args_type args() const
161         {
162             args_type r = {a1 , a2 , a3 , a4};
163             return r;
164         }
165     };
166 }}
167 BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
168     (A0) (A1) (A2) (A3) (A4)
169   , ( boost::phoenix::vector5 ) (A0) (A1) (A2) (A3) (A4)
170   , (A0, a0) (A1, a1) (A2, a2) (A3, a3) (A4, a4)
171 )
172 
173 
174 
175 
176 
177 
178 
179 namespace boost { namespace phoenix
180 {
181     template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
182     struct vector6
183     {
184         typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2; typedef A3 member_type3; A3 a3; typedef A4 member_type4; A4 a4; typedef A5 member_type5; A5 a5;
185 
186         typedef mpl::int_<6> size_type;
187         static const int size_value = 6;
188         typedef
189             vector5<A1 , A2 , A3 , A4 , A5>
190             args_type;
argsboost::phoenix::vector6191         args_type args() const
192         {
193             args_type r = {a1 , a2 , a3 , a4 , a5};
194             return r;
195         }
196     };
197 }}
198 BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
199     (A0) (A1) (A2) (A3) (A4) (A5)
200   , ( boost::phoenix::vector6 ) (A0) (A1) (A2) (A3) (A4) (A5)
201   , (A0, a0) (A1, a1) (A2, a2) (A3, a3) (A4, a4) (A5, a5)
202 )
203 
204 
205 
206 
207 
208 
209 
210 namespace boost { namespace phoenix
211 {
212     template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
213     struct vector7
214     {
215         typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2; typedef A3 member_type3; A3 a3; typedef A4 member_type4; A4 a4; typedef A5 member_type5; A5 a5; typedef A6 member_type6; A6 a6;
216 
217         typedef mpl::int_<7> size_type;
218         static const int size_value = 7;
219         typedef
220             vector6<A1 , A2 , A3 , A4 , A5 , A6>
221             args_type;
argsboost::phoenix::vector7222         args_type args() const
223         {
224             args_type r = {a1 , a2 , a3 , a4 , a5 , a6};
225             return r;
226         }
227     };
228 }}
229 BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
230     (A0) (A1) (A2) (A3) (A4) (A5) (A6)
231   , ( boost::phoenix::vector7 ) (A0) (A1) (A2) (A3) (A4) (A5) (A6)
232   , (A0, a0) (A1, a1) (A2, a2) (A3, a3) (A4, a4) (A5, a5) (A6, a6)
233 )
234 
235 
236 
237 
238 
239 
240 
241 namespace boost { namespace phoenix
242 {
243     template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
244     struct vector8
245     {
246         typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2; typedef A3 member_type3; A3 a3; typedef A4 member_type4; A4 a4; typedef A5 member_type5; A5 a5; typedef A6 member_type6; A6 a6; typedef A7 member_type7; A7 a7;
247 
248         typedef mpl::int_<8> size_type;
249         static const int size_value = 8;
250         typedef
251             vector7<A1 , A2 , A3 , A4 , A5 , A6 , A7>
252             args_type;
argsboost::phoenix::vector8253         args_type args() const
254         {
255             args_type r = {a1 , a2 , a3 , a4 , a5 , a6 , a7};
256             return r;
257         }
258     };
259 }}
260 BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
261     (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7)
262   , ( boost::phoenix::vector8 ) (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7)
263   , (A0, a0) (A1, a1) (A2, a2) (A3, a3) (A4, a4) (A5, a5) (A6, a6) (A7, a7)
264 )
265 
266 
267 
268 
269 
270 
271 
272 namespace boost { namespace phoenix
273 {
274     template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
275     struct vector9
276     {
277         typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2; typedef A3 member_type3; A3 a3; typedef A4 member_type4; A4 a4; typedef A5 member_type5; A5 a5; typedef A6 member_type6; A6 a6; typedef A7 member_type7; A7 a7; typedef A8 member_type8; A8 a8;
278 
279         typedef mpl::int_<9> size_type;
280         static const int size_value = 9;
281         typedef
282             vector8<A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
283             args_type;
argsboost::phoenix::vector9284         args_type args() const
285         {
286             args_type r = {a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8};
287             return r;
288         }
289     };
290 }}
291 BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
292     (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8)
293   , ( boost::phoenix::vector9 ) (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8)
294   , (A0, a0) (A1, a1) (A2, a2) (A3, a3) (A4, a4) (A5, a5) (A6, a6) (A7, a7) (A8, a8)
295 )
296 
297 
298 
299 
300 
301 
302 
303 namespace boost { namespace phoenix
304 {
305     template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
306     struct vector10
307     {
308         typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2; typedef A3 member_type3; A3 a3; typedef A4 member_type4; A4 a4; typedef A5 member_type5; A5 a5; typedef A6 member_type6; A6 a6; typedef A7 member_type7; A7 a7; typedef A8 member_type8; A8 a8; typedef A9 member_type9; A9 a9;
309 
310         typedef mpl::int_<10> size_type;
311         static const int size_value = 10;
312         typedef
313             vector9<A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
314             args_type;
argsboost::phoenix::vector10315         args_type args() const
316         {
317             args_type r = {a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9};
318             return r;
319         }
320     };
321 }}
322 BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
323     (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9)
324   , ( boost::phoenix::vector10 ) (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9)
325   , (A0, a0) (A1, a1) (A2, a2) (A3, a3) (A4, a4) (A5, a5) (A6, a6) (A7, a7) (A8, a8) (A9, a9)
326 )
327 
328 
329 
330 
331 
332 
333 
334 namespace boost { namespace phoenix
335 {
336     template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
337     struct vector11
338     {
339         typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2; typedef A3 member_type3; A3 a3; typedef A4 member_type4; A4 a4; typedef A5 member_type5; A5 a5; typedef A6 member_type6; A6 a6; typedef A7 member_type7; A7 a7; typedef A8 member_type8; A8 a8; typedef A9 member_type9; A9 a9; typedef A10 member_type10; A10 a10;
340 
341         typedef mpl::int_<11> size_type;
342         static const int size_value = 11;
343         typedef
344             vector10<A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
345             args_type;
argsboost::phoenix::vector11346         args_type args() const
347         {
348             args_type r = {a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10};
349             return r;
350         }
351     };
352 }}
353 BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
354     (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9) (A10)
355   , ( boost::phoenix::vector11 ) (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9) (A10)
356   , (A0, a0) (A1, a1) (A2, a2) (A3, a3) (A4, a4) (A5, a5) (A6, a6) (A7, a7) (A8, a8) (A9, a9) (A10, a10)
357 )
358