別名模板
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;