オブジェクトがオブジェクトの存続時間を気にする単一の親を持つ場合は、合成を使用します。同じ状況ではunique_ptr
を使用しますが、オブジェクトはnullptr
になります。タイプ「最短」のライフタイムを管理するにはどうすればよいですか?
複数の外部エンティティにオブジェクトが必要な場合は、shared_ptr
を使用します。そのため、その外部エンティティの最後に興味がなくなるまで、その有効期間が延長されます。
ここで私は別の生涯の状況について質問したいと思います。 オブジェクトを生存させる必要がある場合は、最短での期間を使用しますか?
ここは例です。ファンクタを保存し、カウントが完了した後に実行するワンショットタイマを用意しましょう。現在
1. fulfilling its task - therefore it should be able to destroy istelf
or
2. the parent loosing interest in the timer - so the parent should be able to
destroy the object as well
、私はユニークなポインタと厄介な実装を使用して:それは、このタイマーオブジェクトが後に破棄されていること、*私には意味があります。この問題の良いパターン/ガイドライン/実装は何でしょうか?
*の理由:1)ファンクターは、いくつかの他のリソース 2)タイマーは非常に大きな数に設定して、親が破棄された場合、私たちは一般に「ドン) 3放棄されている可能性を所有することができそのコールバックを呼び出すt
これは、ネットワーク要求に応答して何かを計算するとスレッドキャンセルとよく似ていますが、接続が突然終了しました。コンピューティングを完了しても破損は発生しませんが、リソースの無駄です。 – curiousguy