libstdc++
Collaboration diagram for Hashes:

Classes

struct  std::hash< _Tp >
 
struct  std::hash< _Tp * >
 
struct  std::hash< bool >
 
struct  std::hash< char >
 
struct  std::hash< char16_t >
 
struct  std::hash< char32_t >
 
struct  std::hash< double >
 
struct  std::hash< float >
 
struct  std::hash< int >
 
struct  std::hash< long >
 
struct  std::hash< long double >
 
struct  std::hash< long long >
 
struct  std::hash< short >
 
struct  std::hash< signed char >
 
struct  std::hash< unsigned char >
 
struct  std::hash< unsigned int >
 
struct  std::hash< unsigned long >
 
struct  std::hash< unsigned long long >
 
struct  std::hash< unsigned short >
 
struct  std::hash< wchar_t >
 

Macros

#define _Cxx_hashtable_define_trivial_hash(_Tp)
 

Typedefs

typedef _Arg std::__hash_base< _Result, _Arg >::argument_type
 
typedef _Result std::__hash_base< _Result, _Arg >::result_type
 

Functions

template<typename _Tp >
static size_t std::_Hash_impl::__hash_combine (const _Tp &__val, size_t __hash)
 
template<typename _Tp >
static size_t std::_Fnv_hash_impl::__hash_combine (const _Tp &__val, size_t __hash)
 
template<typename _Tp >
static size_t std::_Hash_impl::hash (const _Tp &__val)
 
template<typename _Tp >
static size_t std::_Fnv_hash_impl::hash (const _Tp &__val)
 
static size_t std::_Hash_impl::hash (const void *__ptr, size_t __clength, size_t __seed=static_cast< size_t >(0xc70f6907UL))
 
static size_t std::_Fnv_hash_impl::hash (const void *__ptr, size_t __clength, size_t __seed=static_cast< size_t >(2166136261UL))
 
size_t std::hash< _Tp * >::operator() (_Tp *__p) const noexcept
 
size_t std::__hash_enum< _Tp, true >::operator() (_Tp __val) const noexcept
 
size_t std::hash< bool >::operator() (bool __val) const noexcept
 
size_t std::hash< char >::operator() (char __val) const noexcept
 
size_t std::hash< char16_t >::operator() (char16_t __val) const noexcept
 
size_t std::hash< char32_t >::operator() (char32_t __val) const noexcept
 
size_t std::hash< double >::operator() (double __val) const noexcept
 
size_t std::hash< float >::operator() (float __val) const noexcept
 
size_t std::hash< int >::operator() (int __val) const noexcept
 
size_t std::hash< long >::operator() (long __val) const noexcept
 
size_t std::hash< long double >::operator() (long double __val) const noexcept
 
size_t std::hash< long long >::operator() (long long __val) const noexcept
 
size_t std::hash< short >::operator() (short __val) const noexcept
 
size_t std::hash< signed char >::operator() (signed char __val) const noexcept
 
size_t std::hash< unsigned char >::operator() (unsigned char __val) const noexcept
 
size_t std::hash< unsigned int >::operator() (unsigned int __val) const noexcept
 
size_t std::hash< unsigned long >::operator() (unsigned long __val) const noexcept
 
size_t std::hash< unsigned long long >::operator() (unsigned long long __val) const noexcept
 
size_t std::hash< unsigned short >::operator() (unsigned short __val) const noexcept
 
size_t std::hash< wchar_t >::operator() (wchar_t __val) const noexcept
 

Variables

static constexpr bool std::__poison_hash< _Tp, typename >::__enable_hash_call
 
static constexpr bool std::__poison_hash< _Tp, __void_t< decltype(hash< _Tp >()(declval< _Tp >()))> >::__enable_hash_call
 

Detailed Description

Hashing functors taking a variable type and returning a std::size_t.

Macro Definition Documentation

◆ _Cxx_hashtable_define_trivial_hash

#define _Cxx_hashtable_define_trivial_hash (   _Tp)

Definition at line 114 of file functional_hash.h.

Typedef Documentation

◆ argument_type

template<typename _Result , typename _Arg >
typedef _Arg std::__hash_base< _Result, _Arg >::argument_type

Definition at line 53 of file functional_hash.h.

◆ result_type

template<typename _Result , typename _Arg >
typedef _Result std::__hash_base< _Result, _Arg >::result_type

Definition at line 52 of file functional_hash.h.

Function Documentation

◆ __hash_combine() [1/2]

template<typename _Tp >
static size_t std::_Hash_impl::__hash_combine ( const _Tp &  __val,
size_t  __hash 
)
inlinestatic

Definition at line 201 of file functional_hash.h.

◆ __hash_combine() [2/2]

template<typename _Tp >
static size_t std::_Fnv_hash_impl::__hash_combine ( const _Tp &  __val,
size_t  __hash 
)
inlinestatic

