我有一个要在头文件中引用的类,该头文件位于一连串的嵌套 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/

10-11 17:53