能否在c++中向前声明一个命名空间别名?
Can you forward-declare a namespace alias in C++?
我想在共享头文件中设置一些通用别名,这样各个头文件就不必单独声明了。但是我不想在这个共享头文件中包含目标名称空间的头文件,只声明别名。这可能吗?
e。g我想要namespace GE = Graphics::Engine;
不包括任何图形引擎头。
如果您事先声明了名称空间,则可以:
namespace Graphics {
namespace Engine {}
}
namespace GE = Graphics::Engine;
由于名称空间在声明后是开放的,因此只需…预先声明:
namespace Graphics{ namespace Engine{} }
namespace GE = Graphics::Engine;
我不建议这样做。这是可以做到的,而且很简单,但是您实际上在做的是将您选择的别名强加给标题的所有用户。
假设您使用这种技术构建了一个组件,而通用电气(General Electric)购买了该软件,突然他们就会遇到任意的名称空间冲突。你毫无缘由地制造了一场冲突。选择一个易于使用且尽可能唯一的名称空间方案,然后遵循它。添加快捷方式只会使代码变得复杂(GE::type
和Graphics::Engine::type
之间有什么区别?)
相关文章:
- '使用命名空间{嵌套在另一个命名空间中的某个命名空间}"
- 使用另一个命名空间中的函数C++
- 在模板参数的函数中使用一个命名空间或另一个命名空间
- C++另一个命名空间中函数的 ADL
- 如何在另一个名称空间内从另一个命名空间内明确专业化功能模板
- 我可以在标头中将一个命名空间"import"到另一个命名空间中吗?
- 是否可以将一个命名空间类 #include 到另一个命名空间中
- 从另一个命名空间访问标准命名空间数据成员
- 另一个命名空间和 CRTP 中的模板友元函数
- 依赖于参数的查找在来自另一个命名空间的别名类型上意外行为
- 从另一个命名空间中C++全局命名空间访问
- 如何在另一个命名空间中使用常量定义的外部
- 一个命名空间是否可以是另一个命名空间的成员
- 如何定义来自另一个命名空间(而不是全局命名空间)的函数和数据
- 一个命名空间有多个别名
- 无法从另一个命名空间创建类的实例
- 在数组中存储来自另一个命名空间的枚举值
- 是一个命名空间,与c++中的作用域相同
- 如何访问在另一个命名空间中作为模板类成员呈现的enum
- 为什么我们在Qt中处理表单时要为ui对象声明一个命名空间?