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