"非专业化的类模板不能用作模板参数"是什么意思?

Chr*_*ndy 7 c++ inheritance templates

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

template <class Type>
class AbstractRManagers : public Singleton<AbstractRManagers>
{
Run Code Online (Sandbox Code Playgroud)

错误C3203:'AbstractRManagers':非专用类模板不能用作模板参数'Type'的模板参数,期望是真实类型

Jer*_*fin 14

AbstractRManagers命名一个模板,它不是一个类型 - 它必须有一个模板参数给成为一个类型.至少如果我理解你想要的东西,你可能需要这样的东西:

template <class Type>
class AbstractRManagers : public Singleton<AbstractRManagers<Type> >
Run Code Online (Sandbox Code Playgroud)

...开始看起来像CRTP一样可疑.

然后是强制性的说明:在这里(或几乎在任何地方)你真的不需要或想要一个单身人士的机会非常好.


Nav*_*een 5

它应该public Singleton<AbstractRManagers<Type> >像AbstractRManagers模板一样,您需要提供具体的类型来实例化它。