|
90 | 90 | #define IS_ENABLED_ALL_13(a, ...) COND_CODE_1(a, (IS_ENABLED_ALL_12(__VA_ARGS__,)), (0)) |
91 | 91 | #define IS_ENABLED_ALL_14(a, ...) COND_CODE_1(a, (IS_ENABLED_ALL_13(__VA_ARGS__,)), (0)) |
92 | 92 | #define IS_ENABLED_ALL_15(a, ...) COND_CODE_1(a, (IS_ENABLED_ALL_14(__VA_ARGS__,)), (0)) |
| 93 | + |
93 | 94 | /* Implementation of IS_EQ(). Returns 1 if _0 and _1 are the same integer from |
94 | 95 | * 0 to 4096, 0 otherwise. |
95 | 96 | */ |
|
157 | 158 | #define UTIL_EXPAND(...) __VA_ARGS__ |
158 | 159 | #define UTIL_REPEAT(...) UTIL_LISTIFY(__VA_ARGS__) |
159 | 160 |
|
| 161 | +#define UTIL_OR_CAT(a, b) a || b |
| 162 | +#define UTIL_CONCAT_OR_(...) \ |
| 163 | + UTIL_CONCAT_OR_N_(NUM_VA_ARGS(__VA_ARGS__), __VA_ARGS__) |
| 164 | +#define UTIL_CONCAT_OR_N_(N, ...) UTIL_CAT(UTIL_CONCAT_OR_, N)(__VA_ARGS__) |
| 165 | +#define UTIL_CONCAT_OR_0 |
| 166 | +#define UTIL_CONCAT_OR_1(a, ...) a |
| 167 | +#define UTIL_CONCAT_OR_2(a, ...) UTIL_OR_CAT(a, UTIL_CONCAT_OR_1(__VA_ARGS__)) |
| 168 | +#define UTIL_CONCAT_OR_3(a, ...) UTIL_OR_CAT(a, UTIL_CONCAT_OR_2(__VA_ARGS__)) |
| 169 | +#define UTIL_CONCAT_OR_4(a, ...) UTIL_OR_CAT(a, UTIL_CONCAT_OR_3(__VA_ARGS__)) |
| 170 | +#define UTIL_CONCAT_OR_5(a, ...) UTIL_OR_CAT(a, UTIL_CONCAT_OR_4(__VA_ARGS__)) |
| 171 | +#define UTIL_CONCAT_OR_6(a, ...) UTIL_OR_CAT(a, UTIL_CONCAT_OR_5(__VA_ARGS__)) |
| 172 | +#define UTIL_CONCAT_OR_7(a, ...) UTIL_OR_CAT(a, UTIL_CONCAT_OR_6(__VA_ARGS__)) |
| 173 | +#define UTIL_CONCAT_OR_8(a, ...) UTIL_OR_CAT(a, UTIL_CONCAT_OR_7(__VA_ARGS__)) |
| 174 | +#define UTIL_CONCAT_OR_9(a, ...) UTIL_OR_CAT(a, UTIL_CONCAT_OR_8(__VA_ARGS__)) |
| 175 | +#define UTIL_CONCAT_OR_10(a, ...) UTIL_OR_CAT(a, UTIL_CONCAT_OR_9(__VA_ARGS__)) |
| 176 | +#define UTIL_CONCAT_OR_11(a, ...) UTIL_OR_CAT(a, UTIL_CONCAT_OR_10(__VA_ARGS__)) |
| 177 | +#define UTIL_CONCAT_OR_12(a, ...) UTIL_OR_CAT(a, UTIL_CONCAT_OR_11(__VA_ARGS__)) |
| 178 | +#define UTIL_CONCAT_OR_13(a, ...) UTIL_OR_CAT(a, UTIL_CONCAT_OR_12(__VA_ARGS__)) |
| 179 | +#define UTIL_CONCAT_OR_14(a, ...) UTIL_OR_CAT(a, UTIL_CONCAT_OR_13(__VA_ARGS__)) |
| 180 | +#define UTIL_CONCAT_OR_15(a, ...) UTIL_OR_CAT(a, UTIL_CONCAT_OR_14(__VA_ARGS__)) |
| 181 | + |
| 182 | +#define UTIL_AND_CAT(a, b) a && b |
| 183 | +#define UTIL_CONCAT_AND_(...) \ |
| 184 | + UTIL_CONCAT_AND_N_(NUM_VA_ARGS(__VA_ARGS__), __VA_ARGS__) |
| 185 | +#define UTIL_CONCAT_AND_N_(N, ...) UTIL_CAT(UTIL_CONCAT_AND_, N)(__VA_ARGS__) |
| 186 | +#define UTIL_CONCAT_AND_0 |
| 187 | +#define UTIL_CONCAT_AND_1(a, ...) a |
| 188 | +#define UTIL_CONCAT_AND_2(a, ...) UTIL_AND_CAT(a, UTIL_CONCAT_AND_1(__VA_ARGS__)) |
| 189 | +#define UTIL_CONCAT_AND_3(a, ...) UTIL_AND_CAT(a, UTIL_CONCAT_AND_2(__VA_ARGS__)) |
| 190 | +#define UTIL_CONCAT_AND_4(a, ...) UTIL_AND_CAT(a, UTIL_CONCAT_AND_3(__VA_ARGS__)) |
| 191 | +#define UTIL_CONCAT_AND_5(a, ...) UTIL_AND_CAT(a, UTIL_CONCAT_AND_4(__VA_ARGS__)) |
| 192 | +#define UTIL_CONCAT_AND_6(a, ...) UTIL_AND_CAT(a, UTIL_CONCAT_AND_5(__VA_ARGS__)) |
| 193 | +#define UTIL_CONCAT_AND_7(a, ...) UTIL_AND_CAT(a, UTIL_CONCAT_AND_6(__VA_ARGS__)) |
| 194 | +#define UTIL_CONCAT_AND_8(a, ...) UTIL_AND_CAT(a, UTIL_CONCAT_AND_7(__VA_ARGS__)) |
| 195 | +#define UTIL_CONCAT_AND_9(a, ...) UTIL_AND_CAT(a, UTIL_CONCAT_AND_8(__VA_ARGS__)) |
| 196 | +#define UTIL_CONCAT_AND_10(a, ...) UTIL_AND_CAT(a, UTIL_CONCAT_AND_9(__VA_ARGS__)) |
| 197 | +#define UTIL_CONCAT_AND_11(a, ...) UTIL_AND_CAT(a, UTIL_CONCAT_AND_10(__VA_ARGS__)) |
| 198 | +#define UTIL_CONCAT_AND_12(a, ...) UTIL_AND_CAT(a, UTIL_CONCAT_AND_11(__VA_ARGS__)) |
| 199 | +#define UTIL_CONCAT_AND_13(a, ...) UTIL_AND_CAT(a, UTIL_CONCAT_AND_12(__VA_ARGS__)) |
| 200 | +#define UTIL_CONCAT_AND_14(a, ...) UTIL_AND_CAT(a, UTIL_CONCAT_AND_13(__VA_ARGS__)) |
| 201 | +#define UTIL_CONCAT_AND_15(a, ...) UTIL_AND_CAT(a, UTIL_CONCAT_AND_14(__VA_ARGS__)) |
| 202 | + |
160 | 203 | #define _CONCAT_0(arg, ...) arg |
161 | 204 | #define _CONCAT_1(arg, ...) UTIL_CAT(arg, _CONCAT_0(__VA_ARGS__)) |
162 | 205 | #define _CONCAT_2(arg, ...) UTIL_CAT(arg, _CONCAT_1(__VA_ARGS__)) |
|
0 commit comments