私はboost::weak_ptrを使用してオブジェクトのプールを実装し、誰もオブジェクトの1つを使用していないときにそれらが刈り取られるようにすることを考えています。ただし、私の懸念は、これがマルチスレッド環境であり、スコープ外のオブジェクトに対する最後のshared_ptrと、weak_ptrから構築されている新しいshared_ptrとの間に競合状態があるようです。通常、このような操作はロックなどで保護します。ただし、ここで重要なのは、shared_ptrがいつスコープ外になるかわからないということです。
boost::shared_ptrとboost::weak_ptrについて何か誤解していますか?そうでない場合、誰かが何をすべきかについて何か良い提案がありますか?
ありがとう。
アンドリュー