VS2013中的强类型枚举

时间:2014-11-20 11:43:27

标签: c++ visual-c++ c++11 visual-studio-2013 enums

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' :不是类或命名空间名称

0 个答案:

没有答案