有人可以给我提示此错误的提示:

no viable conversion from 'std::shared_ptr<Foo>' to 'std::__1::shared_ptr<Foo> *'


QCache看起来像这样:

QCache<int, std::shared_ptr<Foo>> cache;


我尝试插入这样的元素:

std::shared_ptr<Foo> foo;
cache.insert(23, foo);


谢谢你的帮助。

最佳答案

只是研究了QCache API,由于我的猜测是正确的,因此我将其发布为答案(希望得到投票!)。

insert()的签名为bool QCache::insert(const Key & key, T * object, int cost = 1)。此外,API提到了从那时起QCache拥有指针的事实,因此您根本不需要shared_ptr。相反,您应该插入将由QCache管理的原始指针。

关于c++ - QCache和std::shared_ptr,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33157910/

10-11 00:32