Typedefing枚举“成员”

时间:2017-02-01 19:34:29

标签: c++

假设我在"foo.h"

中有以下定义
namespace Foo{
     enum Bar {
        A,
        B
     };
}

当我加入“typedef Foo::Bar::A a时,为什么不会编译foo.h"?我如何使用A的简写名称?

1 个答案:

答案 0 :(得分:2)

typedef关键字仅用于别名类型,而不用于其他类型的实体。 A不是一种类型;这是一个价值。如果您想要别名,可以constexpr Foo::Bar a = Foo::A;