]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/function_types/include/boost/function_types/detail/synthesize_impl/arity10_0.hpp
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / function_types / include / boost / function_types / detail / synthesize_impl / arity10_0.hpp
CommitLineData
7c673cae
FG
1
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# define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
23# define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
24template< typename R >
25struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,0)
26{
27typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (BOOST_FT_nullary_param BOOST_FT_ell) BOOST_FT_cv ;
28};
29template< >
30struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 1 >
31{
32template<typename S> struct synthesize_impl_i
33{
34private:
35typedef typename mpl::begin<S> ::type iter_0;
36public:
37typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,0)
38< typename mpl::deref< iter_0 > ::type
39> ::type type;
40};
41};
42template< typename R , typename T0 >
43struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,1)
44{
45typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 BOOST_FT_ell) BOOST_FT_cv ;
46};
47template< >
48struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 2 >
49{
50template<typename S> struct synthesize_impl_i
51{
52private:
53typedef typename mpl::begin<S> ::type iter_0;
54typedef typename mpl::next< iter_0 > ::type iter_1;
55public:
56typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,1)
57< typename mpl::deref< iter_0 > ::type
58, typename mpl::deref< iter_1 > ::type
59> ::type type;
60};
61};
62template< typename R , typename T0 , typename T1 >
63struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,2)
64{
65typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 BOOST_FT_ell) BOOST_FT_cv ;
66};
67template< >
68struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 3 >
69{
70template<typename S> struct synthesize_impl_i
71{
72private:
73typedef typename mpl::begin<S> ::type iter_0;
74typedef typename mpl::next< iter_0 > ::type iter_1;
75typedef typename mpl::next< iter_1 > ::type iter_2;
76public:
77typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,2)
78< typename mpl::deref< iter_0 > ::type
79, typename mpl::deref< iter_1 > ::type
80, typename mpl::deref< iter_2 > ::type
81> ::type type;
82};
83};
84template< typename R , typename T0 , typename T1 , typename T2 >
85struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,3)
86{
87typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 BOOST_FT_ell) BOOST_FT_cv ;
88};
89template< >
90struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 4 >
91{
92template<typename S> struct synthesize_impl_i
93{
94private:
95typedef typename mpl::begin<S> ::type iter_0;
96typedef typename mpl::next< iter_0 > ::type iter_1;
97typedef typename mpl::next< iter_1 > ::type iter_2;
98typedef typename mpl::next< iter_2 > ::type iter_3;
99public:
100typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,3)
101< typename mpl::deref< iter_0 > ::type
102, typename mpl::deref< iter_1 > ::type
103, typename mpl::deref< iter_2 > ::type
104, typename mpl::deref< iter_3 > ::type
105> ::type type;
106};
107};
108template< typename R , typename T0 , typename T1 , typename T2 , typename T3 >
109struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,4)
110{
111typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 BOOST_FT_ell) BOOST_FT_cv ;
112};
113template< >
114struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 5 >
115{
116template<typename S> struct synthesize_impl_i
117{
118private:
119typedef typename mpl::begin<S> ::type iter_0;
120typedef typename mpl::next< iter_0 > ::type iter_1;
121typedef typename mpl::next< iter_1 > ::type iter_2;
122typedef typename mpl::next< iter_2 > ::type iter_3;
123typedef typename mpl::next< iter_3 > ::type iter_4;
124public:
125typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,4)
126< typename mpl::deref< iter_0 > ::type
127, typename mpl::deref< iter_1 > ::type
128, typename mpl::deref< iter_2 > ::type
129, typename mpl::deref< iter_3 > ::type
130, typename mpl::deref< iter_4 > ::type
131> ::type type;
132};
133};
134template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 >
135struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,5)
136{
137typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 BOOST_FT_ell) BOOST_FT_cv ;
138};
139template< >
140struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 6 >
141{
142template<typename S> struct synthesize_impl_i
143{
144private:
145typedef typename mpl::begin<S> ::type iter_0;
146typedef typename mpl::next< iter_0 > ::type iter_1;
147typedef typename mpl::next< iter_1 > ::type iter_2;
148typedef typename mpl::next< iter_2 > ::type iter_3;
149typedef typename mpl::next< iter_3 > ::type iter_4;
150typedef typename mpl::next< iter_4 > ::type iter_5;
151public:
152typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,5)
153< typename mpl::deref< iter_0 > ::type
154, typename mpl::deref< iter_1 > ::type
155, typename mpl::deref< iter_2 > ::type
156, typename mpl::deref< iter_3 > ::type
157, typename mpl::deref< iter_4 > ::type
158, typename mpl::deref< iter_5 > ::type
159> ::type type;
160};
161};
162template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
163struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,6)
164{
165typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 BOOST_FT_ell) BOOST_FT_cv ;
166};
167template< >
168struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 7 >
169{
170template<typename S> struct synthesize_impl_i
171{
172private:
173typedef typename mpl::begin<S> ::type iter_0;
174typedef typename mpl::next< iter_0 > ::type iter_1;
175typedef typename mpl::next< iter_1 > ::type iter_2;
176typedef typename mpl::next< iter_2 > ::type iter_3;
177typedef typename mpl::next< iter_3 > ::type iter_4;
178typedef typename mpl::next< iter_4 > ::type iter_5;
179typedef typename mpl::next< iter_5 > ::type iter_6;
180public:
181typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,6)
182< typename mpl::deref< iter_0 > ::type
183, typename mpl::deref< iter_1 > ::type
184, typename mpl::deref< iter_2 > ::type
185, typename mpl::deref< iter_3 > ::type
186, typename mpl::deref< iter_4 > ::type
187, typename mpl::deref< iter_5 > ::type
188, typename mpl::deref< iter_6 > ::type
189> ::type type;
190};
191};
192template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
193struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,7)
194{
195typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 BOOST_FT_ell) BOOST_FT_cv ;
196};
197template< >
198struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 8 >
199{
200template<typename S> struct synthesize_impl_i
201{
202private:
203typedef typename mpl::begin<S> ::type iter_0;
204typedef typename mpl::next< iter_0 > ::type iter_1;
205typedef typename mpl::next< iter_1 > ::type iter_2;
206typedef typename mpl::next< iter_2 > ::type iter_3;
207typedef typename mpl::next< iter_3 > ::type iter_4;
208typedef typename mpl::next< iter_4 > ::type iter_5;
209typedef typename mpl::next< iter_5 > ::type iter_6;
210typedef typename mpl::next< iter_6 > ::type iter_7;
211public:
212typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,7)
213< typename mpl::deref< iter_0 > ::type
214, typename mpl::deref< iter_1 > ::type
215, typename mpl::deref< iter_2 > ::type
216, typename mpl::deref< iter_3 > ::type
217, typename mpl::deref< iter_4 > ::type
218, typename mpl::deref< iter_5 > ::type
219, typename mpl::deref< iter_6 > ::type
220, typename mpl::deref< iter_7 > ::type
221> ::type type;
222};
223};
224template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
225struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,8)
226{
227typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 BOOST_FT_ell) BOOST_FT_cv ;
228};
229template< >
230struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 9 >
231{
232template<typename S> struct synthesize_impl_i
233{
234private:
235typedef typename mpl::begin<S> ::type iter_0;
236typedef typename mpl::next< iter_0 > ::type iter_1;
237typedef typename mpl::next< iter_1 > ::type iter_2;
238typedef typename mpl::next< iter_2 > ::type iter_3;
239typedef typename mpl::next< iter_3 > ::type iter_4;
240typedef typename mpl::next< iter_4 > ::type iter_5;
241typedef typename mpl::next< iter_5 > ::type iter_6;
242typedef typename mpl::next< iter_6 > ::type iter_7;
243typedef typename mpl::next< iter_7 > ::type iter_8;
244public:
245typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,8)
246< typename mpl::deref< iter_0 > ::type
247, typename mpl::deref< iter_1 > ::type
248, typename mpl::deref< iter_2 > ::type
249, typename mpl::deref< iter_3 > ::type
250, typename mpl::deref< iter_4 > ::type
251, typename mpl::deref< iter_5 > ::type
252, typename mpl::deref< iter_6 > ::type
253, typename mpl::deref< iter_7 > ::type
254, typename mpl::deref< iter_8 > ::type
255> ::type type;
256};
257};
258template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
259struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,9)
260{
261typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 BOOST_FT_ell) BOOST_FT_cv ;
262};
263template< >
264struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 10 >
265{
266template<typename S> struct synthesize_impl_i
267{
268private:
269typedef typename mpl::begin<S> ::type iter_0;
270typedef typename mpl::next< iter_0 > ::type iter_1;
271typedef typename mpl::next< iter_1 > ::type iter_2;
272typedef typename mpl::next< iter_2 > ::type iter_3;
273typedef typename mpl::next< iter_3 > ::type iter_4;
274typedef typename mpl::next< iter_4 > ::type iter_5;
275typedef typename mpl::next< iter_5 > ::type iter_6;
276typedef typename mpl::next< iter_6 > ::type iter_7;
277typedef typename mpl::next< iter_7 > ::type iter_8;
278typedef typename mpl::next< iter_8 > ::type iter_9;
279public:
280typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,9)
281< typename mpl::deref< iter_0 > ::type
282, typename mpl::deref< iter_1 > ::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> ::type type;
292};
293};
294template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
295struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,10)
296{
297typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 BOOST_FT_ell) BOOST_FT_cv ;
298};
299template< >
300struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 11 >
301{
302template<typename S> struct synthesize_impl_i
303{
304private:
305typedef typename mpl::begin<S> ::type iter_0;
306typedef typename mpl::next< iter_0 > ::type iter_1;
307typedef typename mpl::next< iter_1 > ::type iter_2;
308typedef typename mpl::next< iter_2 > ::type iter_3;
309typedef typename mpl::next< iter_3 > ::type iter_4;
310typedef typename mpl::next< iter_4 > ::type iter_5;
311typedef typename mpl::next< iter_5 > ::type iter_6;
312typedef typename mpl::next< iter_6 > ::type iter_7;
313typedef typename mpl::next< iter_7 > ::type iter_8;
314typedef typename mpl::next< iter_8 > ::type iter_9;
315typedef typename mpl::next< iter_9 > ::type iter_10;
316public:
317typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,10)
318< typename mpl::deref< iter_0 > ::type
319, typename mpl::deref< iter_1 > ::type
320, typename mpl::deref< iter_2 > ::type
321, typename mpl::deref< iter_3 > ::type
322, typename mpl::deref< iter_4 > ::type
323, typename mpl::deref< iter_5 > ::type
324, typename mpl::deref< iter_6 > ::type
325, typename mpl::deref< iter_7 > ::type
326, typename mpl::deref< iter_8 > ::type
327, typename mpl::deref< iter_9 > ::type
328, typename mpl::deref< iter_10 > ::type
329> ::type type;
330};
331};
332# undef BOOST_FT_make_type
333# undef BOOST_FT_make_type_impl
334