네임스페이스 별칭

네임스페이스 별칭 (Namespace alias)

네임스페이스 이름이 길거나 중첩이 깊어지면, 매번 그 긴 이름을 적는 게 꽤 번거로워져요. 이럴 때 네임스페이스에 짧은 별칭(alias)을 붙여서 쓰면 훨씬 편리해져요.

출처: cppreference

본문

네임스페이스 별칭은 프로그래머가 어떤 네임스페이스에 대해 대체 이름(alternate name)을 정의할 수 있게 해주는 기능이에요. 긴 네임스페이스나 깊게 중첩된 네임스페이스를 다룰 때 편리한 지름길(shorthand)로 흔히 사용돼요.

문법

namespace alias_name = ns_name ;                  (1)
namespace alias_name = :: ns_name ;               (2)
namespace alias_name = nested_name :: ns_name ;   (3)
namespace alias_name = splice-specifier ;         (4)  (C++26부터)
  • alias_name — 식별자
  • ns_name — 네임스페이스나 네임스페이스 별칭을 가리키는 (qualified일 수도 있는) 식별자
  • splice-specifier — 전역 네임스페이스가 아닌 네임스페이스를 가리키는 splice 지정자

설명

새 별칭 alias_namens_name 또는 splice-specifier(C++26부터)가 가리키는 네임스페이스에 접근하는 또 다른 방법을 제공해요.

alias_name은 이전에 사용된 적 없는 이름이어야 해요. 그리고 alias_name은 그것이 도입된 스코프가 유지되는 동안 유효해요.

실제로 어떻게 쓰는지 예시로 확인해 볼게요.

#include <iostream>

namespace foo
{
    namespace bar
    {
         namespace baz
         {
             int qux = 42;
         }
    }
}

namespace fbz = foo::bar::baz;

int main()
{
    std::cout << fbz::qux << '\n';
}

출력:

42

foo::bar::baz라는 깊게 중첩된 이름을 fbz라는 짧은 별칭으로 바꿔서, fbz::qux처럼 간결하게 접근하는 걸 볼 수 있어요.

키워드

namespace

더 알아보기