blob: 9776c8385d0b0ce32669d12f3fbb4703c060f629 [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
Jeff Thompson3d613fd2013-10-15 15:39:04 -070011// input: NDNBOOST_FT_syntax type macro to use
12// input: NDNBOOST_FT_cc empty or cc specifier
13// input: NDNBOOST_FT_ell empty or "..."
14// input: NDNBOOST_FT_cv empty or cv qualifiers
15// input: NDNBOOST_FT_flags single decimal integer encoding the flags
16// output: NDNBOOST_FT_n number of component types (arity+1)
17// output: NDNBOOST_FT_arity current arity
18// output: NDNBOOST_FT_type macro that expands to the type
19// output: NDNBOOST_FT_tplargs(p) template arguments with given prefix
20// output: NDNBOOST_FT_params(p) parameters with given prefix
Jeff Thompsona28eed82013-08-22 16:21:10 -070021
22# include <ndnboost/function_types/detail/synthesize_impl/arity10_1.hpp>
Jeff Thompson3d613fd2013-10-15 15:39:04 -070023# define NDNBOOST_FT_make_type(flags,cc,arity) NDNBOOST_FT_make_type_impl(flags,cc,arity)
24# define NDNBOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
Jeff Thompsona28eed82013-08-22 16:21:10 -070025template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
Jeff Thompson3d613fd2013-10-15 15:39:04 -070026struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,11)
Jeff Thompsona28eed82013-08-22 16:21:10 -070027{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070028typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
Jeff Thompsona28eed82013-08-22 16:21:10 -070029};
30template< >
Jeff Thompson3d613fd2013-10-15 15:39:04 -070031struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 12 >
Jeff Thompsona28eed82013-08-22 16:21:10 -070032{
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;
48public:
Jeff Thompson3d613fd2013-10-15 15:39:04 -070049typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,11)
Jeff Thompsona28eed82013-08-22 16:21:10 -070050< typename mpl::deref< iter_0 > ::type
51, typename detail::cv_traits<
52typename mpl::deref< iter_1 > ::type > ::type
53, typename mpl::deref< iter_2 > ::type
54, typename mpl::deref< iter_3 > ::type
55, typename mpl::deref< iter_4 > ::type
56, typename mpl::deref< iter_5 > ::type
57, typename mpl::deref< iter_6 > ::type
58, typename mpl::deref< iter_7 > ::type
59, typename mpl::deref< iter_8 > ::type
60, typename mpl::deref< iter_9 > ::type
61, typename mpl::deref< iter_10 > ::type
62, typename mpl::deref< iter_11 > ::type
63> ::type type;
64};
65};
66template< 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 >
Jeff Thompson3d613fd2013-10-15 15:39:04 -070067struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,12)
Jeff Thompsona28eed82013-08-22 16:21:10 -070068{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070069typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
Jeff Thompsona28eed82013-08-22 16:21:10 -070070};
71template< >
Jeff Thompson3d613fd2013-10-15 15:39:04 -070072struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 13 >
Jeff Thompsona28eed82013-08-22 16:21:10 -070073{
74template<typename S> struct synthesize_impl_i
75{
76private:
77typedef typename mpl::begin<S> ::type iter_0;
78typedef typename mpl::next< iter_0 > ::type iter_1;
79typedef typename mpl::next< iter_1 > ::type iter_2;
80typedef typename mpl::next< iter_2 > ::type iter_3;
81typedef typename mpl::next< iter_3 > ::type iter_4;
82typedef typename mpl::next< iter_4 > ::type iter_5;
83typedef typename mpl::next< iter_5 > ::type iter_6;
84typedef typename mpl::next< iter_6 > ::type iter_7;
85typedef typename mpl::next< iter_7 > ::type iter_8;
86typedef typename mpl::next< iter_8 > ::type iter_9;
87typedef typename mpl::next< iter_9 > ::type iter_10;
88typedef typename mpl::next< iter_10 > ::type iter_11;
89typedef typename mpl::next< iter_11 > ::type iter_12;
90public:
Jeff Thompson3d613fd2013-10-15 15:39:04 -070091typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,12)
Jeff Thompsona28eed82013-08-22 16:21:10 -070092< typename mpl::deref< iter_0 > ::type
93, typename detail::cv_traits<
94typename mpl::deref< iter_1 > ::type > ::type
95, typename mpl::deref< iter_2 > ::type
96, typename mpl::deref< iter_3 > ::type
97, typename mpl::deref< iter_4 > ::type
98, typename mpl::deref< iter_5 > ::type
99, typename mpl::deref< iter_6 > ::type
100, typename mpl::deref< iter_7 > ::type
101, typename mpl::deref< iter_8 > ::type
102, typename mpl::deref< iter_9 > ::type
103, typename mpl::deref< iter_10 > ::type
104, typename mpl::deref< iter_11 > ::type
105, typename mpl::deref< iter_12 > ::type
106> ::type type;
107};
108};
109template< 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 >
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700110struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,13)
Jeff Thompsona28eed82013-08-22 16:21:10 -0700111{
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700112typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
Jeff Thompsona28eed82013-08-22 16:21:10 -0700113};
114template< >
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700115struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 14 >
Jeff Thompsona28eed82013-08-22 16:21:10 -0700116{
117template<typename S> struct synthesize_impl_i
118{
119private:
120typedef typename mpl::begin<S> ::type iter_0;
121typedef typename mpl::next< iter_0 > ::type iter_1;
122typedef typename mpl::next< iter_1 > ::type iter_2;
123typedef typename mpl::next< iter_2 > ::type iter_3;
124typedef typename mpl::next< iter_3 > ::type iter_4;
125typedef typename mpl::next< iter_4 > ::type iter_5;
126typedef typename mpl::next< iter_5 > ::type iter_6;
127typedef typename mpl::next< iter_6 > ::type iter_7;
128typedef typename mpl::next< iter_7 > ::type iter_8;
129typedef typename mpl::next< iter_8 > ::type iter_9;
130typedef typename mpl::next< iter_9 > ::type iter_10;
131typedef typename mpl::next< iter_10 > ::type iter_11;
132typedef typename mpl::next< iter_11 > ::type iter_12;
133typedef typename mpl::next< iter_12 > ::type iter_13;
134public:
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700135typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,13)
Jeff Thompsona28eed82013-08-22 16:21:10 -0700136< typename mpl::deref< iter_0 > ::type
137, typename detail::cv_traits<
138typename mpl::deref< iter_1 > ::type > ::type
139, typename mpl::deref< iter_2 > ::type
140, typename mpl::deref< iter_3 > ::type
141, typename mpl::deref< iter_4 > ::type
142, typename mpl::deref< iter_5 > ::type
143, typename mpl::deref< iter_6 > ::type
144, typename mpl::deref< iter_7 > ::type
145, typename mpl::deref< iter_8 > ::type
146, typename mpl::deref< iter_9 > ::type
147, typename mpl::deref< iter_10 > ::type
148, typename mpl::deref< iter_11 > ::type
149, typename mpl::deref< iter_12 > ::type
150, typename mpl::deref< iter_13 > ::type
151> ::type type;
152};
153};
154template< 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 >
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700155struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,14)
Jeff Thompsona28eed82013-08-22 16:21:10 -0700156{
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700157typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
Jeff Thompsona28eed82013-08-22 16:21:10 -0700158};
159template< >
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700160struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 15 >
Jeff Thompsona28eed82013-08-22 16:21:10 -0700161{
162template<typename S> struct synthesize_impl_i
163{
164private:
165typedef typename mpl::begin<S> ::type iter_0;
166typedef typename mpl::next< iter_0 > ::type iter_1;
167typedef typename mpl::next< iter_1 > ::type iter_2;
168typedef typename mpl::next< iter_2 > ::type iter_3;
169typedef typename mpl::next< iter_3 > ::type iter_4;
170typedef typename mpl::next< iter_4 > ::type iter_5;
171typedef typename mpl::next< iter_5 > ::type iter_6;
172typedef typename mpl::next< iter_6 > ::type iter_7;
173typedef typename mpl::next< iter_7 > ::type iter_8;
174typedef typename mpl::next< iter_8 > ::type iter_9;
175typedef typename mpl::next< iter_9 > ::type iter_10;
176typedef typename mpl::next< iter_10 > ::type iter_11;
177typedef typename mpl::next< iter_11 > ::type iter_12;
178typedef typename mpl::next< iter_12 > ::type iter_13;
179typedef typename mpl::next< iter_13 > ::type iter_14;
180public:
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700181typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,14)
Jeff Thompsona28eed82013-08-22 16:21:10 -0700182< typename mpl::deref< iter_0 > ::type
183, typename detail::cv_traits<
184typename mpl::deref< iter_1 > ::type > ::type
185, typename mpl::deref< iter_2 > ::type
186, typename mpl::deref< iter_3 > ::type
187, typename mpl::deref< iter_4 > ::type
188, typename mpl::deref< iter_5 > ::type
189, typename mpl::deref< iter_6 > ::type
190, typename mpl::deref< iter_7 > ::type
191, typename mpl::deref< iter_8 > ::type
192, typename mpl::deref< iter_9 > ::type
193, typename mpl::deref< iter_10 > ::type
194, typename mpl::deref< iter_11 > ::type
195, typename mpl::deref< iter_12 > ::type
196, typename mpl::deref< iter_13 > ::type
197, typename mpl::deref< iter_14 > ::type
198> ::type type;
199};
200};
201template< 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 >
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700202struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,15)
Jeff Thompsona28eed82013-08-22 16:21:10 -0700203{
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700204typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
Jeff Thompsona28eed82013-08-22 16:21:10 -0700205};
206template< >
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700207struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 16 >
Jeff Thompsona28eed82013-08-22 16:21:10 -0700208{
209template<typename S> struct synthesize_impl_i
210{
211private:
212typedef typename mpl::begin<S> ::type iter_0;
213typedef typename mpl::next< iter_0 > ::type iter_1;
214typedef typename mpl::next< iter_1 > ::type iter_2;
215typedef typename mpl::next< iter_2 > ::type iter_3;
216typedef typename mpl::next< iter_3 > ::type iter_4;
217typedef typename mpl::next< iter_4 > ::type iter_5;
218typedef typename mpl::next< iter_5 > ::type iter_6;
219typedef typename mpl::next< iter_6 > ::type iter_7;
220typedef typename mpl::next< iter_7 > ::type iter_8;
221typedef typename mpl::next< iter_8 > ::type iter_9;
222typedef typename mpl::next< iter_9 > ::type iter_10;
223typedef typename mpl::next< iter_10 > ::type iter_11;
224typedef typename mpl::next< iter_11 > ::type iter_12;
225typedef typename mpl::next< iter_12 > ::type iter_13;
226typedef typename mpl::next< iter_13 > ::type iter_14;
227typedef typename mpl::next< iter_14 > ::type iter_15;
228public:
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700229typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,15)
Jeff Thompsona28eed82013-08-22 16:21:10 -0700230< typename mpl::deref< iter_0 > ::type
231, typename detail::cv_traits<
232typename mpl::deref< iter_1 > ::type > ::type
233, typename mpl::deref< iter_2 > ::type
234, typename mpl::deref< iter_3 > ::type
235, typename mpl::deref< iter_4 > ::type
236, typename mpl::deref< iter_5 > ::type
237, typename mpl::deref< iter_6 > ::type
238, typename mpl::deref< iter_7 > ::type
239, typename mpl::deref< iter_8 > ::type
240, typename mpl::deref< iter_9 > ::type
241, typename mpl::deref< iter_10 > ::type
242, typename mpl::deref< iter_11 > ::type
243, typename mpl::deref< iter_12 > ::type
244, typename mpl::deref< iter_13 > ::type
245, typename mpl::deref< iter_14 > ::type
246, typename mpl::deref< iter_15 > ::type
247> ::type type;
248};
249};
250template< 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 >
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700251struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,16)
Jeff Thompsona28eed82013-08-22 16:21:10 -0700252{
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700253typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
Jeff Thompsona28eed82013-08-22 16:21:10 -0700254};
255template< >
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700256struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 17 >
Jeff Thompsona28eed82013-08-22 16:21:10 -0700257{
258template<typename S> struct synthesize_impl_i
259{
260private:
261typedef typename mpl::begin<S> ::type iter_0;
262typedef typename mpl::next< iter_0 > ::type iter_1;
263typedef typename mpl::next< iter_1 > ::type iter_2;
264typedef typename mpl::next< iter_2 > ::type iter_3;
265typedef typename mpl::next< iter_3 > ::type iter_4;
266typedef typename mpl::next< iter_4 > ::type iter_5;
267typedef typename mpl::next< iter_5 > ::type iter_6;
268typedef typename mpl::next< iter_6 > ::type iter_7;
269typedef typename mpl::next< iter_7 > ::type iter_8;
270typedef typename mpl::next< iter_8 > ::type iter_9;
271typedef typename mpl::next< iter_9 > ::type iter_10;
272typedef typename mpl::next< iter_10 > ::type iter_11;
273typedef typename mpl::next< iter_11 > ::type iter_12;
274typedef typename mpl::next< iter_12 > ::type iter_13;
275typedef typename mpl::next< iter_13 > ::type iter_14;
276typedef typename mpl::next< iter_14 > ::type iter_15;
277typedef typename mpl::next< iter_15 > ::type iter_16;
278public:
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700279typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,16)
Jeff Thompsona28eed82013-08-22 16:21:10 -0700280< typename mpl::deref< iter_0 > ::type
281, typename detail::cv_traits<
282typename mpl::deref< iter_1 > ::type > ::type
283, typename mpl::deref< iter_2 > ::type
284, typename mpl::deref< iter_3 > ::type
285, typename mpl::deref< iter_4 > ::type
286, typename mpl::deref< iter_5 > ::type
287, typename mpl::deref< iter_6 > ::type
288, typename mpl::deref< iter_7 > ::type
289, typename mpl::deref< iter_8 > ::type
290, typename mpl::deref< iter_9 > ::type
291, typename mpl::deref< iter_10 > ::type
292, typename mpl::deref< iter_11 > ::type
293, typename mpl::deref< iter_12 > ::type
294, typename mpl::deref< iter_13 > ::type
295, typename mpl::deref< iter_14 > ::type
296, typename mpl::deref< iter_15 > ::type
297, typename mpl::deref< iter_16 > ::type
298> ::type type;
299};
300};
301template< 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 >
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700302struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,17)
Jeff Thompsona28eed82013-08-22 16:21:10 -0700303{
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700304typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
Jeff Thompsona28eed82013-08-22 16:21:10 -0700305};
306template< >
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700307struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 18 >
Jeff Thompsona28eed82013-08-22 16:21:10 -0700308{
309template<typename S> struct synthesize_impl_i
310{
311private:
312typedef typename mpl::begin<S> ::type iter_0;
313typedef typename mpl::next< iter_0 > ::type iter_1;
314typedef typename mpl::next< iter_1 > ::type iter_2;
315typedef typename mpl::next< iter_2 > ::type iter_3;
316typedef typename mpl::next< iter_3 > ::type iter_4;
317typedef typename mpl::next< iter_4 > ::type iter_5;
318typedef typename mpl::next< iter_5 > ::type iter_6;
319typedef typename mpl::next< iter_6 > ::type iter_7;
320typedef typename mpl::next< iter_7 > ::type iter_8;
321typedef typename mpl::next< iter_8 > ::type iter_9;
322typedef typename mpl::next< iter_9 > ::type iter_10;
323typedef typename mpl::next< iter_10 > ::type iter_11;
324typedef typename mpl::next< iter_11 > ::type iter_12;
325typedef typename mpl::next< iter_12 > ::type iter_13;
326typedef typename mpl::next< iter_13 > ::type iter_14;
327typedef typename mpl::next< iter_14 > ::type iter_15;
328typedef typename mpl::next< iter_15 > ::type iter_16;
329typedef typename mpl::next< iter_16 > ::type iter_17;
330public:
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700331typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,17)
Jeff Thompsona28eed82013-08-22 16:21:10 -0700332< typename mpl::deref< iter_0 > ::type
333, typename detail::cv_traits<
334typename mpl::deref< iter_1 > ::type > ::type
335, typename mpl::deref< iter_2 > ::type
336, typename mpl::deref< iter_3 > ::type
337, typename mpl::deref< iter_4 > ::type
338, typename mpl::deref< iter_5 > ::type
339, typename mpl::deref< iter_6 > ::type
340, typename mpl::deref< iter_7 > ::type
341, typename mpl::deref< iter_8 > ::type
342, typename mpl::deref< iter_9 > ::type
343, typename mpl::deref< iter_10 > ::type
344, typename mpl::deref< iter_11 > ::type
345, typename mpl::deref< iter_12 > ::type
346, typename mpl::deref< iter_13 > ::type
347, typename mpl::deref< iter_14 > ::type
348, typename mpl::deref< iter_15 > ::type
349, typename mpl::deref< iter_16 > ::type
350, typename mpl::deref< iter_17 > ::type
351> ::type type;
352};
353};
354template< 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 >
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700355struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,18)
Jeff Thompsona28eed82013-08-22 16:21:10 -0700356{
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700357typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
Jeff Thompsona28eed82013-08-22 16:21:10 -0700358};
359template< >
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700360struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 19 >
Jeff Thompsona28eed82013-08-22 16:21:10 -0700361{
362template<typename S> struct synthesize_impl_i
363{
364private:
365typedef typename mpl::begin<S> ::type iter_0;
366typedef typename mpl::next< iter_0 > ::type iter_1;
367typedef typename mpl::next< iter_1 > ::type iter_2;
368typedef typename mpl::next< iter_2 > ::type iter_3;
369typedef typename mpl::next< iter_3 > ::type iter_4;
370typedef typename mpl::next< iter_4 > ::type iter_5;
371typedef typename mpl::next< iter_5 > ::type iter_6;
372typedef typename mpl::next< iter_6 > ::type iter_7;
373typedef typename mpl::next< iter_7 > ::type iter_8;
374typedef typename mpl::next< iter_8 > ::type iter_9;
375typedef typename mpl::next< iter_9 > ::type iter_10;
376typedef typename mpl::next< iter_10 > ::type iter_11;
377typedef typename mpl::next< iter_11 > ::type iter_12;
378typedef typename mpl::next< iter_12 > ::type iter_13;
379typedef typename mpl::next< iter_13 > ::type iter_14;
380typedef typename mpl::next< iter_14 > ::type iter_15;
381typedef typename mpl::next< iter_15 > ::type iter_16;
382typedef typename mpl::next< iter_16 > ::type iter_17;
383typedef typename mpl::next< iter_17 > ::type iter_18;
384public:
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700385typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,18)
Jeff Thompsona28eed82013-08-22 16:21:10 -0700386< typename mpl::deref< iter_0 > ::type
387, typename detail::cv_traits<
388typename mpl::deref< iter_1 > ::type > ::type
389, typename mpl::deref< iter_2 > ::type
390, typename mpl::deref< iter_3 > ::type
391, typename mpl::deref< iter_4 > ::type
392, typename mpl::deref< iter_5 > ::type
393, typename mpl::deref< iter_6 > ::type
394, typename mpl::deref< iter_7 > ::type
395, typename mpl::deref< iter_8 > ::type
396, typename mpl::deref< iter_9 > ::type
397, typename mpl::deref< iter_10 > ::type
398, typename mpl::deref< iter_11 > ::type
399, typename mpl::deref< iter_12 > ::type
400, typename mpl::deref< iter_13 > ::type
401, typename mpl::deref< iter_14 > ::type
402, typename mpl::deref< iter_15 > ::type
403, typename mpl::deref< iter_16 > ::type
404, typename mpl::deref< iter_17 > ::type
405, typename mpl::deref< iter_18 > ::type
406> ::type type;
407};
408};
409template< 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 >
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700410struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,19)
Jeff Thompsona28eed82013-08-22 16:21:10 -0700411{
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700412typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
Jeff Thompsona28eed82013-08-22 16:21:10 -0700413};
414template< >
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700415struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 20 >
Jeff Thompsona28eed82013-08-22 16:21:10 -0700416{
417template<typename S> struct synthesize_impl_i
418{
419private:
420typedef typename mpl::begin<S> ::type iter_0;
421typedef typename mpl::next< iter_0 > ::type iter_1;
422typedef typename mpl::next< iter_1 > ::type iter_2;
423typedef typename mpl::next< iter_2 > ::type iter_3;
424typedef typename mpl::next< iter_3 > ::type iter_4;
425typedef typename mpl::next< iter_4 > ::type iter_5;
426typedef typename mpl::next< iter_5 > ::type iter_6;
427typedef typename mpl::next< iter_6 > ::type iter_7;
428typedef typename mpl::next< iter_7 > ::type iter_8;
429typedef typename mpl::next< iter_8 > ::type iter_9;
430typedef typename mpl::next< iter_9 > ::type iter_10;
431typedef typename mpl::next< iter_10 > ::type iter_11;
432typedef typename mpl::next< iter_11 > ::type iter_12;
433typedef typename mpl::next< iter_12 > ::type iter_13;
434typedef typename mpl::next< iter_13 > ::type iter_14;
435typedef typename mpl::next< iter_14 > ::type iter_15;
436typedef typename mpl::next< iter_15 > ::type iter_16;
437typedef typename mpl::next< iter_16 > ::type iter_17;
438typedef typename mpl::next< iter_17 > ::type iter_18;
439typedef typename mpl::next< iter_18 > ::type iter_19;
440public:
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700441typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,19)
Jeff Thompsona28eed82013-08-22 16:21:10 -0700442< typename mpl::deref< iter_0 > ::type
443, typename detail::cv_traits<
444typename mpl::deref< iter_1 > ::type > ::type
445, typename mpl::deref< iter_2 > ::type
446, typename mpl::deref< iter_3 > ::type
447, typename mpl::deref< iter_4 > ::type
448, typename mpl::deref< iter_5 > ::type
449, typename mpl::deref< iter_6 > ::type
450, typename mpl::deref< iter_7 > ::type
451, typename mpl::deref< iter_8 > ::type
452, typename mpl::deref< iter_9 > ::type
453, typename mpl::deref< iter_10 > ::type
454, typename mpl::deref< iter_11 > ::type
455, typename mpl::deref< iter_12 > ::type
456, typename mpl::deref< iter_13 > ::type
457, typename mpl::deref< iter_14 > ::type
458, typename mpl::deref< iter_15 > ::type
459, typename mpl::deref< iter_16 > ::type
460, typename mpl::deref< iter_17 > ::type
461, typename mpl::deref< iter_18 > ::type
462, typename mpl::deref< iter_19 > ::type
463> ::type type;
464};
465};
466template< 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 >
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700467struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,20)
Jeff Thompsona28eed82013-08-22 16:21:10 -0700468{
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700469typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
Jeff Thompsona28eed82013-08-22 16:21:10 -0700470};
471template< >
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700472struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 21 >
Jeff Thompsona28eed82013-08-22 16:21:10 -0700473{
474template<typename S> struct synthesize_impl_i
475{
476private:
477typedef typename mpl::begin<S> ::type iter_0;
478typedef typename mpl::next< iter_0 > ::type iter_1;
479typedef typename mpl::next< iter_1 > ::type iter_2;
480typedef typename mpl::next< iter_2 > ::type iter_3;
481typedef typename mpl::next< iter_3 > ::type iter_4;
482typedef typename mpl::next< iter_4 > ::type iter_5;
483typedef typename mpl::next< iter_5 > ::type iter_6;
484typedef typename mpl::next< iter_6 > ::type iter_7;
485typedef typename mpl::next< iter_7 > ::type iter_8;
486typedef typename mpl::next< iter_8 > ::type iter_9;
487typedef typename mpl::next< iter_9 > ::type iter_10;
488typedef typename mpl::next< iter_10 > ::type iter_11;
489typedef typename mpl::next< iter_11 > ::type iter_12;
490typedef typename mpl::next< iter_12 > ::type iter_13;
491typedef typename mpl::next< iter_13 > ::type iter_14;
492typedef typename mpl::next< iter_14 > ::type iter_15;
493typedef typename mpl::next< iter_15 > ::type iter_16;
494typedef typename mpl::next< iter_16 > ::type iter_17;
495typedef typename mpl::next< iter_17 > ::type iter_18;
496typedef typename mpl::next< iter_18 > ::type iter_19;
497typedef typename mpl::next< iter_19 > ::type iter_20;
498public:
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700499typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,20)
Jeff Thompsona28eed82013-08-22 16:21:10 -0700500< typename mpl::deref< iter_0 > ::type
501, typename detail::cv_traits<
502typename mpl::deref< iter_1 > ::type > ::type
503, typename mpl::deref< iter_2 > ::type
504, typename mpl::deref< iter_3 > ::type
505, typename mpl::deref< iter_4 > ::type
506, typename mpl::deref< iter_5 > ::type
507, typename mpl::deref< iter_6 > ::type
508, typename mpl::deref< iter_7 > ::type
509, typename mpl::deref< iter_8 > ::type
510, typename mpl::deref< iter_9 > ::type
511, typename mpl::deref< iter_10 > ::type
512, typename mpl::deref< iter_11 > ::type
513, typename mpl::deref< iter_12 > ::type
514, typename mpl::deref< iter_13 > ::type
515, typename mpl::deref< iter_14 > ::type
516, typename mpl::deref< iter_15 > ::type
517, typename mpl::deref< iter_16 > ::type
518, typename mpl::deref< iter_17 > ::type
519, typename mpl::deref< iter_18 > ::type
520, typename mpl::deref< iter_19 > ::type
521, typename mpl::deref< iter_20 > ::type
522> ::type type;
523};
524};
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700525# undef NDNBOOST_FT_make_type
526# undef NDNBOOST_FT_make_type_impl
Jeff Thompsona28eed82013-08-22 16:21:10 -0700527