2
3
4
5
6
7
9#ifndef GIMBAL_MACRO_COMPOSITION_H
10#define GIMBAL_MACRO_COMPOSITION_H
15#define GBL_IDENTITY(A) A
18#define GBL_VA_ARGS(...) ,##__VA_ARGS__
19#define GBL_VA_REQUIRE(...) ...
22#define GBL_STRINGIFY_(a) #a
25#define GBL_CAT(A, B) A##B
26#define GBL_GLUE(A, B) GBL_CAT(A, B)
28#define GBL_APPEND_SUFFIX(NAME, NUM) GBL_CAT(NAME##_, NUM)
29#define GBL_COMPOSE(NAME, ARGS) NAME ARGS
31#define GBL_MACRO_CALL(macro, ...) macro(__VA_ARGS__)
32#define GBL_MACRO_CALL_NULL(...)
34#define GBL_MACRO_CONDITIONAL_CALL_0(macro, ...)
36#define GBL_MACRO_CONDITIONAL_CALL_1(macro, ...)
39#define GBL_MACRO_CONDITIONAL_CALL(enabled, ...)
40 GBL_CAT(GBL_MACRO_CONDITIONAL_CALL_,enabled)(__VA_ARGS__)
47 _1, _2, _3, _4, _5, _6, _7, _8, _9,_10,
48 _11,_12,_13,_14,_15,_16,_17,_18,_19,_20,
49 _21,_22,_23,_24,_25,_26,_27,_28,_29,_30,
50 _31,_32,_33,_34,_35,_36,_37,_38,_39,_40,
51 _41,_42,_43,_44,_45,_46,_47,_48,_49,_50,
52 _51,_52,_53,_54,_55,_56,_57,_58,_59,_60,
53 _61,_62,_63,_64,_65,_66,_67,_68,_69,_70,
54 _71,_72,_73,_74,_75,_76,_77,_78,_79,_80, N,...) N
57 79
,78
,77
,76
,75
,74
,73
,72
,71
,70
,
58 69
,68
,67
,66
,65
,64
,63
,62
,61
,60
,
59 59
,58
,57
,56
,55
,54
,53
,52
,51
,50
,
60 49
,48
,47
,46
,45
,44
,43
,42
,41
,40
,
61 39
,38
,37
,36
,35
,34
,33
,32
,31
,30
,
62 29
,28
,27
,26
,25
,24
,23
,22
,21
,20
,
63 19
,18
,17
,16
,15
,14
,13
,12
,11
,10
,
66#define GBL_ARG_1(_1, ...) _1
67#define GBL_ARG_2(_1, _2, ...) _2
68#define GBL_ARG_3(_1, _2, _3, ...) _3
69#define GBL_ARG_4(_1, _2, _3, _4, ...) _4
70#define GBL_ARG_5(_1, _2, _3, _4, _5, ...) _5
71#define GBL_ARG_6(_1, _2, _3, _4, _5, _6, ...) _6
72#define GBL_ARG_7(_1, _2, _3, _4, _5, _6, _7, ...) _7
73#define GBL_ARG_8(_1, _2, _3, _4, _5, _6, _7, _8, ...) _8
74#define GBL_ARG_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, ...) _9
75#define GBL_ARG_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, ...) _10
76#define GBL_ARG_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, ...) _11
77#define GBL_ARG_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, ...) _12
78#define GBL_ARG_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, ...) _13
79#define GBL_ARG_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, ...) _14
80#define GBL_ARG_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, ...) _15
81#define GBL_ARG_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, ...) _16
82#define GBL_ARG_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, ...) _17
83#define GBL_ARG_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, ...) _18
84#define GBL_ARG_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, ...) _19
85#define GBL_ARG_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, ...) _20
86#define GBL_ARG_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, ...) _21
87#define GBL_ARG_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, ...) _22
88#define GBL_ARG_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, ...) _23
89#define GBL_ARG_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, ...) _24
90#define GBL_ARG_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, ...) _25
91#define GBL_ARG_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, ...) _26
92#define GBL_ARG_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, ...) _27
93#define GBL_ARG_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, ...) _28
94#define GBL_ARG_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, ...) _29
95#define GBL_ARG_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, ...) _30
96#define GBL_ARG_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, ...) _31
97#define GBL_ARG_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, ...) _32
98#define GBL_ARG_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, ...) _33
99#define GBL_ARG_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, ...) _34
100#define GBL_ARG_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, ...) _35
101#define GBL_ARG_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, ...) _36
102#define GBL_ARG_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, ...) _37
103#define GBL_ARG_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, ...) _38
104#define GBL_ARG_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, ...) _39
105#define GBL_ARG_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, ...) _40
106#define GBL_ARG_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, ...) _41
107#define GBL_ARG_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, ...) _42
108#define GBL_ARG_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, ...) _43
109#define GBL_ARG_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, ...) _44
110#define GBL_ARG_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, ...) _45
111#define GBL_ARG_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, ...) _46
112#define GBL_ARG_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, ...) _47
113#define GBL_ARG_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, ...) _48
114#define GBL_ARG_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, ...) _49
115#define GBL_ARG_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, ...) _50
119#define GBL_VA_SLIDING_ARG(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, COUNT, ...) COUNT
121#define GBL_VA_OVERLOAD_SUFFIXER(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, ...)
122 GBL_COMPOSE(GBL_VA_SLIDING_ARG, (GBL_EVAL __VA_ARGS__ (), _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) )
124#define GBL_VA_OVERLOAD_SUFFIXER_ARGC(...)
125 GBL_VA_OVERLOAD_SUFFIXER(0
, 50
, 49
, 48
, 47
, 46
, 45
, 44
, 43
, 42
, 41
, 40
, 39
, 38
, 37
, 36
, 35
, 34
, 33
, 32
, 31
, 30
, 29
, 28
, 27
, 26
, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
127#define GBL_VA_OVERLOAD_SUFFIXER_0_N(...)
128 GBL_VA_OVERLOAD_SUFFIXER(N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 0
, ##__VA_ARGS__)
130#define GBL_VA_OVERLOAD_SUFFIXER_1_N(...)
131 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 1
, ##__VA_ARGS__)
133#define GBL_VA_OVERLOAD_SUFFIXER_2_N(...)
134 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 2
, 1
, ##__VA_ARGS__)
136#define GBL_VA_OVERLOAD_SUFFIXER_3_N(...)
137 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 3
, 2
, 1
, ##__VA_ARGS__)
139#define GBL_VA_OVERLOAD_SUFFIXER_4_N(...)
140 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
142#define GBL_VA_OVERLOAD_SUFFIXER_5_N(...)
143 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
145#define GBL_VA_OVERLOAD_SUFFIXER_6_N(...)
146 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
148#define GBL_VA_OVERLOAD_SUFFIXER_7_N(...)
149 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
151#define GBL_VA_OVERLOAD_SUFFIXER_8_N(...)
152 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
154#define GBL_VA_OVERLOAD_SUFFIXER_9_N(...)
155 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
157#define GBL_VA_OVERLOAD_SUFFIXER_10_N(...)
158 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
160#define GBL_VA_OVERLOAD_SUFFIXER_11_N(...)
161 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
163#define GBL_VA_OVERLOAD_SUFFIXER_12_N(...)
164 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
166#define GBL_VA_OVERLOAD_SUFFIXER_13_N(...)
167 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
169#define GBL_VA_OVERLOAD_SUFFIXER_14_N(...)
170 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
172#define GBL_VA_OVERLOAD_SUFFIXER_15_N(...)
173 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
175#define GBL_VA_OVERLOAD_SUFFIXER_16_N(...)
176 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
178#define GBL_VA_OVERLOAD_SUFFIXER_17_N(...)
179 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
181#define GBL_VA_OVERLOAD_SUFFIXER_18_N(...)
182 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
184#define GBL_VA_OVERLOAD_SUFFIXER_19_N(...)
185 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
187#define GBL_VA_OVERLOAD_SUFFIXER_20_N(...)
188 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
190#define GBL_VA_OVERLOAD_SUFFIXER_21_N(...)
191 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
193#define GBL_VA_OVERLOAD_SUFFIXER_22_N(...)
194 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
196#define GBL_VA_OVERLOAD_SUFFIXER_23_N(...)
197 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
199#define GBL_VA_OVERLOAD_SUFFIXER_24_N(...)
200 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
202#define GBL_VA_OVERLOAD_SUFFIXER_25_N(...)
203 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
205#define GBL_VA_OVERLOAD_SUFFIXER_26_N(...)
206 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 26
, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
208#define GBL_VA_OVERLOAD_SUFFIXER_27_N(...)
209 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 27
, 26
, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
211#define GBL_VA_OVERLOAD_SUFFIXER_28_N(...)
212 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 28
, 27
, 26
, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
214#define GBL_VA_OVERLOAD_SUFFIXER_29_N(...)
215 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 29
, 28
, 27
, 26
, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
217#define GBL_VA_OVERLOAD_SUFFIXER_30_N(...)
218 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 30
, 29
, 28
, 27
, 26
, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
220#define GBL_VA_OVERLOAD_SUFFIXER_31_N(...)
221 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 31
, 30
, 29
, 28
, 27
, 26
, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
223#define GBL_VA_OVERLOAD_SUFFIXER_32_N(...)
224 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 32
, 31
, 30
, 29
, 28
, 27
, 26
, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
226#define GBL_VA_OVERLOAD_SUFFIXER_33_N(...)
227 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 33
, 32
, 31
, 30
, 29
, 28
, 27
, 26
, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
229#define GBL_VA_OVERLOAD_SUFFIXER_34_N(...)
230 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 34
, 33
, 32
, 31
, 30
, 29
, 28
, 27
, 26
, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
232#define GBL_VA_OVERLOAD_SUFFIXER_35_N(...)
233 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 35
, 34
, 33
, 32
, 31
, 30
, 29
, 28
, 27
, 26
, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
235#define GBL_VA_OVERLOAD_SUFFIXER_36_N(...)
236 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 36
, 35
, 34
, 33
, 32
, 31
, 30
, 29
, 28
, 27
, 26
, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
238#define GBL_VA_OVERLOAD_SUFFIXER_37_N(...)
239 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, N, 37
, 36
, 35
, 34
, 33
, 32
, 31
, 30
, 29
, 28
, 27
, 26
, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
241#define GBL_VA_OVERLOAD_SUFFIXER_38_N(...)
242 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, N, 38
, 37
, 36
, 35
, 34
, 33
, 32
, 31
, 30
, 29
, 28
, 27
, 26
, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
244#define GBL_VA_OVERLOAD_SUFFIXER_39_N(...)
245 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, N, 39
, 38
, 37
, 36
, 35
, 34
, 33
, 32
, 31
, 30
, 29
, 28
, 27
, 26
, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
247#define GBL_VA_OVERLOAD_SUFFIXER_40_N(...)
248 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, N, 40
, 39
, 38
, 37
, 36
, 35
, 34
, 33
, 32
, 31
, 30
, 29
, 28
, 27
, 26
, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
250#define GBL_VA_OVERLOAD_SUFFIXER_41_N(...)
251 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, N, 41
, 40
, 39
, 38
, 37
, 36
, 35
, 34
, 33
, 32
, 31
, 30
, 29
, 28
, 27
, 26
, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
253#define GBL_VA_OVERLOAD_SUFFIXER_42_N(...)
254 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, N, 42
, 41
, 40
, 39
, 38
, 37
, 36
, 35
, 34
, 33
, 32
, 31
, 30
, 29
, 28
, 27
, 26
, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
256#define GBL_VA_OVERLOAD_SUFFIXER_43_N(...)
257 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, N, 43
, 42
, 41
, 40
, 39
, 38
, 37
, 36
, 35
, 34
, 33
, 32
, 31
, 30
, 29
, 28
, 27
, 26
, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
259#define GBL_VA_OVERLOAD_SUFFIXER_44_N(...)
260 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, N, 44
, 43
, 42
, 41
, 40
, 39
, 38
, 37
, 36
, 35
, 34
, 33
, 32
, 31
, 30
, 29
, 28
, 27
, 26
, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
262#define GBL_VA_OVERLOAD_SUFFIXER_45_N(...)
263 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, N, 45
, 44
, 43
, 42
, 41
, 40
, 39
, 38
, 37
, 36
, 35
, 34
, 33
, 32
, 31
, 30
, 29
, 28
, 27
, 26
, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
265#define GBL_VA_OVERLOAD_SUFFIXER_46_N(...)
266 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, N, 46
, 45
, 44
, 43
, 42
, 41
, 40
, 39
, 38
, 37
, 36
, 35
, 34
, 33
, 32
, 31
, 30
, 29
, 28
, 27
, 26
, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
268#define GBL_VA_OVERLOAD_SUFFIXER_47_N(...)
269 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, N, 47
, 46
, 45
, 44
, 43
, 42
, 41
, 40
, 39
, 38
, 37
, 36
, 35
, 34
, 33
, 32
, 31
, 30
, 29
, 28
, 27
, 26
, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
271#define GBL_VA_OVERLOAD_SUFFIXER_48_N(...)
272 GBL_VA_OVERLOAD_SUFFIXER(0
, N, N, 48
, 47
, 46
, 45
, 44
, 43
, 42
, 41
, 40
, 39
, 38
, 37
, 36
, 35
, 34
, 33
, 32
, 31
, 30
, 29
, 28
, 27
, 26
, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
274#define GBL_VA_OVERLOAD_SUFFIXER_49_N(...)
275 GBL_VA_OVERLOAD_SUFFIXER(0
, N, 49
, 48
, 47
, 46
, 45
, 44
, 43
, 42
, 41
, 40
, 39
, 38
, 37
, 36
, 35
, 34
, 33
, 32
, 31
, 30
, 29
, 28
, 27
, 26
, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
277#define GBL_VA_OVERLOAD_SUFFIXER_50_N(...)
278 GBL_VA_OVERLOAD_SUFFIXER(0
, 50
, 49
, 48
, 47
, 46
, 45
, 44
, 43
, 42
, 41
, 40
, 39
, 38
, 37
, 36
, 35
, 34
, 33
, 32
, 31
, 30
, 29
, 28
, 27
, 26
, 25
, 24
, 23
, 22
, 21
, 20
, 19
, 18
, 17
, 16
, 15
, 14
, 13
, 12
, 11
, 10
, 9
, 8
, 7
, 6
, 5
, 4
, 3
, 2
, 1
, ##__VA_ARGS__)
280#define GBL_VA_OVERLOAD_SELECT(BASE, SUFFIXER, ...)
283#define GBL_VA_OVERLOAD_CALL(BASE, SUFFIXER, ...)
286#define GBL_VA_OVERLOAD_CALL_ARGC(BASE, ...) GBL_VA_OVERLOAD_CALL
291#define GBL_TUPLE_FIRST__(X,...) X
293#define GBL_TUPLE_REST(X,...) __VA_ARGS__
295#define GBL_TUPLE_FOREACH(MACRO_,DATA_,TUPLE_) GBL_GLUE(GBL_TUPLE_FOREACH__,GBL_NARG TUPLE_)(MACRO_,DATA_,TUPLE_)
297#define GBL_TUPLE_FOREACH__1(MACRO_,DATA_,TUPLE_) MACRO_(DATA_,GBL_TUPLE_FIRST TUPLE_)
378#define GBL_REVERSE_1(a) a
379#define GBL_REVERSE_2(a,b) b,a
410#define GBL_REVERSE1(N,...) GBL_CAT(GBL_REVERSE_, N)(__VA_ARGS__)
#define GBL_TUPLE_FOREACH__1(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__23(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__74(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__68(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__48(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__31(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__72(MACRO_, DATA_, TUPLE_)
#define GBL_REVERSE_31(a,...)
#define GBL_TUPLE_FOREACH__54(MACRO_, DATA_, TUPLE_)
#define GBL_REVERSE_12(a,...)
#define GBL_TUPLE_FOREACH__52(MACRO_, DATA_, TUPLE_)
#define GBL_REVERSE_22(a,...)
#define GBL_TUPLE_FOREACH__70(MACRO_, DATA_, TUPLE_)
#define GBL_VA_OVERLOAD_SUFFIXER(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50,...)
#define GBL_REVERSE_13(a,...)
#define GBL_VA_SLIDING_ARG(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, COUNT,...)
#define GBL_TUPLE_FOREACH__76(MACRO_, DATA_, TUPLE_)
#define GBL_REVERSE_7(a,...)
#define GBL_TUPLE_FOREACH__14(MACRO_, DATA_, TUPLE_)
#define GBL_REVERSE1(N,...)
#define GBL_REVERSE_18(a,...)
#define GBL_TUPLE_FOREACH__64(MACRO_, DATA_, TUPLE_)
#define GBL_MACRO_CALL_NULL(...)
#define GBL_REVERSE_28(a,...)
#define GBL_VA_OVERLOAD_SELECT(BASE, SUFFIXER,...)
#define GBL_TUPLE_FIRST__(X,...)
#define GBL_REVERSE_21(a,...)
#define GBL_TUPLE_FOREACH__50(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__36(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__17(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__62(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__32(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__5(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__15(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__67(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__4(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__27(MACRO_, DATA_, TUPLE_)
#define GBL_REVERSE_10(a,...)
#define GBL_COMPOSE(NAME, ARGS)
#define GBL_REVERSE_8(a,...)
#define GBL_TUPLE_FOREACH__47(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__13(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__49(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_REST(X,...)
#define GBL_TUPLE_FOREACH__55(MACRO_, DATA_, TUPLE_)
#define GBL_REVERSE_24(a,...)
#define GBL_TUPLE_FOREACH__16(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__40(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__42(MACRO_, DATA_, TUPLE_)
#define GBL_STRINGIFY_(a)
#define GBL_REVERSE_27(a,...)
#define GBL_REVERSE_26(a,...)
#define GBL_TUPLE_FOREACH__56(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__28(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__44(MACRO_, DATA_, TUPLE_)
#define GBL_REVERSE_14(a,...)
#define GBL_TUPLE_FOREACH__73(MACRO_, DATA_, TUPLE_)
#define GBL_REVERSE_30(a,...)
#define GBL_TUPLE_FOREACH__22(MACRO_, DATA_, TUPLE_)
#define GBL_REVERSE_19(a,...)
#define GBL_TUPLE_FOREACH__60(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__9(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__34(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__57(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FIRST(...)
#define GBL_TUPLE_FOREACH__33(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__12(MACRO_, DATA_, TUPLE_)
#define GBL_REVERSE_20(a,...)
#define GBL_TUPLE_FOREACH__18(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__21(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__6(MACRO_, DATA_, TUPLE_)
#define GBL_REVERSE_5(a,...)
#define GBL_TUPLE_FOREACH__35(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__59(MACRO_, DATA_, TUPLE_)
#define GBL_REVERSE_16(a,...)
#define GBL_REVERSE_25(a,...)
#define GBL_TUPLE_FOREACH__26(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__8(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__30(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__10(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__25(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__75(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__7(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__3(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__19(MACRO_, DATA_, TUPLE_)
#define GBL_REVERSE_23(a,...)
#define GBL_REVERSE_3(a,...)
#define GBL_TUPLE_FOREACH__20(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__46(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__61(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__65(MACRO_, DATA_, TUPLE_)
#define GBL_REVERSE_2(a, b)
#define GBL_TUPLE_FOREACH__24(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__37(MACRO_, DATA_, TUPLE_)
#define GBL_MACRO_CALL(macro,...)
#define GBL_REVERSE_15(a,...)
#define GBL_TUPLE_FOREACH__78(MACRO_, DATA_, TUPLE_)
#define GBL_REVERSE_11(a,...)
#define GBL_TUPLE_FOREACH__51(MACRO_, DATA_, TUPLE_)
#define GBL_REVERSE_4(a,...)
#define GBL_TUPLE_FOREACH__43(MACRO_, DATA_, TUPLE_)
#define GBL_APPEND_SUFFIX(NAME, NUM)
#define GBL_TUPLE_FOREACH__58(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__63(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__69(MACRO_, DATA_, TUPLE_)
#define GBL_REVERSE_6(a,...)
#define GBL_VA_OVERLOAD_SUFFIXER_ARGC(...)
#define GBL_REVERSE_17(a,...)
#define GBL_TUPLE_FOREACH__45(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__66(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__39(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__41(MACRO_, DATA_, TUPLE_)
#define GBL_REVERSE_29(a,...)
#define GBL_TUPLE_FOREACH__38(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__79(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__11(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__71(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__53(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__77(MACRO_, DATA_, TUPLE_)
#define GBL_ARG_N(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, _65, _66, _67, _68, _69, _70, _71, _72, _73, _74, _75, _76, _77, _78, _79, _80, N,...)
#define GBL_REVERSE_9(a,...)
#define GBL_TUPLE_FOREACH__2(MACRO_, DATA_, TUPLE_)
#define GBL_TUPLE_FOREACH__29(MACRO_, DATA_, TUPLE_)