我一直在尝试让这段代码正常工作,但我一直在收到错误
模板类型参数的模板参数必须是一个类型;你忘了' typename'?
template <typename T>
class Templated_Class {
std::unique_ptr<
folly::NotificationQueue<T>::Consumer,
folly::DelayedDestruction::Destructor>
xyz;
};
根据我的阅读Hue-6144,如果成员模板专业化的名称出现在。, - &gt;或::运算符之后,并且该名称具有明确限定的模板参数,则为成员添加前缀模板名称和关键字模板。
我试图遵循这个建议,但这个错误并没有消失。 我究竟做错了什么 ?请注意,我是现代c ++的新手,c ++的学习曲线并不是最容易解决的问题。
答案 0 :(得分:0)
如果没有完整的代码,就无法做出明确的答案,但是,看看你所期望的改变:
folly::NotificationQueue<T>::Consumer,
为:
typename folly::template NotificationQueue<T>::Consumer,
是你想要开始寻找的地方。 typename folly :: DelayedDestruction :: Destructor&gt;