在头文件中使用指令应该只影响这个文件

Using directive in header that should affect only this file

本文关键字:文件 影响 指令      更新时间:2023-10-16

在命名空间long::name::space::name中有一个声明类的头文件

我还想在全局命名空间中为这些类专门化一些模板,即

template<typename T>
class GlobalClass<NSClass<T>> {
}
...

每次写命名空间名称都很烦人,所以我想使用某种使用指令,但把这个名字推到全局命名空间不是好主意?

是否有办法使输入更短,但不添加任何到全局命名空间?

我知道一个解决方案,但是它很难看:

#define NS long::name::space::name
//use NS here
#undef NS

您可以为名称空间提供简短的别名(请记住,long是c++中的关键字):

namespace SN = longy::name::space::name;
// ...
SN::my_class obj; // Resolves into longy::name::space::name::my_class