次のようなコードがあるとします。
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:列挙型で宣言を使用するなどの他の質問はありますか? 列挙型が名前空間に直接ではなく、クラスにある場合を処理します。