有人可以给我提示此错误的提示:
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/