Skip to content

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 的写法把别名和名称强制分离,中间用 = 号等起来,非常清晰。
using namespace std;
using 别名 = 原先类型