我的程序将创建和删除很多对象(来自 REST API)。这些对象将被多个地方引用。我想要一个“内存缓存”并通过引用计数来管理对象的生命周期,以便在不再使用它们时可以释放它们。
所有对象都继承自一个基类Ressource
。
主要Cache
是一个std::map<_key_, std::shared_ptr<Ressource> >
然后我很困惑,怎么Cache
知道Ressource
引用计数何时减少?IE。调用std::shared_ptr destructor
or operator=
。
1/ 我不想遍历 std::map 并检查每个 ref.count()。
2/ 我可以重用 std::shared_ptr 并实现自定义钩子吗?
class RessourcePtr : public std::shared_ptr<Ressource>
...
3/ 我应该实现自己的引用计数类吗?前任。https://stackoverflow.com/a/4910158/1058117
谢谢!