Namespaces
Variants

std::weak_ptr<T>:: owner_equal

From cppreference.net

Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
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 gemeinsamen Besitz teilen oder beide leer sind. Der Vergleich erfolgt so, dass zwei Smart Pointer nur dann als äquivalent betrachtet werden, wenn sie beide leer sind oder wenn sie beide dasselbe Objekt besitzen, selbst wenn die Werte der durch get() erhaltenen Zeiger unterschiedlich sind (z.B. weil sie auf verschiedene Unterobjekte innerhalb desselben Objekts zeigen).

Die Memberfunktion owner_equal ist eine Äquivalenzrelation, bei der ! 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-Pointer als Schlüssel in ungeordneten assoziativen Containern nutzbar zu machen, typischerweise durch std::owner_equal .

Inhaltsverzeichnis

Parameter

other - der std::shared_ptr oder std::weak_ptr der verglichen werden soll

Rückgabewert

true wenn * this und other gemeinsamen Besitz teilen oder beide leer sind. Andernfalls wird false zurückgegeben.

Hinweise

Feature-Test Makro Wert Standard Funktion
__cpp_lib_smart_ptr_owner_equality 202306L (C++26) Ermöglicht die Verwendung von std::weak_ptr als Schlüssel in ungeordneten assoziativen Containern

Beispiel

Siehe auch

bietet gemischte owner-basierte Gleichheitsvergleiche von shared und weak Pointern
(Klasse)