我正在使用带有-std = c++ 11标志的gcc。在我的类(class)定义中,我有以下内容:
private:
const int January = 1,
February = 2,
March = 3,
...
在我的实现中,我有一个switch语句。
switch (currentMonth)
{
case January:
returnString = "January";
break;
case February:
returnString = "February";
break;
case March:
returnString = "March";
break;
...
这似乎应该工作,因为几个月是固定的。但是,海湾合作委员会给了我
calendar.cpp:116:12: error: ‘this’ is not a constant expression
在switch语句的每种情况下..为什么会这样呢?
最佳答案
非静态类成员不是常量表达式。试试这个:
static constexpr int January = 1;