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
処理系
- Clang: ??
- GCC: ??
- Visual C++: ??