VS不允许我编译代码:
enum class Traffic_light{ green, yellow, red };
Traffic_light& operator++(Traffic_light& t)
{
switch (t)
{
case Traffic_light::green: return t = Traffic_light::yellow;
case Traffic_light::yellow: return t = Traffic_light::red;
case Traffic_light::red: return t = Traffic_light::green;
}
}
这个例子来自Bjarne Stroustrup的书。我认为这可能是C ++ 11支持的问题,但是......真的吗? VS 2013还没有实现呢?我在这里读过,他做了:MSDN
我应该或不应该做什么?
Compiller错误:
错误4错误C2051:案例表达式不是常数
错误8错误C2051:案例表达式不是常数
错误12错误C2051:案例表达式不是常数
错误3错误C2065:'绿色' :未声明的标识符
错误13错误C2065:'绿色' :未声明的标识符
错误9错误C2065:'红色' :未声明的标识符
错误11错误C2065:'红色' :未声明的标识符
错误5错误C2065:'黄色' :未声明的标识符
错误7错误C2065:'黄色' :未声明的标识符
错误1错误C2601:'运算符++' :本地函数定义是非法的
错误2错误C2653:' Traffic_light' :不是类或命名空间名称
错误6错误C2653:' Traffic_light' :不是类或命名空间名称
错误10错误C2653:' Traffic_light' :不是类或命名空间名称