Namespaces
Variants

std:: owner_hash

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

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

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

Содержание

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

Вложенный тип Определение
is_transparent unspecified

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

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

std::owner_hash:: operator()

template < class T >
std:: size_t operator ( ) ( const std:: shared_ptr < T > & key ) const noexcept ;
(1) (since C++26)
template < class T >
std:: size_t operator ( ) ( const std:: weak_ptr < T > & key ) const noexcept ;
(2) (since 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> )