私は参照カウントによって管理される(ACE_Event_Handlerから派生した)正確なレガシークラスを持っています。shared_ptrとカスタム参照カウントを同時に使用するには?
自分のコードでstd :: shared_ptrを使用して管理できるようにしたいが、古いレガシーリファレンスカウントを維持する(shared_ptrを受け入れないサードパーティのライブラリがクラスのオブジェクトにアクセスする必要がある - ACE、正確には)。
参照カウントが0になり、それを管理しているすべてのshared_ptrインスタンスが破棄されると、オブジェクトを削除する必要があります。
私は1つの考え方しか持っていません。shared_ptrのインスタンスは、参照カウントが0になるまでオブジェクトをポイントしてからリセットしてください。どういうわけか、これは汚い感じ。より良い方法がありますか?
ACE参照カウントの増分と減分を処理するスマートポインタを作成して使用してみませんか?十分に簡単です。 –
私はstd :: shared_ptrを使いたいと思います。 – Gbr
['boost :: intrusive_ptr'](http://www.boost.org/doc/libs/1_63_0/libs/smart_ptr/intrusive_ptr.html)のようなものは、' std :: shared_ptr'よりも適しているようです。 boostがオプションでない場合、あなた自身の 'instrusive_ptr'のようなクラスをローリングすることはおそらくあなたの唯一のオプションです。 –