如何给命名空间一个缩写?

时间:2013-12-10 15:06:42

标签: c++ namespaces

我有一个命名空间层次结构,并希望为一些长命名空间名称提供缩写。例如,我有

Math::Geometry::OneDimension::

我希望Ge使用GeometryD1使用OneDimension,因此以下工作

Math::Ge::OneDimension::
Math::Geoemtry::D1::
Math::Ge::D1::

是否可以使用命名空间别名来执行此操作?

4 个答案:

答案 0 :(得分:8)

您可以使用命名空间别名:

namespace D1 = Math::Geometry::OneDimension;

答案 1 :(得分:3)

要像这样访问它,你需要在它们的封闭命名空间中声明命名空间别名:

namespace Math {
   namespace Ge = Geometry;
   namespace Geometry {
       namespace D1 = OneDimension;
   }
}

当然,您可以在其他作用域中声明别名,并在该作用域中将其作为GeD1进行访问。

答案 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;

我更喜欢这种解决方案,但在范围内使用它以避免名称冲突。