|
73 | 73 |
|
74 | 74 | /* Used by COND_CASE_1(); supports up to 16 flag/value pairs */ |
75 | 75 | #define Z_COND_CASE_1(...) \ |
76 | | - Z_COND_CASE_1_SELECT(NUM_VA_ARGS_LESS_1(__VA_ARGS__), __VA_ARGS__) |
| 76 | + Z_COND_CASE_1_CAT_N(NUM_VA_ARGS_LESS_1(__VA_ARGS__), __VA_ARGS__) |
77 | 77 |
|
78 | | -#define Z_COND_CASE_1_SELECT(count_minus_one, ...) \ |
79 | | - UTIL_CAT(Z_COND_CASE_1_LEVEL_, count_minus_one)(__VA_ARGS__) |
| 78 | +#define Z_COND_CASE_1_CAT_N(count_minus_one, ...) \ |
| 79 | + UTIL_CAT(Z_COND_CASE_1_N_, count_minus_one)(__VA_ARGS__) |
80 | 80 |
|
81 | | -#define Z_COND_CASE_1_LEVEL_0(_default) __DEBRACKET _default |
82 | | -#define Z_COND_CASE_1_LEVEL_1(...) Z_COND_SWITCH_REQUIRES_FLAG_VALUE_PAIRS |
83 | | -#define Z_COND_CASE_1_LEVEL_2(flag0, value0, _default) \ |
| 81 | +#define Z_COND_CASE_1_N_0(_default) __DEBRACKET _default |
| 82 | +#define Z_COND_CASE_1_N_2(flag0, value0, _default) \ |
84 | 83 | Z_COND_CODE_1(flag0, (__DEBRACKET value0), (__DEBRACKET _default)) |
85 | | -#define Z_COND_CASE_1_LEVEL_3(...) Z_COND_SWITCH_REQUIRES_FLAG_VALUE_PAIRS |
86 | | -#define Z_COND_CASE_1_LEVEL_4(flag0, value0, ...) \ |
87 | | - Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_LEVEL_2(__VA_ARGS__))) |
88 | | -#define Z_COND_CASE_1_LEVEL_5(...) Z_COND_SWITCH_REQUIRES_FLAG_VALUE_PAIRS |
89 | | -#define Z_COND_CASE_1_LEVEL_6(flag0, value0, ...) \ |
90 | | - Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_LEVEL_4(__VA_ARGS__))) |
91 | | -#define Z_COND_CASE_1_LEVEL_7(...) Z_COND_SWITCH_REQUIRES_FLAG_VALUE_PAIRS |
92 | | -#define Z_COND_CASE_1_LEVEL_8(flag0, value0, ...) \ |
93 | | - Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_LEVEL_6(__VA_ARGS__))) |
94 | | -#define Z_COND_CASE_1_LEVEL_9(...) Z_COND_SWITCH_REQUIRES_FLAG_VALUE_PAIRS |
95 | | -#define Z_COND_CASE_1_LEVEL_10(flag0, value0, ...) \ |
96 | | - Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_LEVEL_8(__VA_ARGS__))) |
97 | | -#define Z_COND_CASE_1_LEVEL_11(...) Z_COND_SWITCH_REQUIRES_FLAG_VALUE_PAIRS |
98 | | -#define Z_COND_CASE_1_LEVEL_12(flag0, value0, ...) \ |
99 | | - Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_LEVEL_10(__VA_ARGS__))) |
100 | | -#define Z_COND_CASE_1_LEVEL_13(...) Z_COND_SWITCH_REQUIRES_FLAG_VALUE_PAIRS |
101 | | -#define Z_COND_CASE_1_LEVEL_14(flag0, value0, ...) \ |
102 | | - Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_LEVEL_12(__VA_ARGS__))) |
103 | | -#define Z_COND_CASE_1_LEVEL_15(...) Z_COND_SWITCH_REQUIRES_FLAG_VALUE_PAIRS |
104 | | -#define Z_COND_CASE_1_LEVEL_16(flag0, value0, ...) \ |
105 | | - Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_LEVEL_14(__VA_ARGS__))) |
106 | | -#define Z_COND_CASE_1_LEVEL_17(...) Z_COND_SWITCH_REQUIRES_FLAG_VALUE_PAIRS |
107 | | -#define Z_COND_CASE_1_LEVEL_18(flag0, value0, ...) \ |
108 | | - Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_LEVEL_16(__VA_ARGS__))) |
109 | | -#define Z_COND_CASE_1_LEVEL_19(...) Z_COND_SWITCH_REQUIRES_FLAG_VALUE_PAIRS |
110 | | -#define Z_COND_CASE_1_LEVEL_20(flag0, value0, ...) \ |
111 | | - Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_LEVEL_18(__VA_ARGS__))) |
112 | | -#define Z_COND_CASE_1_LEVEL_21(...) Z_COND_SWITCH_REQUIRES_FLAG_VALUE_PAIRS |
113 | | -#define Z_COND_CASE_1_LEVEL_22(flag0, value0, ...) \ |
114 | | - Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_LEVEL_20(__VA_ARGS__))) |
115 | | -#define Z_COND_CASE_1_LEVEL_23(...) Z_COND_SWITCH_REQUIRES_FLAG_VALUE_PAIRS |
116 | | -#define Z_COND_CASE_1_LEVEL_24(flag0, value0, ...) \ |
117 | | - Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_LEVEL_22(__VA_ARGS__))) |
118 | | -#define Z_COND_CASE_1_LEVEL_25(...) Z_COND_SWITCH_REQUIRES_FLAG_VALUE_PAIRS |
119 | | -#define Z_COND_CASE_1_LEVEL_26(flag0, value0, ...) \ |
120 | | - Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_LEVEL_24(__VA_ARGS__))) |
121 | | -#define Z_COND_CASE_1_LEVEL_27(...) Z_COND_SWITCH_REQUIRES_FLAG_VALUE_PAIRS |
122 | | -#define Z_COND_CASE_1_LEVEL_28(flag0, value0, ...) \ |
123 | | - Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_LEVEL_26(__VA_ARGS__))) |
124 | | -#define Z_COND_CASE_1_LEVEL_29(...) Z_COND_SWITCH_REQUIRES_FLAG_VALUE_PAIRS |
125 | | -#define Z_COND_CASE_1_LEVEL_30(flag0, value0, ...) \ |
126 | | - Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_LEVEL_28(__VA_ARGS__))) |
127 | | -#define Z_COND_CASE_1_LEVEL_31(...) Z_COND_SWITCH_REQUIRES_FLAG_VALUE_PAIRS |
128 | | -#define Z_COND_CASE_1_LEVEL_32(flag0, value0, ...) \ |
129 | | - Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_LEVEL_30(__VA_ARGS__))) |
130 | | -#define Z_COND_CASE_1_LEVEL_33(...) Z_COND_SWITCH_REQUIRES_FLAG_VALUE_PAIRS |
131 | | - |
132 | | -#define Z_COND_CASE_1_REQUIRES_FLAG_VALUE_PAIRS Z_COND_CASE_1_REQUIRES_FLAG_VALUE_PAIRS |
| 84 | +#define Z_COND_CASE_1_N_4(flag0, value0, ...) \ |
| 85 | + Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_N_2(__VA_ARGS__))) |
| 86 | +#define Z_COND_CASE_1_N_6(flag0, value0, ...) \ |
| 87 | + Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_N_4(__VA_ARGS__))) |
| 88 | +#define Z_COND_CASE_1_N_8(flag0, value0, ...) \ |
| 89 | + Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_N_6(__VA_ARGS__))) |
| 90 | +#define Z_COND_CASE_1_N_10(flag0, value0, ...) \ |
| 91 | + Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_N_8(__VA_ARGS__))) |
| 92 | +#define Z_COND_CASE_1_N_12(flag0, value0, ...) \ |
| 93 | + Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_N_10(__VA_ARGS__))) |
| 94 | +#define Z_COND_CASE_1_N_14(flag0, value0, ...) \ |
| 95 | + Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_N_12(__VA_ARGS__))) |
| 96 | +#define Z_COND_CASE_1_N_16(flag0, value0, ...) \ |
| 97 | + Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_N_14(__VA_ARGS__))) |
| 98 | +#define Z_COND_CASE_1_N_18(flag0, value0, ...) \ |
| 99 | + Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_N_16(__VA_ARGS__))) |
| 100 | +#define Z_COND_CASE_1_N_20(flag0, value0, ...) \ |
| 101 | + Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_N_18(__VA_ARGS__))) |
| 102 | +#define Z_COND_CASE_1_N_22(flag0, value0, ...) \ |
| 103 | + Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_N_20(__VA_ARGS__))) |
| 104 | +#define Z_COND_CASE_1_N_24(flag0, value0, ...) \ |
| 105 | + Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_N_22(__VA_ARGS__))) |
| 106 | +#define Z_COND_CASE_1_N_26(flag0, value0, ...) \ |
| 107 | + Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_N_24(__VA_ARGS__))) |
| 108 | +#define Z_COND_CASE_1_N_28(flag0, value0, ...) \ |
| 109 | + Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_N_26(__VA_ARGS__))) |
| 110 | +#define Z_COND_CASE_1_N_30(flag0, value0, ...) \ |
| 111 | + Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_N_28(__VA_ARGS__))) |
| 112 | +#define Z_COND_CASE_1_N_32(flag0, value0, ...) \ |
| 113 | + Z_COND_CODE_1(flag0, (__DEBRACKET value0), (Z_COND_CASE_1_N_30(__VA_ARGS__))) |
133 | 114 |
|
134 | 115 | /* Used by IS_EMPTY() */ |
135 | 116 | /* reference: https://gustedt.wordpress.com/2010/06/08/detect-empty-macro-arguments/ */ |
|
0 commit comments