Spec-Zone.ru › C++

std::owner_hash

Определено в заголовочном файле <memory>
struct owner_hash;
(начиная с C++26)

Этот функциональный объект обеспечивает хэширование по владению (в отличие от хэширования по значению) для std::weak_ptr и std::shared_ptr.

Вложенные типы

Вложенный тип Определение
is_transparent не указано

Функции-члены

operator()
вычисляет хэш указателя с совместным владением
(функция)

std::owner_hash::operator()

template< class T >
std::size_t operator()( const std::shared_ptr<T>& key ) const noexcept;
(1) (начиная с C++26)
template< class T >
std::size_t operator()( const std::weak_ptr<T>& key ) const noexcept;
(2) (начиная с C++26)

Эквивалентно return key.owner_hash();.

Параметры

key - указатель с совместным владением, для которого вычисляется хэш

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

Хэш-значение, одинаковое для любого объекта std::shared_ptr или std::weak_ptr с тем же владельцем.

Примечания

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

См. также

owner_hash
(C++26)
обеспечивает хэширование указателей shared по владельцу
(открытая функция-член std::shared_ptr<T>)
owner_hash
(C++26)
обеспечивает хэширование указателей weak по владельцу
(открытая функция-член std::weak_ptr<T>)

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

Spec-Zone.ru

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