Type/value class 模板的模板参数列表不匹配

Type/value mismatch at in template parameter list for class template

我有这个class:

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

和这个子class:

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

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

type/value mismatch at argument 2 in template parameter list for ‘template class Container> class Foo’

我也试过了

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

没有成功。怎么了?我找不到解决此问题的 SO 问题。

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

例如你可以这样解决

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


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