私のプログラムは(REST APIから)多くのオブジェクトを作成および削除します。これらのオブジェクトは、複数の場所から参照されます。「メモリキャッシュ」を用意し、参照カウントを使用してオブジェクトの存続期間を管理して、オブジェクトが使用されなくなったときに解放できるようにしたいと考えています。
すべてのオブジェクトは基本クラスから継承しますRessource
。
ほとんどCache
がstd::map<_key_, std::shared_ptr<Ressource> >
それから私は困惑しています、 refカウントがCache
いつデクリメントされるかをどうやって知ることができますか?Ressource
すなわち。std::shared_ptr destructor
またはへの呼び出しoperator=
。
1 / std :: mapを繰り返し処理して、各ref.count()を確認したくありません。
2 / std :: shared_ptrを再利用して、カスタムフックを実装できますか?
class RessourcePtr : public std::shared_ptr<Ressource>
...
3 /独自のrefcountクラスを実装する必要がありますか?元。https://stackoverflow.com/a/4910158/1058117
ありがとう!