类模板的模板参数列表中的类型/值不匹配

时间:2017-06-12 19:24:17

标签: c++ templates subclass

我有这堂课:

template<typename Bar, template<typename Bar> class Container>
class Foo
{
    Container<Bar> myContainerBar;
};

和这个子类:

class FooSpecialization : public Foo<std::string,std::vector>
{
};

我在上面第二个代码片段的第一行(在子类中)收到以下错误:

  

模板参数列表中参数2的类型/值不匹配   '模板类容器&gt; Foo'

我也试过

class FooSpecialization : public Foo<std::string,std::vector<std::string>>

没有成功。怎么了?我无法找到解决这个问题的SO问题。

1 个答案:

答案 0 :(得分:5)

std::vector有多个模板参数(Allocator)。

您可以通过这种方式解决它,例如

template<typename Bar, template<typename ...> class Container>
class Foo
{
    Container<Bar> myContainerBar;
};


class FooSpecialization : public Foo<std::string, std::vector>
{
};