c++ - "unspecialized class template can' t be used as a template argument”是什么意思?

标签 c++ templates inheritance

我有一个名为 AbstractRManagers 的类,我想从一个单例模板类 Singleton 继承,但是 abstractRmanager 需要成为一个模板类我遇到了一些没有用的奇怪错误代码,我已经尝试查找它但是没运气。

template <class Type>
class AbstractRManagers : public Singleton<AbstractRManagers>
{

error C3203: 'AbstractRManagers' : unspecialized class template can't be used as a template argument for template parameter 'Type', expected a real type

最佳答案

AbstractRManagers 命名一个模板,它不是一个类型——它必须有一个模板参数才能成为一个类型。至少如果我明白你想要什么,你可能需要这样的东西:

template <class Type>
class AbstractRManagers : public Singleton<AbstractRManagers<Type> >

...开始看起来很像 CRTP。

然后必须注意:很有可能您在这里(或几乎任何地方)都不需要或不想要单例。

关于c++ - "unspecialized class template can' t be used as a template argument”是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9528297/

相关文章:

java - super.clone() 操作在派生类中不起作用

c++ - 在 C++ 中定义模板类的默认实现

c++ - gcc 中 Unresolved 重载函数类型

c - C 头文件和源文件的标准结构

具有不同参数的 C++ 运算符重载模板

c++ - C++ 中是否有两种类型的成员初始值设定项列表?

c# - 扩展 ArrayList 和实现 IEnumerable - 有更好的方法吗?

c++ - 使用 boost::is_any_of 的多个拆分 token

c++ - 使用光流 PyrLK 根据 haar 检测结果跟踪多个对象

c++ - 如何在字符串的单次传递中删除非字母字符并将字母字符小写?