Namespaces
Variants
Views
Actions

std::owner_hash

From cppreference.com
< cpp‎ | memory
 
 
Utilities library
Language support
Type support (basic types, RTTI)
Library feature-test macros (C++20)
Dynamic memory management
Program utilities
Coroutine support (C++20)
Variadic functions
Debugging support
(C++26)
Three-way comparison
(C++20)
(C++20)(C++20)(C++20)
(C++20)(C++20)(C++20)
General utilities
Date and time
Function objects
Formatting library (C++20)
(C++11)
Relational operators (deprecated in C++20)
Integer comparison functions
(C++20)(C++20)(C++20)   
(C++20)
Swap and type operations
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Common vocabulary types
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Elementary string conversions
(C++17)
(C++17)

 
Dynamic memory management
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Allocators
Garbage collection support
(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_transparent unspecified

[edit] 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 noexcept;
(1) (since C++26)
template< class T >
std::size_t operator()( const std::weak_ptr<T>& key ) const noexcept;
(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 macro Value Std Feature
__cpp_lib_smart_ptr_owner_equality 202306L (C++26) Enabling the use of std::shared_ptr and std::weak_ptr as keys in unordered associative containers

[edit] See also

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