Namespace aliases
Namespace aliases allow the programmer to define an alternate name for a namespace.
They are commonly used as a convenient shortcut for long or deeply-nested namespaces.
Syntax
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) | (since C++26) |
| alias_name | - | an identifier |
| ns_name | - | a (possibly qualified) identifier that names a namespace or namespace alias |
| splice-specifier | - | a splice specifier that designates a namespace that is not the global namespace |
Explanation
The new alias alias_name provides an alternate method of accessing ns_name or the namespace designated by splice-specifier(since C++26).
alias_name must be a name not previously used. alias_name is valid for the duration of the scope in which it is introduced.
Keywords
Example
#include <iostream>
namespace foo
{
namespace bar
{
namespace baz
{
int qux = 42;
}
}
}
namespace fbz = foo::bar::baz;
int main()
{
std::cout << fbz::qux << '\n';
}
Output:
42
See also
| namespace declaration | identifies a namespace |
| type alias declaration (C++11) | creates a synonym for a type |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/language/namespace_alias