3

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

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;
    ...
}

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

4

0 回答 0