std:: owner_equal
|
Definido en el encabezado
<memory>
|
||
|
struct
owner_equal
;
|
(desde C++26) | |
Este objeto función proporciona una comparación de igualdad de tipos mixtos basada en propietario (en lugar de basada en valor) tanto para
std::weak_ptr
como para
std::shared_ptr
. La comparación es tal que dos punteros inteligentes se consideran equivalentes solo si ambos están vacíos o si comparten la propiedad, incluso si los valores de los punteros en crudo obtenidos mediante
get()
son diferentes (por ejemplo, porque apuntan a diferentes subobjetos dentro del mismo objeto).
std::owner_equal
deduce los tipos de parámetros a partir de los argumentos.
Contenidos |
Tipos anidados
| Tipo anidado | Definición |
is_transparent
|
unspecified |
Funciones miembro
|
operator()
|
compara sus argumentos usando semántica basada en propietario
(función) |
std::owner_equal:: operator()
|
template
<
class
T,
class
U
>
bool
operator
(
)
(
const
std::
shared_ptr
<
T
>
&
lhs,
|
(desde C++26) | |
|
template
<
class
T,
class
U
>
bool
operator
(
)
(
const
std::
shared_ptr
<
T
>
&
lhs,
|
(desde C++26) | |
|
template
<
class
T,
class
U
>
bool
operator
(
)
(
const
std::
weak_ptr
<
T
>
&
lhs,
|
(desde C++26) | |
|
template
<
class
T,
class
U
>
bool
operator
(
)
(
const
std::
weak_ptr
<
T
>
&
lhs,
|
(desde C++26) | |
Compara lhs y rhs usando semántica basada en propietario. Efectivamente llama a lhs. owner_equal ( rhs ) .
La comparación de igualdad es una relación de equivalencia.
lhs y rhs son equivalentes solo si ambos están vacíos o comparten propiedad.
Parámetros
| lhs, rhs | - | punteros de propiedad compartida a comparar |
Valor de retorno
true si lhs y rhs están ambos vacíos o comparten propiedad según lo determinado por la comparación de igualdad basada en propietario, false en caso contrario.
Notas
| Macro de prueba de características | Valor | Std | Característica |
|---|---|---|---|
__cpp_lib_smart_ptr_owner_equality
|
202306L
|
(C++26) |
Habilitar el uso de
std::shared_ptr
y
std::weak_ptr
como claves en
contenedores asociativos no ordenados
|
Véase también
|
(C++26)
|
proporciona comparación de igualdad basada en propietario de punteros compartidos
(función miembro pública de
std::shared_ptr<T>
)
|
|
(C++26)
|
proporciona comparación de igualdad basada en propietario de punteros débiles
(función miembro pública de
std::weak_ptr<T>
)
|