私は手動で参照カウントの構造体を大量に使用するC++に移植しているCライブラリを持っています。私はshared_ptr
を使って参照カウントを自動的に処理することを考えましたが、私はC APIを維持したいと思っています。Cインタフェースでshared_ptrを使用していますか?
Object* object_create(void);
Object* object_retain(Object* o);
void object_release(Object* o);
私はshared_ptr
を使用する場合は、効果的にCのAPIで、このマニュアルの参照カウントを公開する方法があります:古い署名はこのような何かを見て?
shared_ptrが 'object_create'から得られた生ポインタをラップし、関連する時刻に' object_release'を呼び出させたいのですか? –
@OliCharlesworthいいえ、私は 'Object'をC++の(構造体の代わりに)クラスとして再インプリメントしています。私はC++コード内で' shared_ptr'を使っています。私はそれがshared_ptrから生のポインタを取得することが可能で、それでも何とかしてもshared_ptrのrefcountで動作するようにしたい場合は興味があります。 –
[Boost.intrusive_ptr](http://www.boost.org/doc/libs/1_53_0/libs/smart_ptr/intrusive_ptr.html)を使用する方が良いかもしれません。 – Angew