我有一个要在头文件中引用的类,该头文件位于一连串的嵌套 namespace 中:MySpaceA::MySpaceB::MySpaceC::MySpaceD::MyVeryLongNamedClass
。我想以其他名称使用它,但不使用MyVeryLongNamedClass
-简短而有用的名称,例如MyClass
。
我可以将using MySpaceA::MySpaceB::MySpaceC::MySpaceD
放在标题中,但是我不想导入整个 namespace 。我更喜欢某种建筑using MyClass = MySpaceA::MySpaceB::MySpaceC::MySpaceD::MyVeryLongNamedClass
我知道使用 namespace 是可行的,但是我似乎无法使其与类一起使用。
非常感谢您的帮助。
最佳答案
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/