有一个头文件声明了名称空间long::name::space::name
我还希望在这个类的全局命名空间中专门化一些模板,即
template<typename T>
class GlobalClass<NSClass<T>> {
}
...
每次编写命名空间名称都很烦人,所以我想使用某种using指令,但将此名称推送到全局命名空间并不是一个好主意吗?
有没有办法做些什么来缩短输入,但不能向全局命名空间添加任何内容?
我知道一个解决方案,但它很难看:
#define NS long::name::space::name
//use NS here
#undef NS
答案 0 :(得分:1)
您可以为名称空间提供短别名(请记住,long
是C ++中的关键字):
namespace SN = longy::name::space::name;
// ...
SN::my_class obj; // Resolves into longy::name::space::name::my_class