繁体   English   中英

你能在C ++中转发声明一个名称空间别名吗?

[英]Can you forward-declare a namespace alias in C++?

我想在共享头中设置一些常见的别名,以便各个头不必单独声明它。 但是我不希望在此共享头中包含目标命名空间的头,只声明别名。 这可能吗?

例如,我想要namespace GE = Graphics::Engine; 不包括任何图形引擎标头。

如果您事先声明名称空间,则可以:

namespace Graphics {
    namespace Engine {}
}
namespace GE = Graphics::Engine;

由于名称空间在声明后是打开的,只需...预先声明它们:

namespace Graphics{ namespace Engine{} }
namespace GE = Graphics::Engine;

我会建议反对它。 它可以完成并且很简单,但是您实际上正在做的是强制您在标头的所有用户上选择别名。

假设您使用此技术构建组件并且通用电气购买软件,突然他们得到名称空间的任意冲突。 你没有特别的原因造成冲突。 选择一个易于使用且尽可能唯一的命名空间方案,然后按照它进行操作。 添加快捷方式只会使代码复杂化( GE::typeGraphics::Engine::type之间有什么区别?)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM