c++ - 在 C++ 中重命名一个类

标签 c++ namespaces reference rename using

我想在我的头文件中引用一个类,它位于一长串嵌套命名空间中: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/

相关文章:

C++ freopen 2个文件错误

XML 命名空间,为什么前缀需要它们?

c++ - C3681 标识符未找到

c++ - 对C++中函数的 undefined reference

c++ - 使用 MPFR 将 float 转换为字符串

c++ - std::map 使用 std::vector 初始化

django - 在 Django : multiple instances of the same app 中反转命名空间 URL

php - 如何对php类进行分组?

c++ - 引用 void* 的隐式类型转换

C++ CppCheck 算法建议(std::find_if 而不是原始循环)相关性