我有这堂课:
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问题。
答案 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>
{
};