std::owner_hash
Определено в заголовочном файле <memory> | ||
|---|---|---|
struct owner_hash; | (начиная с C++26) |
Этот функциональный объект обеспечивает хэширование по владению (в отличие от хэширования по значению) для std::weak_ptr и std::shared_ptr.
Вложенные типы
| Вложенный тип | Определение |
|---|---|
is_transparent | не указано |
Функции-члены
| вычисляет хэш указателя с совместным владением (функция) |
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 в качестве ключей в неупорядоченных ассоциативных контейнерах |
См. также
|
(C++26) | обеспечивает хэширование указателей shared по владельцу (открытая функция-член std::shared_ptr<T>) |
|
(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