static_if im Präprozessor von C99
Ist es möglich, static_if in C99 zu implementieren?
#define STATIC_IF(COND, ...) \
if (COND) MACRO1(__VA_ARGS__); \
else MACRO2(__VA_ARGS__);
Wie kann ich das richtig umsetzenSTATIC_IF(…)
hier drin? Es hängt davon abCOND
Die Argumente sollten entweder an übergeben werdenMACRO1
oderMACRO2
, aber die Argumente für beide Makros sehen unterschiedlich aus.COND
ist statisch prüfbar, sowassizeof (…) > 42
.
#if COND
dann#define STATIC_IF MACRO1
… Würde für meinen Anwendungsfall nicht funktionieren.Ich kann keine compilerspezifischen Lösungen verwenden.