我想在我的头文件中引用一个类,它位于一长串嵌套命名空间中:MySpaceA::MySpaceB::MySpaceC::MySpaceD::MyVeryLongNamedClass
。我想以不同的名称使用它,但不是 MyVeryLongNamedClass
- 更短且更有用的名称,例如 MyClass
。
我可以将 using MySpaceA::MySpaceB::MySpaceC::MySpaceD
放在标题中,但我不想导入整个命名空间。我宁愿有一些类似的结构
使用 MyClass = MySpaceA::MySpaceB::MySpaceC::MySpaceD::MyVeryLongNamedClass
我知道这对于命名空间是可行的,但我似乎无法让它与类一起工作。
非常感谢您的帮助。
最佳答案
typedef MySpaceA::MySpaceB::MySpaceC::MySpaceD::MyVeryLongNamedClass MyClass;
对于模板,您可以使用 template typedef :
template <typename T>
struct MyClass {
typedef MySpaceA::MySpaceB::MySpaceC::MySpaceD::MyVeryLongNamedClass<T> type;
};
现在可以引用MyClass<T>::type
而不是 MySpaceA::MySpaceB::MySpaceC::MySpaceD::MyVeryLongNamedClass<T>
.
关于c++ - 在 C++ 中重命名一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5980919/