Skip to content

Latest commit

 

History

History
74 lines (55 loc) · 1.43 KB

File metadata and controls

74 lines (55 loc) · 1.43 KB

expired

  • memory[meta header]
  • std[meta namespace]
  • weak_ptr[meta class]
  • function[meta id-type]
  • cpp11[meta cpp]
bool
  expired() const noexcept; // (1) C++11
constexpr bool
  expired() const noexcept; // (1) C++26

概要

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

戻り値

use_count() == 0
  • use_count()[link use_count.md]

備考

この関数は、実際には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());
}
  • expired()[color ff0000]

出力

バージョン

言語

  • C++11

処理系

参照