QCache 和 std::shared_ptr

QCache and std::shared_ptr

谁能给我提示这个错误:

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,由于我的猜测是正确的,我将 post 它作为答案(希望得到支持!)。

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