概要
this
ポインタをweak_ptr
に変換する。
要件
*this
のインスタンスがshared_ptr
オブジェクトとして共有されていること。
戻り値
this
ポインタを指すweak_ptr
オブジェクトを返す。
例
#include <cassert>
#include <memory>
struct X : public std::enable_shared_from_this<X> {
std::weak_ptr<X> f()
{
// thisを指すweak_ptrオブジェクトを作る
return weak_from_this();
}
};
int main()
{
std::shared_ptr<X> p(new X());
std::weak_ptr<X> q = p->f();
assert(p == q.lock());
}
出力
バージョン
言語
- C++17
処理系
- GCC: 7.3 ✅
- Clang: 3.9 ✅
- Visual C++: ??