Alias Template

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;
posted @ 2020-11-20 15:46  Codroc  阅读(151)  评论(0编辑  收藏  举报