Namespaces
Variants

std:: hash <std::indirect>

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)
Definiert im Header <memory>
template < class T, class Allocator >
struct hash < std :: indirect < T, Allocator >> ;
(seit C++26)

Die partielle Spezialisierung von std::hash für std::indirect ermöglicht es Benutzern, Hashwerte der Objekte zu erhalten, die von indirect Objekten besessen werden.

Die Spezialisierung std:: hash < std :: indirect < T, Allocator >> ist aktiviert wenn std:: hash < T > aktiviert ist, und andernfalls deaktiviert.

Wenn aktiviert, ergibt sich für ein Objekt obj vom Typ std :: indirect < T, Allocator > , std:: hash < std :: indirect < T, Allocator >> ( ) ( obj ) zu:

  • std:: hash < T > ( ) ( * obj ) , falls obj nicht wertlos ist.
  • Ein implementierungsdefinierter Wert, falls obj wertlos ist.

Die Memberfunktionen dieser Spezialisierung sind nicht garantiert noexcept zu sein, weil der Hash von T möglicherweise eine Exception wirft.

Beispiel

Siehe auch

(C++11)
Hash-Funktionsobjekt
(Klassentemplate)