Definition at line 220 of file functional_hash.h.

◆ hash() [1/4]

template<typename _Tp >
static size_t std::_Hash_impl::hash ( const _Tp &  __val)
inlinestatic

Definition at line 196 of file functional_hash.h.

◆ hash() [2/4]

template<typename _Tp >
static size_t std::_Fnv_hash_impl::hash ( const _Tp &  __val)
inlinestatic

Definition at line 215 of file functional_hash.h.

◆ hash() [3/4]

static size_t std::_Hash_impl::hash ( const void *  __ptr,
size_t  __clength,
size_t  __seed = static_cast<size_t>(0xc70f6907UL) 
)
inlinestatic

Definition at line 190 of file functional_hash.h.

◆ hash() [4/4]

static size_t std::_Fnv_hash_impl::hash ( const void *  __ptr,
size_t  __clength,
size_t  __seed = static_cast<size_t>(2166136261UL) 
)
inlinestatic

Definition at line 209 of file functional_hash.h.

◆ operator()() [1/19]

template<typename _Tp >
size_t std::hash< _Tp * >::operator() ( _Tp *  __p) const
inlinenoexcept

Definition at line 109 of file functional_hash.h.

◆ operator()() [2/19]

template<typename _Tp >
size_t std::__hash_enum< _Tp, true >::operator() ( _Tp  __val) const
inlinenoexcept

Definition at line 91 of file functional_hash.h.

◆ operator()() [3/19]

size_t std::hash< bool >::operator() ( bool  __val) const
inlinenoexcept

Definition at line 124 of file functional_hash.h.

◆ operator()() [4/19]

size_t std::hash< char >::operator() ( char  __val) const
inlinenoexcept

Definition at line 127 of file functional_hash.h.

◆ operator()() [5/19]

size_t std::hash< char16_t >::operator() ( char16_t  __val) const
inlinenoexcept

Definition at line 139 of file functional_hash.h.

◆ operator()() [6/19]

size_t std::hash< char32_t >::operator() ( char32_t  __val) const
inlinenoexcept

Definition at line 142 of file functional_hash.h.

◆ operator()() [7/19]

size_t std::hash< double >::operator() ( double  __val) const
inlinenoexcept

Definition at line 241 of file functional_hash.h.

◆ operator()() [8/19]

size_t std::hash< float >::operator() ( float  __val) const
inlinenoexcept

Definition at line 229 of file functional_hash.h.

◆ operator()() [9/19]

size_t std::hash< int >::operator() ( int  __val) const
inlinenoexcept

Definition at line 148 of file functional_hash.h.

◆ operator()() [10/19]

size_t std::hash< long >::operator() ( long  __val) const
inlinenoexcept

Definition at line 151 of file functional_hash.h.

◆ operator()() [11/19]

size_t std::hash< long long >::operator() ( long long  __val) const
inlinenoexcept

Definition at line 154 of file functional_hash.h.

◆ operator()() [12/19]

size_t std::hash< short >::operator() ( short  __val) const
inlinenoexcept

Definition at line 145 of file functional_hash.h.

◆ operator()() [13/19]

size_t std::hash< signed char >::operator() ( signed char  __val) const
inlinenoexcept

Definition at line 130 of file functional_hash.h.

◆ operator()() [14/19]

size_t std::hash< unsigned char >::operator() ( unsigned char  __val) const
inlinenoexcept

Definition at line 133 of file functional_hash.h.

◆ operator()() [15/19]

size_t std::hash< unsigned int >::operator() ( unsigned int  __val) const
inlinenoexcept

Definition at line 160 of file functional_hash.h.

◆ operator()() [16/19]

size_t std::hash< unsigned long >::operator() ( unsigned long  __val) const
inlinenoexcept

Definition at line 163 of file functional_hash.h.

◆ operator()() [17/19]

size_t std::hash< unsigned long long >::operator() ( unsigned long long  __val) const
inlinenoexcept

Definition at line 166 of file functional_hash.h.

◆ operator()() [18/19]

size_t std::hash< unsigned short >::operator() ( unsigned short  __val) const
inlinenoexcept

Definition at line 157 of file functional_hash.h.

◆ operator()() [19/19]

size_t std::hash< wchar_t >::operator() ( wchar_t  __val) const
inlinenoexcept

Definition at line 136 of file functional_hash.h.

Variable Documentation

◆ __enable_hash_call [1/2]

template<typename _Tp , typename = void>
constexpr bool std::__poison_hash< _Tp, typename >::__enable_hash_call
staticconstexpr

Definition at line 63 of file functional_hash.h.

◆ __enable_hash_call [2/2]

template<typename _Tp >
constexpr bool std::__poison_hash< _Tp, __void_t< decltype(hash< _Tp >()(declval< _Tp >()))> >::__enable_hash_call
staticconstexpr

Definition at line 73 of file functional_hash.h.