C++1z shared_ptr::weak_type
C++1zから、shared_ptr
の入れ子型としてweak_type
が追加されます。
これは、shared_ptr<T>
に対するweak_ptr<T>
型の別名です。
shared_ptr
の要素型を取り出してweak_ptr
のテンプレート引数を埋めることが冗長なコードになっていたための対処です。
shared_ptr<T> sptr = …; // shared_ptrをweak_ptrに変換してラムダ式に渡す auto f = [wptr = typename decltype(sptr)::weak_type(sptr)] { // この関数が呼ばれたときには、wptrが指す先のオブジェクトが死んでいる可能性がある if (wptr.lock()) { … } }
参照
お断り
この記事の内容は、C++1zが正式リリースされる際には変更される可能性があります。正式リリース後には、C++日本語リファレンスサイトcpprefjpの以下の階層の下に解説ページを用意する予定です。