template using typedef¶
给类取别名
template <typename T>
void Test(T a) {
typedef typename T::list Self;
using Self1 = typename T::list;
Self b;
Self1 c;
std::cout << a << b << std::endl;
}
- using
c++中using
关键字有两个作用:声明命名空间、给类型区别名 - typedef
跟 using 用法一样,在 C++11 中,鼓励用 using ,而不用 typedef。
原因:using 的写法把别名和名称强制分离,中间用 = 号等起来,非常清晰。