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