最終更新日時:
が更新

履歴 編集

function
<hazard_pointer>

std::hazard_pointer::reset_protection(C++26)

template <class T>
void reset_protection(const T* ptr) noexcept;      // (1) C++26
void reset_protection(nullptr_t = nullptr) noexcept; // (2) C++26

概要

  • (1): このハザードポインタが保護する対象を*ptrに変更する(現在の保護期間を終了する)。
  • (2): このハザードポインタの保護を解除し、非関連 (unassociated) 状態にする。

テンプレートパラメータ制約

  • (1): Tはハザードポインタで保護可能 (hazard-protectable) な型であること。

事前条件

  • (1), (2): *thisが空でないこと。

効果

  • (1): ptrがヌルポインタ値の場合、(2)のreset_protection()を呼び出す。そうでない場合、このハザードポインタを*ptrに関連付け、それまでの保護期間を終了する。
  • (2): (効果は事後条件で規定される。)

事後条件

  • (2): *thisが所有するハザードポインタは非関連状態となる。

戻り値

なし

計算量

定数時間

例外

投げない

バージョン

言語

  • C++26

処理系

関連項目

参照