std:: owner_equal
|
Определено в заголовке
<memory>
|
||
|
struct
owner_equal
;
|
(начиная с C++26) | |
Этот функциональный объект обеспечивает владельческое (в отличие от поточного) смешанное типовое сравнение на равенство как для
std::weak_ptr
, так и для
std::shared_ptr
. Сравнение выполняется таким образом, что два умных указателя считаются эквивалентными только если они оба пусты или разделяют владение, даже если значения сырых указателей, полученных через
get()
, различаются (например, потому что они указывают на разные подобъекты внутри одного объекта).
std::owner_equal
выводит типы параметров из аргументов.
Содержание |
Вложенные типы
| Вложенный тип | Определение |
is_transparent
|
unspecified |
Функции-члены
|
operator()
|
сравнивает свои аргументы, используя семантику на основе владельца
(функция) |
std::owner_equal:: operator()
|
template
<
class
T,
class
U
>
bool
operator
(
)
(
const
std::
shared_ptr
<
T
>
&
lhs,
|
(начиная с C++26) | |
|
template
<
class
T,
class
U
>
bool
operator
(
)
(
const
std::
shared_ptr
<
T
>
&
lhs,
|
(начиная с C++26) | |
|
template
<
class
T,
class
U
>
bool
operator
(
)
(
const
std::
weak_ptr
<
T
>
&
lhs,
|
(начиная с C++26) | |
|
template
<
class
T,
class
U
>
bool
operator
(
)
(
const
std::
weak_ptr
<
T
>
&
lhs,
|
(начиная с C++26) | |
Сравнивает lhs и rhs используя семантику на основе владельца. Фактически вызывает lhs. owner_equal ( rhs ) .
Сравнение на равенство является отношением эквивалентности.
lhs и rhs эквивалентны только если они оба пусты или разделяют владение.
Параметры
| lhs, rhs | - | указатели с разделяемым владением для сравнения |
Возвращаемое значение
true если lhs и rhs оба пусты или разделяют владение, как определено сравнением на равенство на основе владельца, false в противном случае.
Примечания
| Макрос тестирования возможностей | Значение | Стандарт | Возможность |
|---|---|---|---|
__cpp_lib_smart_ptr_owner_equality
|
202306L
|
(C++26) |
Включение использования
std::shared_ptr
и
std::weak_ptr
в качестве ключей в
неупорядоченных ассоциативных контейнерах
|
Смотрите также
|
(C++26)
|
предоставляет владельческое сравнение на равенство shared указателей
(публичная функция-член
std::shared_ptr<T>
)
|
|
(C++26)
|
предоставляет владельческое сравнение на равенство weak указателей
(публичная функция-член
std::weak_ptr<T>
)
|