나는 다음과 같은 코드를했다고 가정 :지도 클래스에 열거 네임 스페이스
내가 TODO 섹션에 넣을 수있는 코드의 어떤 종류의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())
{ /* ... */ }
}
나머지가 유효하게? 일부 using
또는 typedef
?
PS : 대한 질문을 피하기 위해 "왜"네임 스페이스는 자신의 헤더 파일에 거주하고 fooBarA
및 fooBarB
의 가치에 동의하지만, 또한 근거가 있음을 숨길해야 할 몇 가지 다른 클래스에 의해 사용될 수 을 사용하는 사람에게는 해당 사항이 없으므로 foo
에 있습니다.
PPS : C++ 11이 허용됩니다. enum class
도움이 될까요?
PPPS : using declaration with enum? 같은 다른 질문은 enum이 클래스에 있고 네임 스페이스에 직접없는 경우를 처리합니다.
foo :: bar라고 할 수 있습니까? – Vikdor
예,'foo :: bar'는 작동 할 것이지만'bar '가'baz'의 사용자에게'baz'의 "회원"이 아니라는 사실을 숨길 수는 없습니다. 다른 말로 표현하자면,'바 '를'바스'의 정회원처럼 보이게하고 싶습니다. – Chris