libstdc++
std::__detail::_Hash_code_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, false > Struct Template Reference

#include <hashtable_policy.h>

Inheritance diagram for std::__detail::_Hash_code_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, false >:
[legend]

Protected Types

typedef void * __hash_code
 
typedef _Hash_node< _Value, false > __node_type
 

Protected Member Functions

 _Hash_code_base (const _ExtractKey &__ex, const _H1 &, const _H2 &, const _Hash &__h)
 
std::size_t _M_bucket_index (const __node_type *__p, std::size_t __n) const noexcept(noexcept(declval< const _Hash & >()(declval< const _Key & >(),(std::size_t) 0)))
 
std::size_t _M_bucket_index (const _Key &__k, __hash_code, std::size_t __n) const
 
void _M_copy_code (__node_type *, const __node_type *) const
 
_ExtractKey & _M_extract ()
 
const _ExtractKey & _M_extract () const
 
__hash_code _M_hash_code (const _Key &__key) const
 
_Hash & _M_ranged_hash ()
 
const _Hash & _M_ranged_hash () const
 
void _M_store_code (__node_type *, __hash_code) const
 
void _M_swap (_Hash_code_base &__x)
 

Detailed Description

template<typename _Key, typename _Value, typename _ExtractKey, typename _H1, typename _H2, typename _Hash>
struct std::__detail::_Hash_code_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, false >

Specialization: ranged hash function, no caching hash codes. H1 and H2 are provided but ignored. We define a dummy hash code type.

Definition at line 1175 of file hashtable_policy.h.

Member Typedef Documentation

◆ __hash_code

template<typename _Key , typename _Value , typename _ExtractKey , typename _H1 , typename _H2 , typename _Hash >
typedef void* std::__detail::_Hash_code_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, false >::__hash_code
protected

Definition at line 1184 of file hashtable_policy.h.

◆ __node_type

template<typename _Key , typename _Value , typename _ExtractKey , typename _H1 , typename _H2 , typename _Hash >
typedef _Hash_node<_Value, false> std::__detail::_Hash_code_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, false >::__node_type
protected

Definition at line 1185 of file hashtable_policy.h.

Constructor & Destructor Documentation

◆ _Hash_code_base()

template<typename _Key , typename _Value , typename _ExtractKey , typename _H1 , typename _H2 , typename _Hash >
std::__detail::_Hash_code_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, false >::_Hash_code_base ( const _ExtractKey &  __ex,
const _H1 &  ,
const _H2 &  ,
const _Hash &  __h 
)
inlineprotected

Definition at line 1191 of file hashtable_policy.h.

Member Function Documentation

◆ _M_bucket_index() [1/2]

template<typename _Key , typename _Value , typename _ExtractKey , typename _H1 , typename _H2 , typename _Hash >
std::size_t std::__detail::_Hash_code_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, false >::_M_bucket_index ( const __node_type __p,
std::size_t  __n 
) const
inlineprotectednoexcept

Definition at line 1204 of file hashtable_policy.h.

◆ _M_bucket_index() [2/2]

template<typename _Key , typename _Value , typename _ExtractKey , typename _H1 , typename _H2 , typename _Hash >
std::size_t std::__detail::_Hash_code_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, false >::_M_bucket_index ( const _Key &  __k,
__hash_code  ,
std::size_t  __n 
) const
inlineprotected

Definition at line 1200 of file hashtable_policy.h.

◆ _M_copy_code()

template<typename _Key , typename _Value , typename _ExtractKey , typename _H1 , typename _H2 , typename _Hash >
void std::__detail::_Hash_code_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, false >::_M_copy_code ( __node_type ,
const __node_type  
) const
inlineprotected

Definition at line 1214 of file hashtable_policy.h.

◆ _M_extract() [1/2]

template<typename _Key , typename _Value , typename _ExtractKey , typename _H1 , typename _H2 , typename _Hash >
_ExtractKey & std::__detail::_Hash_code_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, false >::_M_extract ( )
inlineprotected

Definition at line 1228 of file hashtable_policy.h.

◆ _M_extract() [2/2]

template<typename _Key , typename _Value , typename _ExtractKey , typename _H1 , typename _H2 , typename _Hash >
const _ExtractKey & std::__detail::_Hash_code_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, false >::_M_extract ( ) const
inlineprotected

Definition at line 1225 of file hashtable_policy.h.

◆ _M_hash_code()

template<typename _Key , typename _Value , typename _ExtractKey , typename _H1 , typename _H2 , typename _Hash >
__hash_code std::__detail::_Hash_code_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, false >::_M_hash_code ( const _Key &  __key) const
inlineprotected

Definition at line 1196 of file hashtable_policy.h.

◆ _M_ranged_hash() [1/2]

template<typename _Key , typename _Value , typename _ExtractKey , typename _H1 , typename _H2 , typename _Hash >
_Hash & std::__detail::_Hash_code_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, false >::_M_ranged_hash ( )
inlineprotected

Definition at line 1234 of file hashtable_policy.h.

◆ _M_ranged_hash() [2/2]

template<typename _Key , typename _Value , typename _ExtractKey , typename _H1 , typename _H2 , typename _Hash >
const _Hash & std::__detail::_Hash_code_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, false >::_M_ranged_hash ( ) const
inlineprotected

Definition at line 1231 of file hashtable_policy.h.

◆ _M_store_code()

template<typename _Key , typename _Value , typename _ExtractKey , typename _H1 , typename _H2 , typename _Hash >
void std::__detail::_Hash_code_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, false >::_M_store_code ( __node_type ,
__hash_code   
) const
inlineprotected

Definition at line 1210 of file hashtable_policy.h.

◆ _M_swap()

template<typename _Key , typename _Value , typename _ExtractKey , typename _H1 , typename _H2 , typename _Hash >
void std::__detail::_Hash_code_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, false >::_M_swap ( _Hash_code_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, false > &  __x)
inlineprotected

Definition at line 1218 of file hashtable_policy.h.


The documentation for this struct was generated from the following file: