谁能给我提示一下这个错误:
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管理的原始指针。