Namespaces
Variants

std::shared_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:: shared_ptr < Y > & other ) const noexcept ;
(1) (начиная с C++26)
template < class Y >
bool owner_equal ( const std:: weak_ptr < Y > & other ) const noexcept ;
(2) (начиная с C++26)

Проверяет, разделяют ли этот shared_ptr и other владение объектом или оба являются пустыми. Сравнение выполняется таким образом, что два умных указателя считаются эквивалентными только если они оба пусты или если они оба владеют одним и тем же объектом, даже если значения указателей, полученные с помощью get() различаются (например, потому что они указывают на разные подобъекты внутри одного объекта).

Функция-член owner_equal является отношением эквивалентности, при котором ! owner_before ( other ) && ! other. owner_before ( * this ) равно true тогда и только тогда, когда owner_equal ( other ) равно true .

Этот порядок используется для того, чтобы сделать разделяемые и слабые указатели пригодными для использования в качестве ключей в неупорядоченных ассоциативных контейнерах, обычно через std::owner_equal .

Содержание

Параметры

other - std::shared_ptr или std::weak_ptr для сравнения

Возвращаемое значение

true если * this и other разделяют владение или оба пусты. В противном случае возвращает false .

Примечания

Макрос тестирования возможностей Значение Стандарт Возможность
__cpp_lib_smart_ptr_owner_equality 202306L (C++26) Включение использования std::shared_ptr в качестве ключей в неупорядоченных ассоциативных контейнерах

Пример

Смотрите также

предоставляет смешанные owner-based сравнения на равенство для shared и weak указателей
(класс)