繁体   English   中英

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

[英]What does “unspecialized class template can't be used as a template argument” mean?

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

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

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

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

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

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

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

它应该是public Singleton<AbstractRManagers<Type> >因为AbstractRManagers是一个模板,您需要提供具体类型来实例化它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM