Namespaces
Variants
Actions

std::owner_hash

From cppreference.com
< cpp‎ | memory
 
 
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*)
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)
 
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.

Contents

[edit]Nested types

Nested type Definition
is_transparentunspecified

[edit]Member functions

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

std::owner_hash::operator()

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

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.

[edit]Notes

Feature-test macroValueStdFeature
__cpp_lib_smart_ptr_owner_equality202306L(C++26)Enabling the use of std::shared_ptr and std::weak_ptr as keys in unordered associative containers

[edit]See also

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