3

これを C で行うことは別として (今さら戻るには遅すぎる)、C の参照カウントをサポートする構造体と関数をいくつか作成しました。基本的に、C++ スタイルのスマート ポインターを実装しました。ただし、私の大きな問題は、これらをグラフ (頂点とエッジを持つ種類) で使用していて、グラフでスマート ポインターが使用されていることです。したがって、別のノードに接続されたエッジに接続されたノードがあり、それらへのポインターがそれ以上ない場合、それらはそれぞれ相互へのポインターを保持します。したがって、ポインターのカウントは 0 にヒットせず、解放されることはありません。ポインターのカウントを完全に放棄せずにこの問題を解決する方法はありますか?

4

1 に答える 1

0

shared_ptr のサイクルを中断するために boost::weak_ptr がどのように実装されているかを調べる必要があります。

于 2013-05-11T23:30:41.710 に答える