1

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

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

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

}
...

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

有没有办法做一些事情来缩短打字时间,但不向全局命名空间添加任何东西?

我知道一种解决方案,但它非常难看:

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

1 回答 1

1

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

namespace SN = longy::name::space::name;

// ...

SN::my_class obj; // Resolves into longy::name::space::name::my_class
于 2013-04-07T23:02:29.310 回答