枚举类的向量的初始化列表问题

Elr*_*nnd 3 c++ enums vector

我有一个枚举,以及枚举的一些内容的几个向量.我想将枚举更改为枚举类,因为类型安全,但我收到错误.请考虑以下代码段:

#include <vector>

enum Colour {
        red,
        green,
        blue
};

int main() {
        const std::vector<Colour> something { red, green };
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

它工作正常.但是,如果我将枚举更改为枚举类,我会收到错误,例如error: ‘green’ was not declared in this scope.我能做什么?

v78*_*v78 5

使用Color::green了枚举类.

  • 为什么,它使代码更具可读性?枚举类比普通枚举更安全. (4认同)
  • red可能在其他地方定义,例如在外部库中.对于某些类型的安全来说,这是一种权衡,更多的打字. (2认同)