テンプレートテンプレートパラメータの特殊化

template template total specialization - Stack Overflow


使う機会はあまりないでしょうけど。

#include <vector>
#include <list>

template <template <class...> class Container>
struct X {
    Container<int> c;
};

template <>
struct X<std::vector> {
    std::vector<std::string> c;
};

int main()
{
    X<std::list> ls;
    ls.c.push_back(3);

    X<std::vector> v;
    v.c.push_back("hello");
}