跳转至

using enum 声明

  • using enum 声明有2种语法形式
  • using enum 枚举名
  • using 枚举名::枚举子项名

1 using enum 枚举名

  • 功能:类似于using namespace声明,using enum 声明将枚举值暴露在当前作用域中
  • 注意事项:同一作用域不能有相同命令(会命名冲突)
  • 示例
enum class fruit { orange, apple };
struct S1 {

  using enum fruit; // OK :引入 orange 与 apple 到 S1 中
  //char orange; error,不能同名
};
void f()
{
    using fruit::orange;
    auto en=orange;
    S s;
    s.orange;  // OK :指名 fruit::orange
    S::orange; // OK :指名 fruit::orange
}

2 using 枚举名::枚举子项名

  • 功能:将枚举中某一具体子项名暴露在当前作用域中
  • 注意事项:同一作用域不能有相同命令(会命名冲突)
  • 示例
enum class fruit { orange, apple };

struct S2 {
  using fruit::orange;
  using fruit::apple;
};
void f()
{
    using fruit::orange;
    auto en=orange;
    S2 s2;
    s2.orange;  // OK :指名 fruit::orange
    S2::orange; // OK :指名 fruit::orange
}