blob: 0a7530d9666a3c6af6d0f8cf3b8fcdb489d990af [file] [log] [blame]
Jeff Thompsona28eed82013-08-22 16:21:10 -07001
2// (C) Copyright Tobias Schwinger
3//
4// Use modification and distribution are subject to the boost Software License,
5// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
6
7//------------------------------------------------------------------------------
8
9// no include guards, this file is intended for multiple inclusion
10
11// input: BOOST_FT_syntax type macro to use
12// input: BOOST_FT_cc empty or cc specifier
13// input: BOOST_FT_ell empty or "..."
14// input: BOOST_FT_cv empty or cv qualifiers
15// input: BOOST_FT_flags single decimal integer encoding the flags
16// output: BOOST_FT_n number of component types (arity+1)
17// output: BOOST_FT_arity current arity
18// output: BOOST_FT_type macro that expands to the type
19// output: BOOST_FT_tplargs(p) template arguments with given prefix
20// output: BOOST_FT_params(p) parameters with given prefix
21
22# include <ndnboost/function_types/detail/synthesize_impl/arity20_1.hpp>
23# define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
24# define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
25template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 >
26struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,21)
27{
28typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 BOOST_FT_ell) BOOST_FT_cv ;
29};
30template< >
31struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 22 >
32{
33template<typename S> struct synthesize_impl_i
34{
35private:
36typedef typename mpl::begin<S> ::type iter_0;
37typedef typename mpl::next< iter_0 > ::type iter_1;
38typedef typename mpl::next< iter_1 > ::type iter_2;
39typedef typename mpl::next< iter_2 > ::type iter_3;
40typedef typename mpl::next< iter_3 > ::type iter_4;
41typedef typename mpl::next< iter_4 > ::type iter_5;
42typedef typename mpl::next< iter_5 > ::type iter_6;
43typedef typename mpl::next< iter_6 > ::type iter_7;
44typedef typename mpl::next< iter_7 > ::type iter_8;
45typedef typename mpl::next< iter_8 > ::type iter_9;
46typedef typename mpl::next< iter_9 > ::type iter_10;
47typedef typename mpl::next< iter_10 > ::type iter_11;
48typedef typename mpl::next< iter_11 > ::type iter_12;
49typedef typename mpl::next< iter_12 > ::type iter_13;
50typedef typename mpl::next< iter_13 > ::type iter_14;
51typedef typename mpl::next< iter_14 > ::type iter_15;
52typedef typename mpl::next< iter_15 > ::type iter_16;
53typedef typename mpl::next< iter_16 > ::type iter_17;
54typedef typename mpl::next< iter_17 > ::type iter_18;
55typedef typename mpl::next< iter_18 > ::type iter_19;
56typedef typename mpl::next< iter_19 > ::type iter_20;
57typedef typename mpl::next< iter_20 > ::type iter_21;
58public:
59typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,21)
60< typename mpl::deref< iter_0 > ::type
61, typename detail::cv_traits<
62typename mpl::deref< iter_1 > ::type > ::type
63, typename mpl::deref< iter_2 > ::type
64, typename mpl::deref< iter_3 > ::type
65, typename mpl::deref< iter_4 > ::type
66, typename mpl::deref< iter_5 > ::type
67, typename mpl::deref< iter_6 > ::type
68, typename mpl::deref< iter_7 > ::type
69, typename mpl::deref< iter_8 > ::type
70, typename mpl::deref< iter_9 > ::type
71, typename mpl::deref< iter_10 > ::type
72, typename mpl::deref< iter_11 > ::type
73, typename mpl::deref< iter_12 > ::type
74, typename mpl::deref< iter_13 > ::type
75, typename mpl::deref< iter_14 > ::type
76, typename mpl::deref< iter_15 > ::type
77, typename mpl::deref< iter_16 > ::type
78, typename mpl::deref< iter_17 > ::type
79, typename mpl::deref< iter_18 > ::type
80, typename mpl::deref< iter_19 > ::type
81, typename mpl::deref< iter_20 > ::type
82, typename mpl::deref< iter_21 > ::type
83> ::type type;
84};
85};
86template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 >
87struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,22)
88{
89typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 BOOST_FT_ell) BOOST_FT_cv ;
90};
91template< >
92struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 23 >
93{
94template<typename S> struct synthesize_impl_i
95{
96private:
97typedef typename mpl::begin<S> ::type iter_0;
98typedef typename mpl::next< iter_0 > ::type iter_1;
99typedef typename mpl::next< iter_1 > ::type iter_2;
100typedef typename mpl::next< iter_2 > ::type iter_3;
101typedef typename mpl::next< iter_3 > ::type iter_4;
102typedef typename mpl::next< iter_4 > ::type iter_5;
103typedef typename mpl::next< iter_5 > ::type iter_6;
104typedef typename mpl::next< iter_6 > ::type iter_7;
105typedef typename mpl::next< iter_7 > ::type iter_8;
106typedef typename mpl::next< iter_8 > ::type iter_9;
107typedef typename mpl::next< iter_9 > ::type iter_10;
108typedef typename mpl::next< iter_10 > ::type iter_11;
109typedef typename mpl::next< iter_11 > ::type iter_12;
110typedef typename mpl::next< iter_12 > ::type iter_13;
111typedef typename mpl::next< iter_13 > ::type iter_14;
112typedef typename mpl::next< iter_14 > ::type iter_15;
113typedef typename mpl::next< iter_15 > ::type iter_16;
114typedef typename mpl::next< iter_16 > ::type iter_17;
115typedef typename mpl::next< iter_17 > ::type iter_18;
116typedef typename mpl::next< iter_18 > ::type iter_19;
117typedef typename mpl::next< iter_19 > ::type iter_20;
118typedef typename mpl::next< iter_20 > ::type iter_21;
119typedef typename mpl::next< iter_21 > ::type iter_22;
120public:
121typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,22)
122< typename mpl::deref< iter_0 > ::type
123, typename detail::cv_traits<
124typename mpl::deref< iter_1 > ::type > ::type
125, typename mpl::deref< iter_2 > ::type
126, typename mpl::deref< iter_3 > ::type
127, typename mpl::deref< iter_4 > ::type
128, typename mpl::deref< iter_5 > ::type
129, typename mpl::deref< iter_6 > ::type
130, typename mpl::deref< iter_7 > ::type
131, typename mpl::deref< iter_8 > ::type
132, typename mpl::deref< iter_9 > ::type
133, typename mpl::deref< iter_10 > ::type
134, typename mpl::deref< iter_11 > ::type
135, typename mpl::deref< iter_12 > ::type
136, typename mpl::deref< iter_13 > ::type
137, typename mpl::deref< iter_14 > ::type
138, typename mpl::deref< iter_15 > ::type
139, typename mpl::deref< iter_16 > ::type
140, typename mpl::deref< iter_17 > ::type
141, typename mpl::deref< iter_18 > ::type
142, typename mpl::deref< iter_19 > ::type
143, typename mpl::deref< iter_20 > ::type
144, typename mpl::deref< iter_21 > ::type
145, typename mpl::deref< iter_22 > ::type
146> ::type type;
147};
148};
149template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 >
150struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,23)
151{
152typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 BOOST_FT_ell) BOOST_FT_cv ;
153};
154template< >
155struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 24 >
156{
157template<typename S> struct synthesize_impl_i
158{
159private:
160typedef typename mpl::begin<S> ::type iter_0;
161typedef typename mpl::next< iter_0 > ::type iter_1;
162typedef typename mpl::next< iter_1 > ::type iter_2;
163typedef typename mpl::next< iter_2 > ::type iter_3;
164typedef typename mpl::next< iter_3 > ::type iter_4;
165typedef typename mpl::next< iter_4 > ::type iter_5;
166typedef typename mpl::next< iter_5 > ::type iter_6;
167typedef typename mpl::next< iter_6 > ::type iter_7;
168typedef typename mpl::next< iter_7 > ::type iter_8;
169typedef typename mpl::next< iter_8 > ::type iter_9;
170typedef typename mpl::next< iter_9 > ::type iter_10;
171typedef typename mpl::next< iter_10 > ::type iter_11;
172typedef typename mpl::next< iter_11 > ::type iter_12;
173typedef typename mpl::next< iter_12 > ::type iter_13;
174typedef typename mpl::next< iter_13 > ::type iter_14;
175typedef typename mpl::next< iter_14 > ::type iter_15;
176typedef typename mpl::next< iter_15 > ::type iter_16;
177typedef typename mpl::next< iter_16 > ::type iter_17;
178typedef typename mpl::next< iter_17 > ::type iter_18;
179typedef typename mpl::next< iter_18 > ::type iter_19;
180typedef typename mpl::next< iter_19 > ::type iter_20;
181typedef typename mpl::next< iter_20 > ::type iter_21;
182typedef typename mpl::next< iter_21 > ::type iter_22;
183typedef typename mpl::next< iter_22 > ::type iter_23;
184public:
185typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,23)
186< typename mpl::deref< iter_0 > ::type
187, typename detail::cv_traits<
188typename mpl::deref< iter_1 > ::type > ::type
189, typename mpl::deref< iter_2 > ::type
190, typename mpl::deref< iter_3 > ::type
191, typename mpl::deref< iter_4 > ::type
192, typename mpl::deref< iter_5 > ::type
193, typename mpl::deref< iter_6 > ::type
194, typename mpl::deref< iter_7 > ::type
195, typename mpl::deref< iter_8 > ::type
196, typename mpl::deref< iter_9 > ::type
197, typename mpl::deref< iter_10 > ::type
198, typename mpl::deref< iter_11 > ::type
199, typename mpl::deref< iter_12 > ::type
200, typename mpl::deref< iter_13 > ::type
201, typename mpl::deref< iter_14 > ::type
202, typename mpl::deref< iter_15 > ::type
203, typename mpl::deref< iter_16 > ::type
204, typename mpl::deref< iter_17 > ::type
205, typename mpl::deref< iter_18 > ::type
206, typename mpl::deref< iter_19 > ::type
207, typename mpl::deref< iter_20 > ::type
208, typename mpl::deref< iter_21 > ::type
209, typename mpl::deref< iter_22 > ::type
210, typename mpl::deref< iter_23 > ::type
211> ::type type;
212};
213};
214template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 >
215struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,24)
216{
217typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 BOOST_FT_ell) BOOST_FT_cv ;
218};
219template< >
220struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 25 >
221{
222template<typename S> struct synthesize_impl_i
223{
224private:
225typedef typename mpl::begin<S> ::type iter_0;
226typedef typename mpl::next< iter_0 > ::type iter_1;
227typedef typename mpl::next< iter_1 > ::type iter_2;
228typedef typename mpl::next< iter_2 > ::type iter_3;
229typedef typename mpl::next< iter_3 > ::type iter_4;
230typedef typename mpl::next< iter_4 > ::type iter_5;
231typedef typename mpl::next< iter_5 > ::type iter_6;
232typedef typename mpl::next< iter_6 > ::type iter_7;
233typedef typename mpl::next< iter_7 > ::type iter_8;
234typedef typename mpl::next< iter_8 > ::type iter_9;
235typedef typename mpl::next< iter_9 > ::type iter_10;
236typedef typename mpl::next< iter_10 > ::type iter_11;
237typedef typename mpl::next< iter_11 > ::type iter_12;
238typedef typename mpl::next< iter_12 > ::type iter_13;
239typedef typename mpl::next< iter_13 > ::type iter_14;
240typedef typename mpl::next< iter_14 > ::type iter_15;
241typedef typename mpl::next< iter_15 > ::type iter_16;
242typedef typename mpl::next< iter_16 > ::type iter_17;
243typedef typename mpl::next< iter_17 > ::type iter_18;
244typedef typename mpl::next< iter_18 > ::type iter_19;
245typedef typename mpl::next< iter_19 > ::type iter_20;
246typedef typename mpl::next< iter_20 > ::type iter_21;
247typedef typename mpl::next< iter_21 > ::type iter_22;
248typedef typename mpl::next< iter_22 > ::type iter_23;
249typedef typename mpl::next< iter_23 > ::type iter_24;
250public:
251typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,24)
252< typename mpl::deref< iter_0 > ::type
253, typename detail::cv_traits<
254typename mpl::deref< iter_1 > ::type > ::type
255, typename mpl::deref< iter_2 > ::type
256, typename mpl::deref< iter_3 > ::type
257, typename mpl::deref< iter_4 > ::type
258, typename mpl::deref< iter_5 > ::type
259, typename mpl::deref< iter_6 > ::type
260, typename mpl::deref< iter_7 > ::type
261, typename mpl::deref< iter_8 > ::type
262, typename mpl::deref< iter_9 > ::type
263, typename mpl::deref< iter_10 > ::type
264, typename mpl::deref< iter_11 > ::type
265, typename mpl::deref< iter_12 > ::type
266, typename mpl::deref< iter_13 > ::type
267, typename mpl::deref< iter_14 > ::type
268, typename mpl::deref< iter_15 > ::type
269, typename mpl::deref< iter_16 > ::type
270, typename mpl::deref< iter_17 > ::type
271, typename mpl::deref< iter_18 > ::type
272, typename mpl::deref< iter_19 > ::type
273, typename mpl::deref< iter_20 > ::type
274, typename mpl::deref< iter_21 > ::type
275, typename mpl::deref< iter_22 > ::type
276, typename mpl::deref< iter_23 > ::type
277, typename mpl::deref< iter_24 > ::type
278> ::type type;
279};
280};
281template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 >
282struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,25)
283{
284typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 BOOST_FT_ell) BOOST_FT_cv ;
285};
286template< >
287struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 26 >
288{
289template<typename S> struct synthesize_impl_i
290{
291private:
292typedef typename mpl::begin<S> ::type iter_0;
293typedef typename mpl::next< iter_0 > ::type iter_1;
294typedef typename mpl::next< iter_1 > ::type iter_2;
295typedef typename mpl::next< iter_2 > ::type iter_3;
296typedef typename mpl::next< iter_3 > ::type iter_4;
297typedef typename mpl::next< iter_4 > ::type iter_5;
298typedef typename mpl::next< iter_5 > ::type iter_6;
299typedef typename mpl::next< iter_6 > ::type iter_7;
300typedef typename mpl::next< iter_7 > ::type iter_8;
301typedef typename mpl::next< iter_8 > ::type iter_9;
302typedef typename mpl::next< iter_9 > ::type iter_10;
303typedef typename mpl::next< iter_10 > ::type iter_11;
304typedef typename mpl::next< iter_11 > ::type iter_12;
305typedef typename mpl::next< iter_12 > ::type iter_13;
306typedef typename mpl::next< iter_13 > ::type iter_14;
307typedef typename mpl::next< iter_14 > ::type iter_15;
308typedef typename mpl::next< iter_15 > ::type iter_16;
309typedef typename mpl::next< iter_16 > ::type iter_17;
310typedef typename mpl::next< iter_17 > ::type iter_18;
311typedef typename mpl::next< iter_18 > ::type iter_19;
312typedef typename mpl::next< iter_19 > ::type iter_20;
313typedef typename mpl::next< iter_20 > ::type iter_21;
314typedef typename mpl::next< iter_21 > ::type iter_22;
315typedef typename mpl::next< iter_22 > ::type iter_23;
316typedef typename mpl::next< iter_23 > ::type iter_24;
317typedef typename mpl::next< iter_24 > ::type iter_25;
318public:
319typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,25)
320< typename mpl::deref< iter_0 > ::type
321, typename detail::cv_traits<
322typename mpl::deref< iter_1 > ::type > ::type
323, typename mpl::deref< iter_2 > ::type
324, typename mpl::deref< iter_3 > ::type
325, typename mpl::deref< iter_4 > ::type
326, typename mpl::deref< iter_5 > ::type
327, typename mpl::deref< iter_6 > ::type
328, typename mpl::deref< iter_7 > ::type
329, typename mpl::deref< iter_8 > ::type
330, typename mpl::deref< iter_9 > ::type
331, typename mpl::deref< iter_10 > ::type
332, typename mpl::deref< iter_11 > ::type
333, typename mpl::deref< iter_12 > ::type
334, typename mpl::deref< iter_13 > ::type
335, typename mpl::deref< iter_14 > ::type
336, typename mpl::deref< iter_15 > ::type
337, typename mpl::deref< iter_16 > ::type
338, typename mpl::deref< iter_17 > ::type
339, typename mpl::deref< iter_18 > ::type
340, typename mpl::deref< iter_19 > ::type
341, typename mpl::deref< iter_20 > ::type
342, typename mpl::deref< iter_21 > ::type
343, typename mpl::deref< iter_22 > ::type
344, typename mpl::deref< iter_23 > ::type
345, typename mpl::deref< iter_24 > ::type
346, typename mpl::deref< iter_25 > ::type
347> ::type type;
348};
349};
350template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 >
351struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,26)
352{
353typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 BOOST_FT_ell) BOOST_FT_cv ;
354};
355template< >
356struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 27 >
357{
358template<typename S> struct synthesize_impl_i
359{
360private:
361typedef typename mpl::begin<S> ::type iter_0;
362typedef typename mpl::next< iter_0 > ::type iter_1;
363typedef typename mpl::next< iter_1 > ::type iter_2;
364typedef typename mpl::next< iter_2 > ::type iter_3;
365typedef typename mpl::next< iter_3 > ::type iter_4;
366typedef typename mpl::next< iter_4 > ::type iter_5;
367typedef typename mpl::next< iter_5 > ::type iter_6;
368typedef typename mpl::next< iter_6 > ::type iter_7;
369typedef typename mpl::next< iter_7 > ::type iter_8;
370typedef typename mpl::next< iter_8 > ::type iter_9;
371typedef typename mpl::next< iter_9 > ::type iter_10;
372typedef typename mpl::next< iter_10 > ::type iter_11;
373typedef typename mpl::next< iter_11 > ::type iter_12;
374typedef typename mpl::next< iter_12 > ::type iter_13;
375typedef typename mpl::next< iter_13 > ::type iter_14;
376typedef typename mpl::next< iter_14 > ::type iter_15;
377typedef typename mpl::next< iter_15 > ::type iter_16;
378typedef typename mpl::next< iter_16 > ::type iter_17;
379typedef typename mpl::next< iter_17 > ::type iter_18;
380typedef typename mpl::next< iter_18 > ::type iter_19;
381typedef typename mpl::next< iter_19 > ::type iter_20;
382typedef typename mpl::next< iter_20 > ::type iter_21;
383typedef typename mpl::next< iter_21 > ::type iter_22;
384typedef typename mpl::next< iter_22 > ::type iter_23;
385typedef typename mpl::next< iter_23 > ::type iter_24;
386typedef typename mpl::next< iter_24 > ::type iter_25;
387typedef typename mpl::next< iter_25 > ::type iter_26;
388public:
389typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,26)
390< typename mpl::deref< iter_0 > ::type
391, typename detail::cv_traits<
392typename mpl::deref< iter_1 > ::type > ::type
393, typename mpl::deref< iter_2 > ::type
394, typename mpl::deref< iter_3 > ::type
395, typename mpl::deref< iter_4 > ::type
396, typename mpl::deref< iter_5 > ::type
397, typename mpl::deref< iter_6 > ::type
398, typename mpl::deref< iter_7 > ::type
399, typename mpl::deref< iter_8 > ::type
400, typename mpl::deref< iter_9 > ::type
401, typename mpl::deref< iter_10 > ::type
402, typename mpl::deref< iter_11 > ::type
403, typename mpl::deref< iter_12 > ::type
404, typename mpl::deref< iter_13 > ::type
405, typename mpl::deref< iter_14 > ::type
406, typename mpl::deref< iter_15 > ::type
407, typename mpl::deref< iter_16 > ::type
408, typename mpl::deref< iter_17 > ::type
409, typename mpl::deref< iter_18 > ::type
410, typename mpl::deref< iter_19 > ::type
411, typename mpl::deref< iter_20 > ::type
412, typename mpl::deref< iter_21 > ::type
413, typename mpl::deref< iter_22 > ::type
414, typename mpl::deref< iter_23 > ::type
415, typename mpl::deref< iter_24 > ::type
416, typename mpl::deref< iter_25 > ::type
417, typename mpl::deref< iter_26 > ::type
418> ::type type;
419};
420};
421template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 >
422struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,27)
423{
424typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 BOOST_FT_ell) BOOST_FT_cv ;
425};
426template< >
427struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 28 >
428{
429template<typename S> struct synthesize_impl_i
430{
431private:
432typedef typename mpl::begin<S> ::type iter_0;
433typedef typename mpl::next< iter_0 > ::type iter_1;
434typedef typename mpl::next< iter_1 > ::type iter_2;
435typedef typename mpl::next< iter_2 > ::type iter_3;
436typedef typename mpl::next< iter_3 > ::type iter_4;
437typedef typename mpl::next< iter_4 > ::type iter_5;
438typedef typename mpl::next< iter_5 > ::type iter_6;
439typedef typename mpl::next< iter_6 > ::type iter_7;
440typedef typename mpl::next< iter_7 > ::type iter_8;
441typedef typename mpl::next< iter_8 > ::type iter_9;
442typedef typename mpl::next< iter_9 > ::type iter_10;
443typedef typename mpl::next< iter_10 > ::type iter_11;
444typedef typename mpl::next< iter_11 > ::type iter_12;
445typedef typename mpl::next< iter_12 > ::type iter_13;
446typedef typename mpl::next< iter_13 > ::type iter_14;
447typedef typename mpl::next< iter_14 > ::type iter_15;
448typedef typename mpl::next< iter_15 > ::type iter_16;
449typedef typename mpl::next< iter_16 > ::type iter_17;
450typedef typename mpl::next< iter_17 > ::type iter_18;
451typedef typename mpl::next< iter_18 > ::type iter_19;
452typedef typename mpl::next< iter_19 > ::type iter_20;
453typedef typename mpl::next< iter_20 > ::type iter_21;
454typedef typename mpl::next< iter_21 > ::type iter_22;
455typedef typename mpl::next< iter_22 > ::type iter_23;
456typedef typename mpl::next< iter_23 > ::type iter_24;
457typedef typename mpl::next< iter_24 > ::type iter_25;
458typedef typename mpl::next< iter_25 > ::type iter_26;
459typedef typename mpl::next< iter_26 > ::type iter_27;
460public:
461typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,27)
462< typename mpl::deref< iter_0 > ::type
463, typename detail::cv_traits<
464typename mpl::deref< iter_1 > ::type > ::type
465, typename mpl::deref< iter_2 > ::type
466, typename mpl::deref< iter_3 > ::type
467, typename mpl::deref< iter_4 > ::type
468, typename mpl::deref< iter_5 > ::type
469, typename mpl::deref< iter_6 > ::type
470, typename mpl::deref< iter_7 > ::type
471, typename mpl::deref< iter_8 > ::type
472, typename mpl::deref< iter_9 > ::type
473, typename mpl::deref< iter_10 > ::type
474, typename mpl::deref< iter_11 > ::type
475, typename mpl::deref< iter_12 > ::type
476, typename mpl::deref< iter_13 > ::type
477, typename mpl::deref< iter_14 > ::type
478, typename mpl::deref< iter_15 > ::type
479, typename mpl::deref< iter_16 > ::type
480, typename mpl::deref< iter_17 > ::type
481, typename mpl::deref< iter_18 > ::type
482, typename mpl::deref< iter_19 > ::type
483, typename mpl::deref< iter_20 > ::type
484, typename mpl::deref< iter_21 > ::type
485, typename mpl::deref< iter_22 > ::type
486, typename mpl::deref< iter_23 > ::type
487, typename mpl::deref< iter_24 > ::type
488, typename mpl::deref< iter_25 > ::type
489, typename mpl::deref< iter_26 > ::type
490, typename mpl::deref< iter_27 > ::type
491> ::type type;
492};
493};
494template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 >
495struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,28)
496{
497typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 BOOST_FT_ell) BOOST_FT_cv ;
498};
499template< >
500struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 29 >
501{
502template<typename S> struct synthesize_impl_i
503{
504private:
505typedef typename mpl::begin<S> ::type iter_0;
506typedef typename mpl::next< iter_0 > ::type iter_1;
507typedef typename mpl::next< iter_1 > ::type iter_2;
508typedef typename mpl::next< iter_2 > ::type iter_3;
509typedef typename mpl::next< iter_3 > ::type iter_4;
510typedef typename mpl::next< iter_4 > ::type iter_5;
511typedef typename mpl::next< iter_5 > ::type iter_6;
512typedef typename mpl::next< iter_6 > ::type iter_7;
513typedef typename mpl::next< iter_7 > ::type iter_8;
514typedef typename mpl::next< iter_8 > ::type iter_9;
515typedef typename mpl::next< iter_9 > ::type iter_10;
516typedef typename mpl::next< iter_10 > ::type iter_11;
517typedef typename mpl::next< iter_11 > ::type iter_12;
518typedef typename mpl::next< iter_12 > ::type iter_13;
519typedef typename mpl::next< iter_13 > ::type iter_14;
520typedef typename mpl::next< iter_14 > ::type iter_15;
521typedef typename mpl::next< iter_15 > ::type iter_16;
522typedef typename mpl::next< iter_16 > ::type iter_17;
523typedef typename mpl::next< iter_17 > ::type iter_18;
524typedef typename mpl::next< iter_18 > ::type iter_19;
525typedef typename mpl::next< iter_19 > ::type iter_20;
526typedef typename mpl::next< iter_20 > ::type iter_21;
527typedef typename mpl::next< iter_21 > ::type iter_22;
528typedef typename mpl::next< iter_22 > ::type iter_23;
529typedef typename mpl::next< iter_23 > ::type iter_24;
530typedef typename mpl::next< iter_24 > ::type iter_25;
531typedef typename mpl::next< iter_25 > ::type iter_26;
532typedef typename mpl::next< iter_26 > ::type iter_27;
533typedef typename mpl::next< iter_27 > ::type iter_28;
534public:
535typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,28)
536< typename mpl::deref< iter_0 > ::type
537, typename detail::cv_traits<
538typename mpl::deref< iter_1 > ::type > ::type
539, typename mpl::deref< iter_2 > ::type
540, typename mpl::deref< iter_3 > ::type
541, typename mpl::deref< iter_4 > ::type
542, typename mpl::deref< iter_5 > ::type
543, typename mpl::deref< iter_6 > ::type
544, typename mpl::deref< iter_7 > ::type
545, typename mpl::deref< iter_8 > ::type
546, typename mpl::deref< iter_9 > ::type
547, typename mpl::deref< iter_10 > ::type
548, typename mpl::deref< iter_11 > ::type
549, typename mpl::deref< iter_12 > ::type
550, typename mpl::deref< iter_13 > ::type
551, typename mpl::deref< iter_14 > ::type
552, typename mpl::deref< iter_15 > ::type
553, typename mpl::deref< iter_16 > ::type
554, typename mpl::deref< iter_17 > ::type
555, typename mpl::deref< iter_18 > ::type
556, typename mpl::deref< iter_19 > ::type
557, typename mpl::deref< iter_20 > ::type
558, typename mpl::deref< iter_21 > ::type
559, typename mpl::deref< iter_22 > ::type
560, typename mpl::deref< iter_23 > ::type
561, typename mpl::deref< iter_24 > ::type
562, typename mpl::deref< iter_25 > ::type
563, typename mpl::deref< iter_26 > ::type
564, typename mpl::deref< iter_27 > ::type
565, typename mpl::deref< iter_28 > ::type
566> ::type type;
567};
568};
569template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 >
570struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,29)
571{
572typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 BOOST_FT_ell) BOOST_FT_cv ;
573};
574template< >
575struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 30 >
576{
577template<typename S> struct synthesize_impl_i
578{
579private:
580typedef typename mpl::begin<S> ::type iter_0;
581typedef typename mpl::next< iter_0 > ::type iter_1;
582typedef typename mpl::next< iter_1 > ::type iter_2;
583typedef typename mpl::next< iter_2 > ::type iter_3;
584typedef typename mpl::next< iter_3 > ::type iter_4;
585typedef typename mpl::next< iter_4 > ::type iter_5;
586typedef typename mpl::next< iter_5 > ::type iter_6;
587typedef typename mpl::next< iter_6 > ::type iter_7;
588typedef typename mpl::next< iter_7 > ::type iter_8;
589typedef typename mpl::next< iter_8 > ::type iter_9;
590typedef typename mpl::next< iter_9 > ::type iter_10;
591typedef typename mpl::next< iter_10 > ::type iter_11;
592typedef typename mpl::next< iter_11 > ::type iter_12;
593typedef typename mpl::next< iter_12 > ::type iter_13;
594typedef typename mpl::next< iter_13 > ::type iter_14;
595typedef typename mpl::next< iter_14 > ::type iter_15;
596typedef typename mpl::next< iter_15 > ::type iter_16;
597typedef typename mpl::next< iter_16 > ::type iter_17;
598typedef typename mpl::next< iter_17 > ::type iter_18;
599typedef typename mpl::next< iter_18 > ::type iter_19;
600typedef typename mpl::next< iter_19 > ::type iter_20;
601typedef typename mpl::next< iter_20 > ::type iter_21;
602typedef typename mpl::next< iter_21 > ::type iter_22;
603typedef typename mpl::next< iter_22 > ::type iter_23;
604typedef typename mpl::next< iter_23 > ::type iter_24;
605typedef typename mpl::next< iter_24 > ::type iter_25;
606typedef typename mpl::next< iter_25 > ::type iter_26;
607typedef typename mpl::next< iter_26 > ::type iter_27;
608typedef typename mpl::next< iter_27 > ::type iter_28;
609typedef typename mpl::next< iter_28 > ::type iter_29;
610public:
611typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,29)
612< typename mpl::deref< iter_0 > ::type
613, typename detail::cv_traits<
614typename mpl::deref< iter_1 > ::type > ::type
615, typename mpl::deref< iter_2 > ::type
616, typename mpl::deref< iter_3 > ::type
617, typename mpl::deref< iter_4 > ::type
618, typename mpl::deref< iter_5 > ::type
619, typename mpl::deref< iter_6 > ::type
620, typename mpl::deref< iter_7 > ::type
621, typename mpl::deref< iter_8 > ::type
622, typename mpl::deref< iter_9 > ::type
623, typename mpl::deref< iter_10 > ::type
624, typename mpl::deref< iter_11 > ::type
625, typename mpl::deref< iter_12 > ::type
626, typename mpl::deref< iter_13 > ::type
627, typename mpl::deref< iter_14 > ::type
628, typename mpl::deref< iter_15 > ::type
629, typename mpl::deref< iter_16 > ::type
630, typename mpl::deref< iter_17 > ::type
631, typename mpl::deref< iter_18 > ::type
632, typename mpl::deref< iter_19 > ::type
633, typename mpl::deref< iter_20 > ::type
634, typename mpl::deref< iter_21 > ::type
635, typename mpl::deref< iter_22 > ::type
636, typename mpl::deref< iter_23 > ::type
637, typename mpl::deref< iter_24 > ::type
638, typename mpl::deref< iter_25 > ::type
639, typename mpl::deref< iter_26 > ::type
640, typename mpl::deref< iter_27 > ::type
641, typename mpl::deref< iter_28 > ::type
642, typename mpl::deref< iter_29 > ::type
643> ::type type;
644};
645};
646template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 >
647struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,30)
648{
649typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 BOOST_FT_ell) BOOST_FT_cv ;
650};
651template< >
652struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 31 >
653{
654template<typename S> struct synthesize_impl_i
655{
656private:
657typedef typename mpl::begin<S> ::type iter_0;
658typedef typename mpl::next< iter_0 > ::type iter_1;
659typedef typename mpl::next< iter_1 > ::type iter_2;
660typedef typename mpl::next< iter_2 > ::type iter_3;
661typedef typename mpl::next< iter_3 > ::type iter_4;
662typedef typename mpl::next< iter_4 > ::type iter_5;
663typedef typename mpl::next< iter_5 > ::type iter_6;
664typedef typename mpl::next< iter_6 > ::type iter_7;
665typedef typename mpl::next< iter_7 > ::type iter_8;
666typedef typename mpl::next< iter_8 > ::type iter_9;
667typedef typename mpl::next< iter_9 > ::type iter_10;
668typedef typename mpl::next< iter_10 > ::type iter_11;
669typedef typename mpl::next< iter_11 > ::type iter_12;
670typedef typename mpl::next< iter_12 > ::type iter_13;
671typedef typename mpl::next< iter_13 > ::type iter_14;
672typedef typename mpl::next< iter_14 > ::type iter_15;
673typedef typename mpl::next< iter_15 > ::type iter_16;
674typedef typename mpl::next< iter_16 > ::type iter_17;
675typedef typename mpl::next< iter_17 > ::type iter_18;
676typedef typename mpl::next< iter_18 > ::type iter_19;
677typedef typename mpl::next< iter_19 > ::type iter_20;
678typedef typename mpl::next< iter_20 > ::type iter_21;
679typedef typename mpl::next< iter_21 > ::type iter_22;
680typedef typename mpl::next< iter_22 > ::type iter_23;
681typedef typename mpl::next< iter_23 > ::type iter_24;
682typedef typename mpl::next< iter_24 > ::type iter_25;
683typedef typename mpl::next< iter_25 > ::type iter_26;
684typedef typename mpl::next< iter_26 > ::type iter_27;
685typedef typename mpl::next< iter_27 > ::type iter_28;
686typedef typename mpl::next< iter_28 > ::type iter_29;
687typedef typename mpl::next< iter_29 > ::type iter_30;
688public:
689typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,30)
690< typename mpl::deref< iter_0 > ::type
691, typename detail::cv_traits<
692typename mpl::deref< iter_1 > ::type > ::type
693, typename mpl::deref< iter_2 > ::type
694, typename mpl::deref< iter_3 > ::type
695, typename mpl::deref< iter_4 > ::type
696, typename mpl::deref< iter_5 > ::type
697, typename mpl::deref< iter_6 > ::type
698, typename mpl::deref< iter_7 > ::type
699, typename mpl::deref< iter_8 > ::type
700, typename mpl::deref< iter_9 > ::type
701, typename mpl::deref< iter_10 > ::type
702, typename mpl::deref< iter_11 > ::type
703, typename mpl::deref< iter_12 > ::type
704, typename mpl::deref< iter_13 > ::type
705, typename mpl::deref< iter_14 > ::type
706, typename mpl::deref< iter_15 > ::type
707, typename mpl::deref< iter_16 > ::type
708, typename mpl::deref< iter_17 > ::type
709, typename mpl::deref< iter_18 > ::type
710, typename mpl::deref< iter_19 > ::type
711, typename mpl::deref< iter_20 > ::type
712, typename mpl::deref< iter_21 > ::type
713, typename mpl::deref< iter_22 > ::type
714, typename mpl::deref< iter_23 > ::type
715, typename mpl::deref< iter_24 > ::type
716, typename mpl::deref< iter_25 > ::type
717, typename mpl::deref< iter_26 > ::type
718, typename mpl::deref< iter_27 > ::type
719, typename mpl::deref< iter_28 > ::type
720, typename mpl::deref< iter_29 > ::type
721, typename mpl::deref< iter_30 > ::type
722> ::type type;
723};
724};
725# undef BOOST_FT_make_type
726# undef BOOST_FT_make_type_impl
727