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) (depuis C++26)
template < class Y >
bool owner_equal ( const std:: shared_ptr < Y > & other ) const noexcept ;
(2) (depuis C++26)

Vérifie si ce weak_ptr et other partagent la propriété ou sont tous deux vides. La comparaison est telle que deux pointeurs intelligents sont équivalents seulement s'ils sont tous deux vides ou s'ils possèdent le même objet, même si les valeurs des pointeurs obtenues par get() sont différentes (par exemple parce qu'ils pointent vers différents sous-objets au sein du même objet).

La fonction membre owner_equal est une relation d'équivalence telle que ! owner_before ( other ) && ! other. owner_before ( * this ) est true si et seulement si owner_equal ( other ) est true .

Cet ordonnancement est utilisé pour permettre aux pointeurs partagés et faibles d'être utilisés comme clés dans les conteneurs associatifs non ordonnés, généralement via std::owner_equal .

Table des matières

Paramètres

autre - le std::shared_ptr ou std::weak_ptr à comparer

Valeur de retour

true si * this et other partagent la propriété ou sont tous deux vides. Sinon, retourne false .

Notes

Macro de test de fonctionnalité Valeur Norme Fonctionnalité
__cpp_lib_smart_ptr_owner_equality 202306L (C++26) Permettre l'utilisation de std::weak_ptr comme clés dans les conteneurs associatifs non ordonnés

Exemple

Voir aussi

fournit des comparaisons d'égalité basées sur le propriétaire de types mixtes pour les pointeurs partagés et faibles
(classe)