“using”指令用于作用域枚举的声明者?

时间:2015-11-20 13:03:47

标签: c++ c++11 enums using enum-class

有没有办法使用某种使用指令直接访问枚举类类型的成员?

enum class Foo {
    Foo1,
    Foo2,
    ...
};

int main() {
    auto foo = Foo::Foo1;
    ??? // magic command to make the lines below work
    auto foo1 = Foo1;
    auto foo2 = Foo2;
    ...
}

我知道我可以用命名空间来做,所以另一种方法是使用命名空间和传统的枚举:

namespace Foo {
    enum FooEnum {
        Foo1,
        Foo2,
        ...
    };
}

int main() {
    auto foo = Foo::Foo1;
    using namespace Foo;
    auto foo1 = Foo1;
    auto foo2 = Foo2;
    ...
}

但是,我想保留类枚举的优点(如类型安全等)。

0 个答案:

没有答案