如何在C++预处理器中扩展布尔表达式?

问题描述 投票:0回答:1

以下代码不展开布尔表达式,另见https://godbolt.org/z/YqbazT3eo:

#define EXPAND(x) x

#define SWITCH false
EXPAND(SWITCH || defined(_DEBUG))

我该如何正确地做才能做到

#define FLAG EXPAND(SWITCH || defined(_DEBUG))

(或类似)和

FLAG
不会依赖于以后对
SWITCH
的更改?

c++ macros preprocessor expansion
1个回答
2
投票

FLAG
不会依赖以后的SWITCH改动吗?

唯一的方法是这样:

#if SWITCH || defined(_DEBUG)
#define FLAG 1
#else
#define FLAG 0
#endif
© www.soinside.com 2019 - 2024. All rights reserved.