std::owner_hash
Определено в заголовке <memory> | ||
|---|---|---|
struct owner_hash; | (с C++26) |
Этот объект функции предоставляет хеширование, основанное на владельце (в отличие от значения), для std::weak_ptr и std::shared_ptr.
Вложенные типы
| Вложенный тип | Определение |
|---|---|
is_transparent | неопределённый |
Члены-функции
| operator() | вычисляет хеш указателя на совместное владение (функция) |
std::owner_less::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 с тем же владением.
Примечания
| Макрос проверки наличия функции | Значение | Std | Функция |
|---|---|---|---|
__cpp_lib_smart_ptr_owner_equality | 202306L | (C++26) | Включение возможности использования std::shared_ptr и std::weak_ptr в качестве ключей в неупорядоченных ассоциативных контейнерах |
См. также
|
(C++26) | предоставляет хеширование, основанное на владельце, для указателей на совместное владение (публичная функция класса std::shared_ptr<T>) |
|
(C++26) | предоставляет хеширование, основанное на владельце, для слабых указателей (публичная функция класса std::weak_ptr<T>) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/memory/owner_hash