我正在使用带有-std = c ++ 11标志的gcc.在我的课程定义中,我有以下内容:
private:
const int January = 1,
February = 2,
March = 3,
...
Run Code Online (Sandbox Code Playgroud)
在我的实现中,我有一个switch语句.
switch (currentMonth)
{
case January:
returnString = "January";
break;
case February:
returnString = "February";
break;
case March:
returnString = "March";
break;
...
Run Code Online (Sandbox Code Playgroud)
这似乎应该有效,因为月份是不变的; 但是,gcc给了我
calendar.cpp:116:12: error: ‘this’ is not a constant expression
Run Code Online (Sandbox Code Playgroud)
在switch语句的每个案例上.为什么这是错的?
Ker*_* SB 13
非静态类成员不是常量表达式.试试这个:
static constexpr int January = 1;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5782 次 |
| 最近记录: |