最終更新日時:
が更新

履歴 編集

function
<memory>

std::weak_ptr::expired(C++11)

bool expired() const noexcept;

概要

監視しているshared_ptrオブジェクトの寿命・リンクが切れたかを判定する。

戻り値

備考

この関数は、実際にはuse_count() == 0で判定するよりも、高速に実装される可能性がある。

#include <cassert>
#include <memory>

int main()
{
  std::weak_ptr<int> wp;

  // 監視対象とリンクしていない
  assert(wp.expired());

  {
    std::shared_ptr<int> sp(new int(3));

    // shared_ptrオブジェクトspを監視する
    wp = sp;

    // shared_ptrオブジェクトの寿命は切れていない
    assert(!wp.expired());
  }

  // shared_ptrオブジェクトの寿命が切れた
  assert(wp.expired());
}

出力

バージョン

言語

  • C++11

処理系