네임스페이스 별칭
네임스페이스 별칭 (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_name은 ns_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