Возможно ли реализовать static_if в C99?
#define STATIC_IF(COND, ...) \
if (COND) MACRO1(__VA_ARGS__); \
else MACRO2(__VA_ARGS__);
Как я могу правильно реализовать STATIC_IF(…)
здесь? В зависимости от COND
аргументы должны быть переданы в MACRO1
или MACRO2
, но аргументы для обоих макросов выглядят по-разному. COND
является статически проверяемым, что-то вроде sizeof (…) > 42
.
-
#if COND
, тогда#define STATIC_IF MACRO1
... не будет работать для моего использования. - Я не могу использовать специфические для компилятора решения.