|
Zephyr API 3.6.99
|
Loading...
Searching...
No Matches
Go to the documentation of this file.
14#ifndef ZEPHYR_INCLUDE_SYS_UTIL_LOOPS_H_
15#define ZEPHYR_INCLUDE_SYS_UTIL_LOOPS_H_
17#define Z_FOR_LOOP_GET_ARG(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, \
18 _12, _13, _14, _15, _16, _17, _18, _19, _20, \
19 _21, _22, _23, _24, _25, _26, _27, _28, _29, \
20 _30, _31, _32, _33, _34, _35, _36, _37, _38, \
21 _39, _40, _41, _42, _43, _44, _45, _46, _47, \
22 _48, _49, _50, _51, _52, _53, _54, _55, _56, \
23 _57, _58, _59, _60, _61, _62, _63, _64, N, ...) N
25#define Z_FOR_LOOP_0(z_call, sep, fixed_arg0, fixed_arg1, ...)
27#define Z_FOR_LOOP_1(z_call, sep, fixed_arg0, fixed_arg1, x) \
28 z_call(0, x, fixed_arg0, fixed_arg1)
30#define Z_FOR_LOOP_2(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
31 Z_FOR_LOOP_1(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
33 z_call(1, x, fixed_arg0, fixed_arg1)
35#define Z_FOR_LOOP_3(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
36 Z_FOR_LOOP_2(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
38 z_call(2, x, fixed_arg0, fixed_arg1)
40#define Z_FOR_LOOP_4(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
41 Z_FOR_LOOP_3(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
43 z_call(3, x, fixed_arg0, fixed_arg1)
45#define Z_FOR_LOOP_5(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
46 Z_FOR_LOOP_4(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
48 z_call(4, x, fixed_arg0, fixed_arg1)
50#define Z_FOR_LOOP_6(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
51 Z_FOR_LOOP_5(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
53 z_call(5, x, fixed_arg0, fixed_arg1)
55#define Z_FOR_LOOP_7(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
56 Z_FOR_LOOP_6(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
58 z_call(6, x, fixed_arg0, fixed_arg1)
60#define Z_FOR_LOOP_8(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
61 Z_FOR_LOOP_7(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
63 z_call(7, x, fixed_arg0, fixed_arg1)
65#define Z_FOR_LOOP_9(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
66 Z_FOR_LOOP_8(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
68 z_call(8, x, fixed_arg0, fixed_arg1)
70#define Z_FOR_LOOP_10(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
71 Z_FOR_LOOP_9(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
73 z_call(9, x, fixed_arg0, fixed_arg1)
75#define Z_FOR_LOOP_11(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
76 Z_FOR_LOOP_10(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
78 z_call(10, x, fixed_arg0, fixed_arg1)
80#define Z_FOR_LOOP_12(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
81 Z_FOR_LOOP_11(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
83 z_call(11, x, fixed_arg0, fixed_arg1)
85#define Z_FOR_LOOP_13(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
86 Z_FOR_LOOP_12(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
88 z_call(12, x, fixed_arg0, fixed_arg1)
90#define Z_FOR_LOOP_14(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
91 Z_FOR_LOOP_13(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
93 z_call(13, x, fixed_arg0, fixed_arg1)
95#define Z_FOR_LOOP_15(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
96 Z_FOR_LOOP_14(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
98 z_call(14, x, fixed_arg0, fixed_arg1)
100#define Z_FOR_LOOP_16(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
101 Z_FOR_LOOP_15(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
103 z_call(15, x, fixed_arg0, fixed_arg1)
105#define Z_FOR_LOOP_17(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
106 Z_FOR_LOOP_16(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
108 z_call(16, x, fixed_arg0, fixed_arg1)
110#define Z_FOR_LOOP_18(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
111 Z_FOR_LOOP_17(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
113 z_call(17, x, fixed_arg0, fixed_arg1)
115#define Z_FOR_LOOP_19(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
116 Z_FOR_LOOP_18(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
118 z_call(18, x, fixed_arg0, fixed_arg1)
120#define Z_FOR_LOOP_20(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
121 Z_FOR_LOOP_19(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
123 z_call(19, x, fixed_arg0, fixed_arg1)
125#define Z_FOR_LOOP_21(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
126 Z_FOR_LOOP_20(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
128 z_call(20, x, fixed_arg0, fixed_arg1)
130#define Z_FOR_LOOP_22(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
131 Z_FOR_LOOP_21(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
133 z_call(21, x, fixed_arg0, fixed_arg1)
135#define Z_FOR_LOOP_23(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
136 Z_FOR_LOOP_22(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
138 z_call(22, x, fixed_arg0, fixed_arg1)
140#define Z_FOR_LOOP_24(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
141 Z_FOR_LOOP_23(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
143 z_call(23, x, fixed_arg0, fixed_arg1)
145#define Z_FOR_LOOP_25(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
146 Z_FOR_LOOP_24(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
148 z_call(24, x, fixed_arg0, fixed_arg1)
150#define Z_FOR_LOOP_26(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
151 Z_FOR_LOOP_25(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
153 z_call(25, x, fixed_arg0, fixed_arg1)
155#define Z_FOR_LOOP_27(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
156 Z_FOR_LOOP_26(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
158 z_call(26, x, fixed_arg0, fixed_arg1)
160#define Z_FOR_LOOP_28(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
161 Z_FOR_LOOP_27(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
163 z_call(27, x, fixed_arg0, fixed_arg1)
165#define Z_FOR_LOOP_29(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
166 Z_FOR_LOOP_28(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
168 z_call(28, x, fixed_arg0, fixed_arg1)
170#define Z_FOR_LOOP_30(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
171 Z_FOR_LOOP_29(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
173 z_call(29, x, fixed_arg0, fixed_arg1)
175#define Z_FOR_LOOP_31(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
176 Z_FOR_LOOP_30(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
178 z_call(30, x, fixed_arg0, fixed_arg1)
180#define Z_FOR_LOOP_32(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
181 Z_FOR_LOOP_31(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
183 z_call(31, x, fixed_arg0, fixed_arg1)
185#define Z_FOR_LOOP_33(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
186 Z_FOR_LOOP_32(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
188 z_call(32, x, fixed_arg0, fixed_arg1)
190#define Z_FOR_LOOP_34(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
191 Z_FOR_LOOP_33(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
193 z_call(33, x, fixed_arg0, fixed_arg1)
195#define Z_FOR_LOOP_35(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
196 Z_FOR_LOOP_34(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
198 z_call(34, x, fixed_arg0, fixed_arg1)
200#define Z_FOR_LOOP_36(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
201 Z_FOR_LOOP_35(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
203 z_call(35, x, fixed_arg0, fixed_arg1)
205#define Z_FOR_LOOP_37(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
206 Z_FOR_LOOP_36(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
208 z_call(36, x, fixed_arg0, fixed_arg1)
210#define Z_FOR_LOOP_38(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
211 Z_FOR_LOOP_37(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
213 z_call(37, x, fixed_arg0, fixed_arg1)
215#define Z_FOR_LOOP_39(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
216 Z_FOR_LOOP_38(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
218 z_call(38, x, fixed_arg0, fixed_arg1)
220#define Z_FOR_LOOP_40(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
221 Z_FOR_LOOP_39(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
223 z_call(39, x, fixed_arg0, fixed_arg1)
225#define Z_FOR_LOOP_41(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
226 Z_FOR_LOOP_40(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
228 z_call(40, x, fixed_arg0, fixed_arg1)
230#define Z_FOR_LOOP_42(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
231 Z_FOR_LOOP_41(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
233 z_call(41, x, fixed_arg0, fixed_arg1)
235#define Z_FOR_LOOP_43(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
236 Z_FOR_LOOP_42(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
238 z_call(42, x, fixed_arg0, fixed_arg1)
240#define Z_FOR_LOOP_44(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
241 Z_FOR_LOOP_43(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
243 z_call(43, x, fixed_arg0, fixed_arg1)
245#define Z_FOR_LOOP_45(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
246 Z_FOR_LOOP_44(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
248 z_call(44, x, fixed_arg0, fixed_arg1)
250#define Z_FOR_LOOP_46(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
251 Z_FOR_LOOP_45(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
253 z_call(45, x, fixed_arg0, fixed_arg1)
255#define Z_FOR_LOOP_47(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
256 Z_FOR_LOOP_46(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
258 z_call(46, x, fixed_arg0, fixed_arg1)
260#define Z_FOR_LOOP_48(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
261 Z_FOR_LOOP_47(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
263 z_call(47, x, fixed_arg0, fixed_arg1)
265#define Z_FOR_LOOP_49(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
266 Z_FOR_LOOP_48(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
268 z_call(48, x, fixed_arg0, fixed_arg1)
270#define Z_FOR_LOOP_50(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
271 Z_FOR_LOOP_49(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
273 z_call(49, x, fixed_arg0, fixed_arg1)
275#define Z_FOR_LOOP_51(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
276 Z_FOR_LOOP_50(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
278 z_call(50, x, fixed_arg0, fixed_arg1)
280#define Z_FOR_LOOP_52(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
281 Z_FOR_LOOP_51(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
283 z_call(51, x, fixed_arg0, fixed_arg1)
285#define Z_FOR_LOOP_53(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
286 Z_FOR_LOOP_52(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
288 z_call(52, x, fixed_arg0, fixed_arg1)
290#define Z_FOR_LOOP_54(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
291 Z_FOR_LOOP_53(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
293 z_call(53, x, fixed_arg0, fixed_arg1)
295#define Z_FOR_LOOP_55(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
296 Z_FOR_LOOP_54(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
298 z_call(54, x, fixed_arg0, fixed_arg1)
300#define Z_FOR_LOOP_56(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
301 Z_FOR_LOOP_55(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
303 z_call(55, x, fixed_arg0, fixed_arg1)
305#define Z_FOR_LOOP_57(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
306 Z_FOR_LOOP_56(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
308 z_call(56, x, fixed_arg0, fixed_arg1)
310#define Z_FOR_LOOP_58(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
311 Z_FOR_LOOP_57(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
313 z_call(57, x, fixed_arg0, fixed_arg1)
315#define Z_FOR_LOOP_59(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
316 Z_FOR_LOOP_58(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
318 z_call(58, x, fixed_arg0, fixed_arg1)
320#define Z_FOR_LOOP_60(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
321 Z_FOR_LOOP_59(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
323 z_call(59, x, fixed_arg0, fixed_arg1)
325#define Z_FOR_LOOP_61(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
326 Z_FOR_LOOP_60(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
328 z_call(60, x, fixed_arg0, fixed_arg1)
330#define Z_FOR_LOOP_62(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
331 Z_FOR_LOOP_61(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
333 z_call(61, x, fixed_arg0, fixed_arg1)
335#define Z_FOR_LOOP_63(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
336 Z_FOR_LOOP_62(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
338 z_call(62, x, fixed_arg0, fixed_arg1)
340#define Z_FOR_LOOP_64(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
341 Z_FOR_LOOP_63(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
343 z_call(63, x, fixed_arg0, fixed_arg1)
345#define Z_FOR_EACH_ENGINE(x, sep, fixed_arg0, fixed_arg1, ...) \
346 Z_FOR_LOOP_GET_ARG(__VA_ARGS__, \
411 Z_FOR_LOOP_0)(x, sep, fixed_arg0, fixed_arg1, __VA_ARGS__)
413#define Z_GET_ARG_1(_0, ...) _0
415#define Z_GET_ARG_2(_0, _1, ...) _1
417#define Z_GET_ARG_3(_0, _1, _2, ...) _2
419#define Z_GET_ARG_4(_0, _1, _2, _3, ...) _3
421#define Z_GET_ARG_5(_0, _1, _2, _3, _4, ...) _4
423#define Z_GET_ARG_6(_0, _1, _2, _3, _4, _5, ...) _5
425#define Z_GET_ARG_7(_0, _1, _2, _3, _4, _5, _6, ...) _6
427#define Z_GET_ARG_8(_0, _1, _2, _3, _4, _5, _6, _7, ...) _7
429#define Z_GET_ARG_9(_0, _1, _2, _3, _4, _5, _6, _7, _8, ...) _8
431#define Z_GET_ARG_10(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, ...) _9
433#define Z_GET_ARG_11(_0, _1, _2, _3, _4, _5, \
434 _6, _7, _8, _9, _10, ...) _10
436#define Z_GET_ARG_12(_0, _1, _2, _3, _4, _5, _6,\
437 _7, _8, _9, _10, _11, ...) _11
439#define Z_GET_ARG_13(_0, _1, _2, _3, _4, _5, _6, \
440 _7, _8, _9, _10, _11, _12, ...) _12
442#define Z_GET_ARG_14(_0, _1, _2, _3, _4, _5, _6, \
443 _7, _8, _9, _10, _11, _12, _13, ...) _13
445#define Z_GET_ARG_15(_0, _1, _2, _3, _4, _5, _6, _7, \
446 _8, _9, _10, _11, _12, _13, _14, ...) _14
448#define Z_GET_ARG_16(_0, _1, _2, _3, _4, _5, _6, _7, \
449 _8, _9, _10, _11, _12, _13, _14, _15, ...) _15
451#define Z_GET_ARG_17(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
452 _11, _12, _13, _14, _15, _16, ...) _16
454#define Z_GET_ARG_18(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
455 _11, _12, _13, _14, _15, _16, _17, ...) _17
457#define Z_GET_ARG_19(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
458 _11, _12, _13, _14, _15, _16, _17, _18, ...) _18
460#define Z_GET_ARG_20(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
461 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
464#define Z_GET_ARG_21(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
465 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
468#define Z_GET_ARG_22(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
469 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
472#define Z_GET_ARG_23(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
473 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
474 _20, _21, _22, ...) _22
476#define Z_GET_ARG_24(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
477 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
478 _20, _21, _22, _23, ...) _23
480#define Z_GET_ARG_25(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
481 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
482 _20, _21, _22, _23, _24, ...) _24
484#define Z_GET_ARG_26(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
485 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
486 _20, _21, _22, _23, _24, _25, ...) _25
488#define Z_GET_ARG_27(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
489 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
490 _20, _21, _22, _23, _24, _25, _26, ...) _26
492#define Z_GET_ARG_28(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
493 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
494 _20, _21, _22, _23, _24, _25, _26, _27, ...) _27
496#define Z_GET_ARG_29(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
497 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
498 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
501#define Z_GET_ARG_30(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
502 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
503 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
506#define Z_GET_ARG_31(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
507 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
508 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
511#define Z_GET_ARG_32(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
512 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
513 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
514 _29, _30, _31, ...) _31
516#define Z_GET_ARG_33(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
517 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
518 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
519 _29, _30, _31, _32, ...) _32
521#define Z_GET_ARG_34(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
522 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
523 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
524 _29, _30, _31, _32, _33, ...) _33
526#define Z_GET_ARG_35(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
527 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
528 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
529 _29, _30, _31, _32, _33, _34, ...) _34
531#define Z_GET_ARG_36(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
532 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
533 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
534 _29, _30, _31, _32, _33, _34, _35, ...) _35
536#define Z_GET_ARG_37(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
537 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
538 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
539 _29, _30, _31, _32, _33, _34, _35, _36, ...) _36
541#define Z_GET_ARG_38(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
542 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
543 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
544 _29, _30, _31, _32, _33, _34, _35, _36, _37, ...) _37
546#define Z_GET_ARG_39(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
547 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
548 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
549 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
552#define Z_GET_ARG_40(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
553 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
554 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
555 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
558#define Z_GET_ARG_41(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
559 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
560 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
561 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
562 _38, _39, _40, ...) _40
564#define Z_GET_ARG_42(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
565 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
566 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
567 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
568 _38, _39, _40, _41, ...) _41
570#define Z_GET_ARG_43(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
571 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
572 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
573 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
574 _38, _39, _40, _41, _42, ...) _42
576#define Z_GET_ARG_44(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
577 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
578 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
579 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
580 _38, _39, _40, _41, _42, _43, ...) _43
582#define Z_GET_ARG_45(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
583 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
584 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
585 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
586 _38, _39, _40, _41, _42, _43, _44, ...) _44
588#define Z_GET_ARG_46(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
589 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
590 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
591 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
592 _38, _39, _40, _41, _42, _43, _44, _45, ...) _45
594#define Z_GET_ARG_47(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
595 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
596 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
597 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
598 _38, _39, _40, _41, _42, _43, _44, _45, _46, ...) _46
600#define Z_GET_ARG_48(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
601 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
602 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
603 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
604 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
607#define Z_GET_ARG_49(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
608 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
609 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
610 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
611 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
614#define Z_GET_ARG_50(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
615 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
616 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
617 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
618 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
619 _47, _48, _49, ...) _49
621#define Z_GET_ARG_51(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
622 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
623 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
624 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
625 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
626 _47, _48, _49, _50, ...) _50
628#define Z_GET_ARG_52(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
629 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
630 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
631 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
632 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
633 _47, _48, _49, _50, _51, ...) _51
635#define Z_GET_ARG_53(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
636 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
637 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
638 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
639 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
640 _47, _48, _49, _50, _51, _52, ...) _52
642#define Z_GET_ARG_54(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
643 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
644 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
645 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
646 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
647 _47, _48, _49, _50, _51, _52, _53, ...) _53
649#define Z_GET_ARG_55(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
650 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
651 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
652 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
653 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
654 _47, _48, _49, _50, _51, _52, _53, _54, ...) _54
656#define Z_GET_ARG_56(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
657 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
658 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
659 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
660 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
661 _47, _48, _49, _50, _51, _52, _53, _54, _55, ...) _55
663#define Z_GET_ARG_57(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
664 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
665 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
666 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
667 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
668 _47, _48, _49, _50, _51, _52, _53, _54, _55, \
671#define Z_GET_ARG_58(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
672 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
673 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
674 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
675 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
676 _47, _48, _49, _50, _51, _52, _53, _54, _55, \
679#define Z_GET_ARG_59(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
680 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
681 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
682 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
683 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
684 _47, _48, _49, _50, _51, _52, _53, _54, _55, \
685 _56, _57, _58, ...) _58
687#define Z_GET_ARG_60(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
688 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
689 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
690 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
691 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
692 _47, _48, _49, _50, _51, _52, _53, _54, _55, \
693 _56, _57, _58, _59, ...) _59
695#define Z_GET_ARG_61(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
696 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
697 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
698 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
699 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
700 _47, _48, _49, _50, _51, _52, _53, _54, _55, \
701 _56, _57, _58, _59, _60, ...) _60
703#define Z_GET_ARG_62(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
704 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
705 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
706 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
707 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
708 _47, _48, _49, _50, _51, _52, _53, _54, _55, \
709 _56, _57, _58, _59, _60, _61, ...) _61
711#define Z_GET_ARG_63(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
712 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
713 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
714 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
715 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
716 _47, _48, _49, _50, _51, _52, _53, _54, _55, \
717 _56, _57, _58, _59, _60, _61, _62, ...) _62
719#define Z_GET_ARG_64(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
720 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
721 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
722 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
723 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
724 _47, _48, _49, _50, _51, _52, _53, _54, _55, \
725 _56, _57, _58, _59, _60, _61, _62, _63, ...) _63
727#define Z_GET_ARGS_LESS_0(...) __VA_ARGS__
729#define Z_GET_ARGS_LESS_1(_0, ...) __VA_ARGS__
731#define Z_GET_ARGS_LESS_2(_0, _1, ...) __VA_ARGS__
733#define Z_GET_ARGS_LESS_3(_0, _1, _2, ...) __VA_ARGS__
735#define Z_GET_ARGS_LESS_4(_0, _1, _2, _3, ...) __VA_ARGS__
737#define Z_GET_ARGS_LESS_5(_0, _1, _2, _3, _4, ...) __VA_ARGS__
739#define Z_GET_ARGS_LESS_6(_0, _1, _2, _3, _4, _5, ...) __VA_ARGS__
741#define Z_GET_ARGS_LESS_7(_0, _1, _2, _3, _4, _5, _6, ...) __VA_ARGS__
743#define Z_GET_ARGS_LESS_8(_0, _1, _2, _3, _4, _5, \
744 _6, _7, ...) __VA_ARGS__
746#define Z_GET_ARGS_LESS_9(_0, _1, _2, _3, _4, _5, \
747 _6, _7, _8, ...) __VA_ARGS__
749#define Z_GET_ARGS_LESS_10(_0, _1, _2, _3, _4, _5, \
750 _6, _7, _8, _9, ...) __VA_ARGS__
752#define Z_GET_ARGS_LESS_11(_0, _1, _2, _3, _4, _5, \
753 _6, _7, _8, _9, _10, ...) __VA_ARGS__
755#define Z_GET_ARGS_LESS_12(_0, _1, _2, _3, _4, _5, _6,\
756 _7, _8, _9, _10, _11, ...) __VA_ARGS__
758#define Z_GET_ARGS_LESS_13(_0, _1, _2, _3, _4, _5, _6, \
759 _7, _8, _9, _10, _11, _12, ...) __VA_ARGS__
761#define Z_GET_ARGS_LESS_14(_0, _1, _2, _3, _4, _5, _6, \
762 _7, _8, _9, _10, _11, _12, _13, \
765#define Z_GET_ARGS_LESS_15(_0, _1, _2, _3, _4, _5, _6, _7, \
766 _8, _9, _10, _11, _12, _13, _14, \
769#define Z_GET_ARGS_LESS_16(_0, _1, _2, _3, _4, _5, _6, _7, \
770 _8, _9, _10, _11, _12, _13, _14, _15, ...) \
773#define Z_GET_ARGS_LESS_17(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
774 _11, _12, _13, _14, _15, _16, ...) __VA_ARGS__
776#define Z_GET_ARGS_LESS_18(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
777 _11, _12, _13, _14, _15, _16, _17, ...) \
780#define Z_GET_ARGS_LESS_19(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
781 _11, _12, _13, _14, _15, _16, _17, _18, ...) \
784#define Z_GET_ARGS_LESS_20(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
785 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
788#define Z_GET_ARGS_LESS_21(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
789 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
790 _20, ...) __VA_ARGS__
792#define Z_GET_ARGS_LESS_22(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
793 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
794 _20, _21, ...) __VA_ARGS__
796#define Z_GET_ARGS_LESS_23(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
797 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
798 _20, _21, _22, ...) __VA_ARGS__
800#define Z_GET_ARGS_LESS_24(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
801 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
802 _20, _21, _22, _23, ...) __VA_ARGS__
804#define Z_GET_ARGS_LESS_25(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
805 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
806 _20, _21, _22, _23, _24, ...) __VA_ARGS__
808#define Z_GET_ARGS_LESS_26(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
809 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
810 _20, _21, _22, _23, _24, _25, ...) __VA_ARGS__
812#define Z_GET_ARGS_LESS_27(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
813 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
814 _20, _21, _22, _23, _24, _25, _26, ...) \
817#define Z_GET_ARGS_LESS_28(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
818 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
819 _20, _21, _22, _23, _24, _25, _26, _27, \
822#define Z_GET_ARGS_LESS_29(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
823 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
824 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
827#define Z_GET_ARGS_LESS_30(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
828 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
829 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
830 _29, ...) __VA_ARGS__
832#define Z_GET_ARGS_LESS_31(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
833 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
834 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
835 _29, _30, ...) __VA_ARGS__
837#define Z_GET_ARGS_LESS_32(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
838 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
839 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
840 _29, _30, _31, ...) __VA_ARGS__
842#define Z_GET_ARGS_LESS_33(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
843 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
844 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
845 _29, _30, _31, _32, ...) __VA_ARGS__
847#define Z_GET_ARGS_LESS_34(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
848 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
849 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
850 _29, _30, _31, _32, _33, ...) __VA_ARGS__
852#define Z_GET_ARGS_LESS_35(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
853 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
854 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
855 _29, _30, _31, _32, _33, _34, ...) __VA_ARGS__
857#define Z_GET_ARGS_LESS_36(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
858 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
859 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
860 _29, _30, _31, _32, _33, _34, _35, ...) __VA_ARGS__
862#define Z_GET_ARGS_LESS_37(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
863 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
864 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
865 _29, _30, _31, _32, _33, _34, _35, _36, ...) __VA_ARGS__
867#define Z_GET_ARGS_LESS_38(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
868 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
869 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
870 _29, _30, _31, _32, _33, _34, _35, _36, _37, ...) __VA_ARGS__
872#define Z_GET_ARGS_LESS_39(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
873 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
874 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
875 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
876 _38, ...) __VA_ARGS__
878#define Z_GET_ARGS_LESS_40(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
879 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
880 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
881 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
882 _38, _39, ...) __VA_ARGS__
884#define Z_GET_ARGS_LESS_41(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
885 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
886 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
887 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
888 _38, _39, _40, ...) __VA_ARGS__
890#define Z_GET_ARGS_LESS_42(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
891 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
892 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
893 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
894 _38, _39, _40, _41, ...) __VA_ARGS__
896#define Z_GET_ARGS_LESS_43(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
897 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
898 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
899 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
900 _38, _39, _40, _41, _42, ...) __VA_ARGS__
902#define Z_GET_ARGS_LESS_44(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
903 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
904 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
905 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
906 _38, _39, _40, _41, _42, _43, ...) __VA_ARGS__
908#define Z_GET_ARGS_LESS_45(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
909 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
910 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
911 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
912 _38, _39, _40, _41, _42, _43, _44, ...) __VA_ARGS__
914#define Z_GET_ARGS_LESS_46(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
915 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
916 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
917 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
918 _38, _39, _40, _41, _42, _43, _44, _45, ...) __VA_ARGS__
920#define Z_GET_ARGS_LESS_47(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
921 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
922 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
923 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
924 _38, _39, _40, _41, _42, _43, _44, _45, _46, ...) __VA_ARGS__
926#define Z_GET_ARGS_LESS_48(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
927 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
928 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
929 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
930 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
931 _47, ...) __VA_ARGS__
933#define Z_GET_ARGS_LESS_49(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
934 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
935 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
936 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
937 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
938 _47, _48, ...) __VA_ARGS__
940#define Z_GET_ARGS_LESS_50(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
941 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
942 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
943 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
944 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
945 _47, _48, _49, ...) __VA_ARGS__
947#define Z_GET_ARGS_LESS_51(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
948 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
949 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
950 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
951 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
952 _47, _48, _49, _50, ...) __VA_ARGS__
954#define Z_GET_ARGS_LESS_52(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
955 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
956 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
957 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
958 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
959 _47, _48, _49, _50, _51, ...) __VA_ARGS__
961#define Z_GET_ARGS_LESS_53(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
962 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
963 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
964 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
965 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
966 _47, _48, _49, _50, _51, _52, ...) __VA_ARGS__
968#define Z_GET_ARGS_LESS_54(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
969 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
970 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
971 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
972 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
973 _47, _48, _49, _50, _51, _52, _53, ...) __VA_ARGS__
975#define Z_GET_ARGS_LESS_55(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
976 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
977 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
978 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
979 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
980 _47, _48, _49, _50, _51, _52, _53, _54, ...) __VA_ARGS__
982#define Z_GET_ARGS_LESS_56(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
983 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
984 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
985 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
986 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
987 _47, _48, _49, _50, _51, _52, _53, _54, _55, \
990#define Z_GET_ARGS_LESS_57(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
991 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
992 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
993 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
994 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
995 _47, _48, _49, _50, _51, _52, _53, _54, _55, \
996 _56, ...) __VA_ARGS__
998#define Z_GET_ARGS_LESS_58(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
999 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
1000 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
1001 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
1002 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
1003 _47, _48, _49, _50, _51, _52, _53, _54, _55, \
1004 _56, _57, ...) __VA_ARGS__
1006#define Z_GET_ARGS_LESS_59(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
1007 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
1008 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
1009 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
1010 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
1011 _47, _48, _49, _50, _51, _52, _53, _54, _55, \
1012 _56, _57, _58, ...) __VA_ARGS__
1014#define Z_GET_ARGS_LESS_60(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
1015 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
1016 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
1017 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
1018 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
1019 _47, _48, _49, _50, _51, _52, _53, _54, _55, \
1020 _56, _57, _58, _59, ...) __VA_ARGS__
1022#define Z_GET_ARGS_LESS_61(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
1023 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
1024 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
1025 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
1026 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
1027 _47, _48, _49, _50, _51, _52, _53, _54, _55, \
1028 _56, _57, _58, _59, _60, ...) __VA_ARGS__
1030#define Z_GET_ARGS_LESS_62(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
1031 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
1032 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
1033 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
1034 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
1035 _47, _48, _49, _50, _51, _52, _53, _54, _55, \
1036 _56, _57, _58, _59, _60, _61, ...) __VA_ARGS__
1038#define Z_GET_ARGS_LESS_63(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
1039 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
1040 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
1041 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
1042 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
1043 _47, _48, _49, _50, _51, _52, _53, _54, _55, \
1044 _56, _57, _58, _59, _60, _61, _62, ...) __VA_ARGS__
1046#define Z_GET_ARGS_LESS_64(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
1047 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
1048 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
1049 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
1050 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
1051 _47, _48, _49, _50, _51, _52, _53, _54, _55, \
1052 _56, _57, _58, _59, _60, _61, _62, _63, ...) __VA_ARGS__
1054#define Z_FOR_EACH_IDX_FIXED_ARG_EXEC(idx, x, fixed_arg0, fixed_arg1) \
1055 fixed_arg0(idx, x, fixed_arg1)
1057#define Z_FOR_EACH_IDX_FIXED_ARG(F, sep, fixed_arg, ...) \
1058 Z_FOR_EACH_ENGINE(Z_FOR_EACH_IDX_FIXED_ARG_EXEC, sep, \
1059 F, fixed_arg, __VA_ARGS__)
1061#define Z_FOR_EACH_FIXED_ARG_EXEC(idx, x, fixed_arg0, fixed_arg1) \
1062 fixed_arg0(x, fixed_arg1)
1064#define Z_FOR_EACH_FIXED_ARG(F, sep, fixed_arg, ...) \
1065 Z_FOR_EACH_ENGINE(Z_FOR_EACH_FIXED_ARG_EXEC, sep, \
1066 F, fixed_arg, __VA_ARGS__)
1068#define Z_FOR_EACH_IDX_EXEC(idx, x, fixed_arg0, fixed_arg1) \
1071#define Z_FOR_EACH_IDX(F, sep, ...) \
1072 Z_FOR_EACH_ENGINE(Z_FOR_EACH_IDX_EXEC, sep, F, _, __VA_ARGS__)
1074#define Z_FOR_EACH_EXEC(idx, x, fixed_arg0, fixed_arg1) \
1077#define Z_FOR_EACH(F, sep, ...) \
1078 Z_FOR_EACH_ENGINE(Z_FOR_EACH_EXEC, sep, F, _, __VA_ARGS__)
1080#define Z_BYPASS(x) x