Standardbibliothek-Header <hazard_pointer> (C++26)
Von cppreference.com
Dieser Header ist Teil der Thread-Unterstützungs-Bibliothek.
Klassen | ||
| (C++26) |
ermöglicht es einem Objekt, gefährdungsgeschützt zu sein (Klassenvorlage) | |
| (C++26) |
Ein Single-Writer-Multi-Reader-Zeiger, der zu jedem Zeitpunkt nur von einem Thread besessen werden kann (Klasse) | |
Funktionen | ||
| (C++26) |
konstruiert einen Gefährdungszeiger (Funktion) | |
| spezialisiert den Algorithmus std::swap (Funktionsvorlage) | ||
[bearbeiten] Synopsis
namespace std { // hazard_pointer_obj_base template<class T, class D = default_delete<T>> class hazard_pointer_obj_base; // hazard_pointer class hazard_pointer; // make_hazard_pointer hazard_pointer make_hazard_pointer(); void swap(hazard_pointer&, hazard_pointer&) noexcept; }
[bearbeiten] Klassenvorlage std::hazard_pointer_obj_base
namespace std { template<class T, class D = default_delete<T>> class hazard_pointer_obj_base { public: void retire(D d = D()) noexcept; protected: hazard_pointer_obj_base() = default; hazard_pointer_obj_base(const hazard_pointer_obj_base&) = default; hazard_pointer_obj_base(hazard_pointer_obj_base&&) = default; hazard_pointer_obj_base& operator=(const hazard_pointer_obj_base&) = default; hazard_pointer_obj_base& operator=(hazard_pointer_obj_base&&) = default; ~hazard_pointer_obj_base() = default; private: D deleter; // exposition only }; }
[bearbeiten] Klasse std::hazard_pointer
namespace std { class hazard_pointer { public: hazard_pointer() noexcept; hazard_pointer(hazard_pointer&&) noexcept; hazard_pointer& operator=(hazard_pointer&&) noexcept; ~hazard_pointer(); bool empty() const noexcept; template<class T> T* protect(const atomic<T*>& src) noexcept; template<class T> bool try_protect(T*& ptr, const atomic<T*>& src) noexcept; template<class T> void reset_protection(const T* ptr) noexcept; void reset_protection(nullptr_t = nullptr) noexcept; void swap(hazard_pointer&) noexcept; }; }