7.3.2 名字空间别名
7.3.2 名字空间别名
1、名字空间别名定义根据下述语法为名字空间声明了一个可替代的名字:
namespace-alias:
identifier
namespace-alias-definition:
namespace identifier = qualified-namespace-specifier ;
qualified-namespace-specifier:
::opt nested-name-specifieropt namespace-name
2、namespace-alias-definition中的标识符为qualified-namespace-specifier所指名字空间的名字的同义词。[注:当在namespace-alias-definition中查找namespace-name时,只考虑名字空间名字,参见
3、在某个声明区域内,namespace-alias-definition可重定义namespace-alias指向其本来所指的名字空间。例如:以下的声明是有效的:
namespace Company_with_very_long_name { /* ... */ }
namespace CWVLN = Company_with_very_long_name;
namespace CWVLN = Company_with_very_long_name; // OK: duplicate
namespace CWVLN = CWVLN;
4、在同一声明区域内,namespace-name或namespace-alias不能被声明为任何其它实体的名字。全局作用域定义的namespace-name在整个程序的所有全局作用域内都不再能声明为任何其它实体的名字。编译器不需要诊断违反此规则的位于不同翻译单元中声明。