Scroll to navigation

std::owner_hash(3) C++ Standard Libary std::owner_hash(3)

NAME

std::owner_hash - std::owner_hash

Synopsis


Defined in header <memory>
struct owner_hash; (since C++26)


This function object provides owner-based (as opposed to value-based) hashing of
both std::weak_ptr and std::shared_ptr.

Member functions


operator() calculates the hash of the shared-ownership pointer
(function)

std::owner_hash::operator()


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


Equivalent to return key.owner_hash();.

Parameters


key - shared-ownership pointer to be hashed

Return value


A hash value that is identical for any std::shared_ptr or std::weak_ptr object
sharing the same ownership.

Notes


Feature-test macro Value Std Feature
Enabling the use of
__cpp_lib_smart_ptr_owner_equality 202306L (C++26) std::shared_ptr and std::weak_ptr
as keys in unordered associative
containers

See also


owner_hash provides owner-based hashing of shared pointers
(C++26) (public member function of std::shared_ptr<T>)
owner_hash provides owner-based hashing of weak pointers
(C++26) (public member function of std::weak_ptr<T>)

2024.06.10 http://cppreference.com