Namensräume
Varianten
Aktionen

std::weak_ptr<T>::owner_equal

Von cppreference.com
< cpp‎ | memory‎ | weak ptr
 
 
Speicherverwaltungsbibliothek
(nur Exposition*)
Algorithmen für uninitialisierten Speicher
(C++17)
(C++17)
(C++17)
Beschränkte uninitialisierte
Speicher-Algorithmen
C-Bibliothek

Allocatoren
Speicherressourcen
Unterstützung für Garbage Collection
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
Uninitialisierter Speicher
Explizites Lebenszeitmanagement
 
 
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

[Bearbeiten] Siehe auch

ermöglicht gemischttypige, besitzerbasierte Gleichheitsvergleiche von Shared- und Weak-Zeigern
(Klasse) [edit]