【问题标题】:Type/value mismatch at in template parameter list for class template [duplicate]类模板的模板参数列表中的类型/值不匹配 [重复]
【发布时间】:2017-06-12 19:24:16
【问题描述】:

我有这门课:

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

还有这个子类:

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

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

模板参数列表中参数 2 的类型/值不匹配 ‘模板类容器>类Foo’

我也试过

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

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

【问题讨论】:

  • std::vector 有多个模板参数。
  • 顺便说一句,FooSpecialization 不是专业。

标签: c++ templates subclass


【解决方案1】:

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

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

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


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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    • 2018-04-04
    相关资源
    最近更新 更多