[英]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::type
和Graphics::Engine::type
之间有什么区别?)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.