Spec-Zone.ru › C++

std::weak_ptr<T>::owner_equal

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 в качестве ключей в неупорядоченных ассоциативных контейнерах

Пример

См. также

owner_equal
(C++26)
предоставляет смешанные типы сравнений равенства, основанных на владении, общих и слабых указателей
(класс)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/memory/weak_ptr/owner_equal

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API