【发布时间】:2014-11-19 14:25:01
【问题描述】:
我知道在 C++11 中可以转发声明枚举类型(如果提供了存储类型),例如
enum E : short;
void foo(E e);
....
enum E : short
{
VALUE_1,
VALUE_2,
....
}
但我想转发声明一个类中定义的枚举,例如
enum Foo::E : short;
void foo(E e);
....
class Foo
{
enum E : short
{
VALUE_1,
VALUE_2,
....
}
}
这样的事情在 C++11 中可能吗?
【问题讨论】:
-
在枚举之前先声明类怎么样
class Foo;? -
我对此表示怀疑。您不能转发声明成员函数、typedef 等。为什么会有所不同? (C++ 类是关闭的,这意味着它们在定义后无法编辑。)另见stackoverflow.com/questions/836551/…
-
与类不同,可以从任何地方添加命名空间。为什么不把枚举和类放到一个命名空间中呢?
标签: c++ c++11 enums nested forward-declaration