名称空间别名是通过一个不同的较短名称来引用一个长名称空间名称的一种便捷方式。
别名可以用来简化对嵌套名称空间的使用(using声明以及使用作用域解析运算符来使用名称)。
举一个例子,假设你想使用Boost的uBLAS中的数字向量而不想用using namespace
指令。每次说出完整的命名空间是很麻烦的:
boost::numeric::ublas::vector<double> v;
相反,你可以定义一个别名boost::numeric::ublas
- 比如说我们想把它缩写为ublas
:
namespace ublas = boost::numeric::ublas;
ublas::vector<double> v;
注意:
- 在同一文件中别名的使用一般与正常名称空间无异
- 声明区域上别名可在文件中任何地方声明,且其声明区域为其所在代码块或全局
- 作用域上为声明点到声明区域结尾,期间可用作用域解析运算符等声明内部名称并使用
- 别名具备覆盖代码块外同名名称空间的特性
- 关于内部名称的外链接性:别名的内部名称不具备外链接性
- 无法创建另一个文件的嵌套名字空间的别名