我知道在C++ 11中可以转发声明枚举类型(如果提供了存储类型),例如
enum E : short;
void foo(E e);
....
enum E : short
{
VALUE_1,
VALUE_2,
....
}
Run Code Online (Sandbox Code Playgroud)
但我想转发声明在类中定义的枚举,例如
enum Foo::E : short;
void foo(E e);
....
class Foo
{
enum E : short
{
VALUE_1,
VALUE_2,
....
}
}
Run Code Online (Sandbox Code Playgroud)
在C++ 11中是否可以这样?
我有类似以下代码:
class B
{
}
class A
{
enum {
EOne,
ETwo
} EMyEnum;
B myB;
}
Run Code Online (Sandbox Code Playgroud)
我想在类B中声明一个类型为EMyEnum的成员(在A之前声明).这可能吗?我意识到解决方案是将B类声明为秒,但为了清楚起见,我宁愿不这样做.