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问题.
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)