Alias(化名) Tempalte (template typedef)
template <typename T>
using Vec = std::vector<T, MyAlloc<T>>;
the term
vec<int> coll;
is equivalent to
std::vector<int, MyAlloc<int>> coll;
template template parameter
说的简单点就是:模板参数本身也是个模板
template<typename T,
template <class>
class Container // 这个模板参数 class Container 本身也是个模板
>
class XC1s{
private:
Container<T> c;
public:
XC1s() {
for(long i=0;i < SIZE;++i)
c.insert(c.end(), T());
output_static_data(T());
Container<T> c1(c);
Container<T> c2(std::move(c));
c1.swap(c2);
}
};
// template template parameter + alias template
template<typename T>
using vec = vector<T, MyAlloc<T>>;
XC1s<MyString, vec> c1;