我们转到了新的编译环境,突然间我开始在此语句上看到此错误“期望的表达式”:
enum {
PROJX,
PROJY,
PROJW
};
constexpr int PLATFORM =
#if defined(X)
PROJX
#elif defined(Y)
PROJY
#elif defined(W)
PROJW
#endif
;
错误指向最后一个分号。
这与特定的c ++ 11/14/17标准有关吗?
答案 0 :(得分:7)
没有标准可更改此行为。我的猜测是三个都没有定义,最后得到:
constexpr int PLATFORM = ;
您可以通过添加#else
和默认值/ #error
或在运行预处理程序后检查编译器的输出来进行测试。