Skip to main content

C++11 模板别名

using=

对于冗长或复杂的标识符,C++提供了 typedef 来创建别名

typedef std::vector<std::string>::iterator itType;

但是typedef不能用于模板,C++11提供了另一种创建别名的关键字 using

using itType = std::vector<std::string>::iterator;

using 用于模板部分具体化

对于如下声明

std::array<double, 12> a1;
std::array<std::string, 12> a2;

可使用 using 具体化模板 array<T, int> —— 将int参数设置为12

template<typename T>
using arr12 = std::array<T, 12>; // array 别名
arr12<double> a1;
arr12<std::string> a2;