我有一个命名空间层次结构,并希望为一些长命名空间名称提供缩写。例如,我有
Math::Geometry::OneDimension::
我希望Ge
使用Geometry
而D1
使用OneDimension
,因此以下工作
Math::Ge::OneDimension::
Math::Geoemtry::D1::
Math::Ge::D1::
是否可以使用命名空间别名来执行此操作?
答案 0 :(得分:8)
您可以使用命名空间别名:
namespace D1 = Math::Geometry::OneDimension;
答案 1 :(得分:3)
要像这样访问它,你需要在它们的封闭命名空间中声明命名空间别名:
namespace Math {
namespace Ge = Geometry;
namespace Geometry {
namespace D1 = OneDimension;
}
}
当然,您可以在其他作用域中声明别名,并在该作用域中将其作为Ge
和D1
进行访问。
答案 2 :(得分:2)
namespace Ge = Math::Geonetry::OneDimension;
答案 3 :(得分:1)
您可以在命名空间内执行别名,或者,您可以从命名空间的外部执行此操作:
namespace Ge = Math::Geometry;
namespace D1 = Ge::OneDimension;
Ge::element_of_geometry;
D1::element_of_one_dimension;
我更喜欢这种解决方案,但在范围内使用它以避免名称冲突。