模板模板参数中的参数无效

时间:2014-02-14 16:46:26

标签: c++ templates

我正在尝试这个简单的template template parameter示例:

template <typename T, template <typename> class Cont>
class Stack {
    //...
  private:
    Cont<T> s_;
};



int main(){
    Stack<int,std::vector> aStack1;

}

当我尝试编译编译器时,抱怨:error type mismatch at argument 2 in template parameter list...

我的编译器版本中是否有错误或问题可能?我在Windows上使用带有Mingw的g ++

1 个答案:

答案 0 :(得分:5)

这是因为尽管有默认参数,std :: vector有 2 模板参数(template < class T, class Alloc = allocator<T> >)。以下代码可以正常工作:

#include <vector>

template <typename T, template <typename> class Cont>
class Stack {
    //...
  private:
    Cont<T> s_;
};

template <typename T>
using my_vector = std::vector<T>;


int main(){
    Stack<int,my_vector> aStack1;

}