The following code does not expand the Boolean expression, see also https://godbolt.org/z/YqbazT3eo:
#define EXPAND(x) x
#define SWITCH false
EXPAND(SWITCH || defined(_DEBUG))
How do I do it correctly so that I can do
#define FLAG EXPAND(SWITCH || defined(_DEBUG))
(or similar) and FLAG will not depend on later changes to SWITCH?
The only way is this: