std::hash<std::indirect> - cppreference.com

From cppreference.com

template< class T, class Allocator > struct hash<std::indirect<T, Allocator>>;

(since C++26)

The partial specialization of std::hash for std::indirect allows users to obtain hashes of the objects owned by indirect objects.

The specialization std::hash<std::indirect<T, Allocator>> is enabled if std::hash<T> is enabled, and is disabled otherwise.

When enabled, for an object obj of type std::indirect<T, Allocator>, std::hash<std::indirect<T, Allocator>>()(obj) evaluates to:

  • std::hash<T>()(*obj), if obj is not valueless.
  • An implementation-defined value, if obj is valueless.

The member functions of this specialization are not guaranteed to be noexcept because the hash of T might throw.

Example

See also

hash function object
(class template) [edit]