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

efi*_*fie 1 c++ templates subclass

我有这门课:

template<typename Bar, template<typename Bar> class Container>
class Foo
{
    Container<Bar> myContainerBar;
};
Run Code Online (Sandbox Code Playgroud)

而这个子类:

class FooSpecialization : public Foo<std::string,std::vector>
{
};
Run Code Online (Sandbox Code Playgroud)

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

模板参数列表中参数2的类型/值不匹配'模板类Container>类Foo'

我也试过了

class FooSpecialization : public Foo<std::string,std::vector<std::string>>
Run Code Online (Sandbox Code Playgroud)

没有成功.怎么了?我找不到解决这个问题的SO问题.

Jar*_*d42 5

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

例如,你可以用这种方式解决它

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


class FooSpecialization : public Foo<std::string, std::vector>
{
};
Run Code Online (Sandbox Code Playgroud)