std::weak_ptr<T>:: owner_equal
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Modifiers | ||||
| Observers | ||||
|
(C++26)
|
||||
|
weak_ptr::owner_equal
(C++26)
|
||||
| Non-member functions | ||||
| Helper classes | ||||
|
(C++20)
|
||||
| Deduction guides (C++17) |
|
template
<
class
Y
>
bool owner_equal ( const std:: weak_ptr < Y > & other ) const noexcept ; |
(1) | (начиная с C++26) |
|
template
<
class
Y
>
bool owner_equal ( const std:: shared_ptr < Y > & other ) const noexcept ; |
(2) | (начиная с C++26) |
Проверяет, разделяют ли этот
weak_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::weak_ptr
в качестве ключей в
неупорядоченных ассоциативных контейнерах
|
Пример
|
Этот раздел не завершён
Причина: пример |
Смотрите также
|
(C++26)
|
предоставляет смешанные owner-based сравнения на равенство для shared и weak указателей
(класс) |