:実装()
をオブジェクトにアクセスするには、のweak_ptrはshared_ptrのコンストラクタまたはメンバ関数ロックを使用してのshared_ptrに変換することができます。
ここでも、ブーストから:私の知る限り、1の参照カウントを持つ新しいのshared_ptrを作成shared_ptr<T>(*this)
手段を返す理解し
shared_ptr<T> lock() const;
//Returns: expired()? shared_ptr<T>(): shared_ptr<T>(*this).
。これは間違いなく私たちが望むものではありません。だからおそらく私はそれを正しく理解していないでしょう。誰かが説明しますか?ありがとう!
ただし、 "Return:"行に示されているコードはスレッドセーフではありません。私はそれが今実際どのように実装されているのかを推測しています(私は標準ノートのコピーを「原子的に実行する」)。 –
これはのconstのweak_ptr 'テンプレート明示的なshared_ptrのは(& r);'と呼ばれていることを? –
Sanich
はい、技術的に元のshared_ptrインスタンスがweak_ptrを介してアクセスされていますが、まだ()というを言及するの答えを更新を意味します。 – axalis