std::weak_ptr<T>::owner_equal
| template< class Y > bool owner_equal( const std::weak_ptr<Y>& other ) const noexcept; |
(1) | (seit C++26) |
| template< class Y > bool owner_equal( const std::shared_ptr<Y>& other ) const noexcept; |
(2) | (seit C++26) |
Prüft, ob dieser weak_ptr und other den Besitz teilen oder beide leer sind. Der Vergleich ist so gestaltet, dass zwei intelligente Zeiger nur dann als äquivalent gelten, wenn sie entweder beide leer sind oder wenn sie beide dasselbe Objekt besitzen, auch wenn die Werte der Zeiger, die durch get() erhalten werden, unterschiedlich sind (z. B. weil sie auf verschiedene Unterobjekte innerhalb desselben Objekts zeigen).
Die Member-Funktion owner_equal ist eine Äquivalenzrelation, so dass !owner_before(other) && !other.owner_before(*this) genau dann true ist, wenn owner_equal(other) true ist.
Diese Ordnung wird verwendet, um shared_ptr und weak_ptr als Schlüssel in ungeordneten assoziativen Containern nutzbar zu machen, typischerweise über std::owner_equal.
Inhalt |
[Bearbeiten] Parameter
| Sonstiges | - | der zu vergleichende std::shared_ptr oder std::weak_ptr |
[Bearbeiten] Rückgabewert
true, wenn *this und other den Besitz teilen oder beide leer sind. Andernfalls wird false zurückgegeben.
[Bearbeiten] Hinweise
| Feature-Test-Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_smart_ptr_owner_equality |
202306L |
(C++26) | Ermöglicht die Verwendung von std::weak_ptr als Schlüssel in ungeordneten assoziativen Containern |
[Bearbeiten] Beispiel
| Dieser Abschnitt ist unvollständig Reason: example |
[Bearbeiten] Siehe auch
| (C++26) |
ermöglicht gemischttypige, besitzerbasierte Gleichheitsvergleiche von Shared- und Weak-Zeigern (Klasse) |