假设我有这样的代码:
namespace foo {
enum bar
{
fooBarA,
fooBarB
};
}
struct baz
{
// TODO: map "bar" in this struct to make valid:
bar returnSomething() { return fooBarA; }
};
// and also this:
void doSomething()
{
baz myBaz;
if( baz::fooBarA == myBaz.returnSomething() )
{ /* ... */ }
}
我可以在 TODO 部分放置什么样的代码以使其余部分有效?一些using
或typedef
?
PS:为了避免关于“为什么”的问题:命名空间存在于它自己的头文件中,并且可能被几个不同的类使用,这些类应该就值达成一致,fooBarA
但fooBarB
也隐藏它们所基于的,foo
因为这与伙计们使用baz
.
PPS:允许使用 C++11。会有enum class
帮助吗?
PPPS:其他问题,例如使用枚举声明?处理枚举在类中而不是直接在命名空间中的情况。