2012-03-23 4 views
1

I가 내가 리팩토링 해요 다음 코드를C++ 중첩 네임 스페이스 별칭이 가능합니까?

namespace Pi { ...classes... } // refactored Foo::Bar 
namespace Foo { namespace Bar = Pi; } // API compatibility 

이 아무튼를 : I'ld이 API의 호환성을 유지하려면

namespace Foo 
{ 
    namespace Bar { ...classes... } 
} 

바 이제 새로운 최상위 네임 스페이스로 이동하지만, 'Foo :: Bar :: Class to Foo :: Pi :: Class,하지만 Pi :: Class는 별칭이 아니기 때문에 작동하지 않습니다. 내가 원하는 것을 성취 할 수있는 방법이 있습니까 (모든 Pi 등급으로 분류 된 매크로 또는 typedef). 만약 내가 제대로 이해하고

namespace Foo { 
    namespace Bar { 
    using namespace Pi; 
    } 
} 

답변

2

, 이것은 당신이 필요로하는 무엇을 수행해야합니다

+0

Doh, 너무 명백했습니다! 감사. – eile

1

아차, 당신은 그것을 라운드 다른 방법을 원한다. Foo::Bar의 조회는 ::Pi에 이름이 있음을 의미합니다.

namespace Pi {} 
namespace Foo { namespace Bar { using namespace Pi; } } 

분명히 이진 호환성은 유지되지 않습니다.

관련 문제