boost::intrusive_ptr
が必要intrusive_ptr_add_ref
でありintrusive_ptr_release
、定義する必要があります。これを行う基本クラスが提供されないのはなぜですか?ここに例があります:http://lists.boost.org/Archives/boost/2004/06/66957.phpですが、ポスターには「これが必ずしも良い考えだとは思わない」と書かれています。なぜだめですか?
更新:このクラスが多重継承で誤用される可能性があるという事実は十分な理由ではないと思います。独自の参照カウントを持つ複数の基本クラスから派生するクラスでも、同じ問題が発生します。これらのrefcountが基本クラスを介して実装されているかどうかは、違いはありません。
マルチスレッドに問題はないと思います。boost::shared_ptr
アトミック参照カウントを提供し、このクラスも可能です。