【发布时间】:2019-10-31 07:56:29
【问题描述】:
我们转移到一个新的编译环境,突然间我开始在这个语句中看到这个错误“预期表达式”:
enum {
PROJX,
PROJY,
PROJW
};
constexpr int PLATFORM =
#if defined(X)
PROJX
#elif defined(Y)
PROJY
#elif defined(W)
PROJW
#endif
;
错误指向最后一个分号。
这是否与特定的 c++11/14/17 标准有关?
【问题讨论】:
-
您确定定义了
X、Y或W吗?在我看来,在你的新配置中,没有一个是定义的,所以你有constexpr int PLATFORM = ;。 -
可能是 X、Y 和 W 都未定义所以结果是
constexpr int PLATFORM = ;? -
尝试添加
#else。 -
...特别是,尝试添加一个包含
#error ...消息的#else部分。 -
“这是否与特定的 c++11/14/17 标准有关?” 没有。
标签: c++ c++11 c-preprocessor constexpr