最終更新日時:
が更新

履歴 編集

function
<memory>

std::enable_shared_from_this::shared_from_this(C++11)

shared_ptr<T> shared_from_this();
shared_ptr<const T> shared_from_this() const;

概要

thisポインタをshared_ptrに変換する。

要件

*thisのインスタンスがshared_ptrオブジェクトとして共有されていること。

戻り値

thisポインタを、enable_shared_from_thisの派生クラス型Tshared_ptrオブジェクトとして構築して返す。

#include <cassert>
#include <memory>

struct X : public std::enable_shared_from_this<X> {
  std::shared_ptr<X> f()
  {
    // thisを指すshared_ptrオブジェクトを作る
    return shared_from_this();
  }
};

int main()
{
  std::shared_ptr<X> p(new X());
  std::shared_ptr<X> q = p->f();

  assert(p == q);
}

出力

バージョン

言語

  • C++11

処理系