Modern Effective C++ Item10:
- 什么是unscoped enum和scoped enum?
- 推荐使用scoped enum的原因…
10.1 什么是unscoped enum? Scoped enum?
在C++11之前,使用枚举的方式是这样的,
enum Color {
black, white, red};
auto white = flase; // error, variable already exits in this scope
枚举中的值的作用域不是在括号内,而是和Color的作用域是一样的。因此这些enum的成员已经泄露到了enum所在的作用域去了,官方称之为unscoped.
在C++11之后,与之对应的版本为