std::shared_ptr<T>::owner_equal
| template< class Y > bool owner_equal( const std::shared_ptr<Y>& other ) const noexcept; |
(1) | (seit C++26) |
| template< class Y > bool owner_equal( const std::weak_ptr<Y>& other ) const noexcept; |
(2) | (seit C++26) |
Prüft, ob dieser shared_ptr und other den Besitz teilen oder beide leer sind. Der Vergleich ist so gestaltet, dass zwei intelligente Zeiger nur dann als äquivalent verglichen werden, 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 Memberfunktion 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- und Weak-Zeiger als Schlüssel in ungeordneten assoziativen Containern verwendbar 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::shared_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) |