别名模板
Version >= C++ 11
基本示例:
template<typename T> using pointer = T*;
这个定义使得 pointer<T>
成为 T*
的别名。例如:
pointer<int> p = new int; // equivalent to: int* p = new int;
别名模板不能专门化。但是,可以通过让它们引用结构中的嵌套类型来间接获得该功能:
template<typename T>
struct nonconst_pointer_helper { typedef T* type; };
template<typename T>
struct nonconst_pointer_helper<T const> { typedef T* type; };
template<typename T> using nonconst_pointer = nonconst_pointer_helper<T>::type;