std::owner_equal
| Definiert in Header <memory> |
||
| struct owner_equal; |
(seit C++26) | |
Dieses Funktions-Objekt stellt eine besitzerbasierte (im Gegensatz zu einer wertbasierten) gemischte Gleichheitsprüfung sowohl für std::weak_ptr als auch für std::shared_ptr bereit. Die Prüfung ist so gestaltet, dass zwei intelligente Zeiger nur dann als äquivalent gelten, wenn sie beide leer sind oder wenn sie sich den Besitz teilen, selbst wenn die Werte der durch get() erhaltenen Rohzeiger unterschiedlich sind (z.B. weil sie auf verschiedene Unterobjekte desselben Objekts zeigen).
std::owner_equal leitet die Parametertypen von den Argumenten ab.Inhalt |
[bearbeiten] Verschachtelte Typen
| Verschachtelter Typ | Definition |
is_transparent
|
nicht spezifiziert |
[bearbeiten] Member-Funktionen
| operator() |
vergleicht seine Argumente anhand von inhaltsbasierten Semantiken (Funktion) |
std::owner_equal::operator()
| template< class T, class U > bool operator()( const std::shared_ptr<T>& lhs, |
(seit C++26) | |
| template< class T, class U > bool operator()( const std::shared_ptr<T>& lhs, |
(seit C++26) | |
| template< class T, class U > bool operator()( const std::weak_ptr<T>& lhs, |
(seit C++26) | |
| template< class T, class U > bool operator()( const std::weak_ptr<T>& lhs, |
(seit C++26) | |
Vergleicht lhs und rhs unter Verwendung besitzerbasierter Semantik. Ruft effektiv lhs.owner_equal(rhs) auf.
Die Gleichheitsprüfung ist eine Äquivalenzrelation.
lhs und rhs sind nur dann äquivalent, wenn sie beide leer sind oder sich den Besitz teilen.
Parameter
| lhs, rhs | - | geteilte Besitzzeiger zum Vergleichen |
Rückgabewert
true, wenn lhs und rhs beide leer sind oder den Besitz wie durch die besitzerbasierte Gleichheitsprüfung bestimmt teilen, andernfalls false.
[bearbeiten] Anmerkungen
| Feature-Test-Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_smart_ptr_owner_equality |
202306L |
(C++26) | Ermöglicht die Verwendung von std::shared_ptr und std::weak_ptr als Schlüssel in ungeordneten assoziativen Containern |
[bearbeiten] Siehe auch
| (C++26) |
stellt besitzerbasierte Gleichheitsprüfung für Shared Pointers bereit (public member function of std::shared_ptr<T>) |
| (C++26) |
stellt besitzerbasierte Gleichheitsprüfung für Weak Pointers bereit (public member function of std::weak_ptr<T>) |