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

Comprueba si este weak_ptr y other comparten propiedad o si ambos están vacíos. La comparación es tal que dos punteros inteligentes se consideran equivalentes solo si ambos están vacíos o si ambos poseen el mismo objeto, incluso si los valores de los punteros obtenidos mediante get() son diferentes (por ejemplo, porque apuntan a diferentes subobjetos dentro del mismo objeto).

La función miembro owner_equal es una relación de equivalencia tal que ! owner_before ( other ) && ! other. owner_before ( * this ) es true si y solo si owner_equal ( other ) es true .

Este ordenamiento se utiliza para que los punteros compartidos y débiles sean utilizables como claves en contenedores asociativos no ordenados, típicamente a través de std::owner_equal .

Contenidos

Parámetros

otro - el std::shared_ptr o std::weak_ptr a comparar

Valor de retorno

true si * this y other comparten propiedad o ambos están vacíos. De lo contrario, devuelve false .

Notas

Macro de prueba de características Valor Estándar Característica
__cpp_lib_smart_ptr_owner_equality 202306L (C++26) Habilitar el uso de std::weak_ptr como claves en contenedores asociativos no ordenados

Ejemplo

Véase también

proporciona comparaciones de igualdad basadas en propietario de tipos mixtos para punteros compartidos y débiles
(clase)