libstdc++
Base and Implementation Classes
Collaboration diagram for Base and Implementation Classes:

Classes

struct  std::__detail::_Default_ranged_hash
 
struct  std::__detail::_Equal_helper< _Key, _Value, _ExtractKey, _Equal, _HashCodeType, __cache_hash_code >
 
struct  std::__detail::_Equal_helper< _Key, _Value, _ExtractKey, _Equal, _HashCodeType, false >
 
struct  std::__detail::_Equal_helper< _Key, _Value, _ExtractKey, _Equal, _HashCodeType, true >
 
struct  std::__detail::_Equality< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, _Unique_keys >
 
struct  std::__detail::_Equality< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, false >
 
struct  std::__detail::_Equality< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true >
 
struct  std::__detail::_Equality_base
 
struct  std::__detail::_Hash_code_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, __cache_hash_code >
 
struct  std::__detail::_Hash_code_base< _Key, _Value, _ExtractKey, _H1, _H2, _Default_ranged_hash, false >
 
struct  std::__detail::_Hash_code_base< _Key, _Value, _ExtractKey, _H1, _H2, _Default_ranged_hash, true >
 
struct  std::__detail::_Hash_code_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, false >
 
struct  std::__detail::_Hash_node< _Value, _Cache_hash_code >
 
struct  std::__detail::_Hash_node< _Value, false >
 
struct  std::__detail::_Hash_node< _Value, true >
 
struct  std::__detail::_Hash_node_base
 
struct  std::__detail::_Hash_node_value_base< _Value >
 
struct  std::__detail::_Hashtable_alloc< _NodeAlloc >
 
struct  std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >
 
struct  std::__detail::_Hashtable_ebo_helper< _Nm, _Tp, __use_ebo >
 
struct  std::__detail::_Hashtable_ebo_helper< _Nm, _Tp, false >
 
struct  std::__detail::_Hashtable_ebo_helper< _Nm, _Tp, true >
 
struct  std::__detail::_Hashtable_traits< _Cache_hash_code, _Constant_iterators, _Unique_keys >
 
struct  std::__detail::_Insert< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, _Constant_iterators >
 
struct  std::__detail::_Insert< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, false >
 
struct  std::__detail::_Insert< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true >
 
struct  std::__detail::_Insert_base< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >
 
struct  std::__detail::_Local_const_iterator< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, __constant_iterators, __cache >
 
struct  std::__detail::_Local_iterator< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, __constant_iterators, __cache >
 
struct  std::__detail::_Local_iterator_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, __cache_hash_code >
 
struct  std::__detail::_Local_iterator_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, true >
 
struct  std::__detail::_Map_base< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, _Unique_keys >
 
struct  std::__detail::_Map_base< _Key, _Pair, _Alloc, _Select1st, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, false >
 
struct  std::__detail::_Map_base< _Key, _Pair, _Alloc, _Select1st, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true >
 
struct  std::__detail::_Mask_range_hashing
 
struct  std::__detail::_Mod_range_hashing
 
struct  std::__detail::_Node_const_iterator< _Value, __constant_iterators, __cache >
 
struct  std::__detail::_Node_iterator< _Value, __constant_iterators, __cache >
 
struct  std::__detail::_Node_iterator_base< _Value, _Cache_hash_code >
 
struct  std::__detail::_Power2_rehash_policy
 
struct  std::__detail::_Prime_rehash_policy
 
struct  std::__detail::_Rehash_base< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, typename >
 
struct  std::__detail::_Rehash_base< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, std::false_type >
 
struct  std::__detail::_Rehash_base< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, std::true_type >
 
class  std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >
 

Typedefs

template<typename _Policy >
using std::__detail::__has_load_factor = typename _Policy::__has_load_factor
 
template<typename _Key , typename _Value , typename _ExtractKey , typename _H1 , typename _H2 , typename _Hash >
using std::__detail::__hash_code_for_local_iter = _Hash_code_storage< _Hash_code_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, false > >
 

Functions

std::size_t std::__detail::__clp2 (std::size_t __n) noexcept
 
template<class _Iterator >
std::iterator_traits< _Iterator >::difference_type std::__detail::__distance_fw (_Iterator __first, _Iterator __last)
 
template<class _Iterator >
std::iterator_traits< _Iterator >::difference_type std::__detail::__distance_fw (_Iterator __first, _Iterator __last, std::forward_iterator_tag)
 
template<class _Iterator >
std::iterator_traits< _Iterator >::difference_type std::__detail::__distance_fw (_Iterator __first, _Iterator __last, std::input_iterator_tag)
 
__bucket_typestd::__detail::_Hashtable_alloc< _NodeAlloc >::_M_allocate_buckets (std::size_t __n)
 
template<typename... _Args>
__node_type * std::__detail::_Hashtable_alloc< _NodeAlloc >::_M_allocate_node (_Args &&... __args)
 
void std::__detail::_Hashtable_alloc< _NodeAlloc >::_M_deallocate_buckets (__bucket_type *, std::size_t __n)
 
void std::__detail::_Hashtable_alloc< _NodeAlloc >::_M_deallocate_node (__node_type *__n)
 
void std::__detail::_Hashtable_alloc< _NodeAlloc >::_M_deallocate_node_ptr (__node_type *__n)
 
void std::__detail::_Hashtable_alloc< _NodeAlloc >::_M_deallocate_nodes (__node_type *__n)
 
bool std::__detail::_Equality< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true >::_M_equal (const __hashtable &) const
 
bool std::__detail::_Equality< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, false >::_M_equal (const __hashtable &) const
 
template<typename _InputIterator , typename _NodeGetter >
void std::__detail::_Insert_base< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_M_insert_range (_InputIterator __first, _InputIterator __last, const _NodeGetter &, false_type)
 
template<typename _InputIterator , typename _NodeGetter >
void std::__detail::_Insert_base< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_M_insert_range (_InputIterator __first, _InputIterator __last, const _NodeGetter &, true_type)
 
template<typename _Uiterator >
static bool std::__detail::_Equality_base::_S_is_permutation (_Uiterator, _Uiterator, _Uiterator)
 
mapped_type & std::__detail::_Map_base< _Key, _Pair, _Alloc, _Select1st, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true >::at (const key_type &__k)
 
const mapped_type & std::__detail::_Map_base< _Key, _Pair, _Alloc, _Select1st, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true >::at (const key_type &__k) const
 
template<typename _Key , typename _Value , typename _ExtractKey , typename _H1 , typename _H2 , typename _Hash , bool __cache>
bool std::__detail::operator!= (const _Local_iterator_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, __cache > &__x, const _Local_iterator_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, __cache > &__y)
 
template<typename _Value , bool _Cache_hash_code>
bool std::__detail::operator!= (const _Node_iterator_base< _Value, _Cache_hash_code > &__x, const _Node_iterator_base< _Value, _Cache_hash_code > &__y) noexcept
 
template<typename _Key , typename _Value , typename _ExtractKey , typename _H1 , typename _H2 , typename _Hash , bool __cache>
bool std::__detail::operator== (const _Local_iterator_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, __cache > &__x, const _Local_iterator_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, __cache > &__y)
 
template<typename _Value , bool _Cache_hash_code>
bool std::__detail::operator== (const _Node_iterator_base< _Value, _Cache_hash_code > &__x, const _Node_iterator_base< _Value, _Cache_hash_code > &__y) noexcept
 
mapped_type & std::__detail::_Map_base< _Key, _Pair, _Alloc, _Select1st, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true >::operator[] (const key_type &__k)
 
mapped_type & std::__detail::_Map_base< _Key, _Pair, _Alloc, _Select1st, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true >::operator[] (key_type &&__k)
 

Detailed Description

Typedef Documentation

◆ __has_load_factor

template<typename _Policy >
using std::__detail::__has_load_factor = typedef typename _Policy::__has_load_factor

Definition at line 1019 of file hashtable_policy.h.

◆ __hash_code_for_local_iter

template<typename _Key , typename _Value , typename _ExtractKey , typename _H1 , typename _H2 , typename _Hash >
using std::__detail::__hash_code_for_local_iter = typedef _Hash_code_storage<_Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash, false> >

Definition at line 1543 of file hashtable_policy.h.

Function Documentation

◆ __clp2()

std::size_t std::__detail::__clp2 ( std::size_t  __n)
inlinenoexcept

Compute closest power of 2 not less than __n.

Definition at line 508 of file hashtable_policy.h.

◆ __distance_fw() [1/3]

template<class _Iterator >
std::iterator_traits< _Iterator >::difference_type std::__detail::__distance_fw ( _Iterator  __first,
_Iterator  __last 
)
inline

Definition at line 76 of file hashtable_policy.h.

◆ __distance_fw() [2/3]

template<class _Iterator >
std::iterator_traits< _Iterator >::difference_type std::__detail::__distance_fw ( _Iterator  __first,
_Iterator  __last,
std::forward_iterator_tag   
)
inline

Definition at line 70 of file hashtable_policy.h.

◆ __distance_fw() [3/3]

template<class _Iterator >
std::iterator_traits< _Iterator >::difference_type std::__detail::__distance_fw ( _Iterator  __first,
_Iterator  __last,
std::input_iterator_tag   
)
inline

Definition at line 64 of file hashtable_policy.h.

◆ _M_allocate_buckets()

template<typename _NodeAlloc >
_Hashtable_alloc< _NodeAlloc >::__bucket_type * std::__detail::_Hashtable_alloc< _NodeAlloc >::_M_allocate_buckets ( std::size_t  __n)

Definition at line 2130 of file hashtable_policy.h.

◆ _M_allocate_node()

template<typename _NodeAlloc >
template<typename... _Args>
_Hashtable_alloc< _NodeAlloc >::__node_type * std::__detail::_Hashtable_alloc< _NodeAlloc >::_M_allocate_node ( _Args &&...  __args)

Definition at line 2079 of file hashtable_policy.h.

◆ _M_deallocate_buckets()

template<typename _NodeAlloc >
void std::__detail::_Hashtable_alloc< _NodeAlloc >::_M_deallocate_buckets ( __bucket_type __bkts,
std::size_t  __n 
)

Definition at line 2142 of file hashtable_policy.h.

◆ _M_deallocate_node()

template<typename _NodeAlloc >
void std::__detail::_Hashtable_alloc< _NodeAlloc >::_M_deallocate_node ( __node_type *  __n)

Definition at line 2100 of file hashtable_policy.h.

◆ _M_deallocate_node_ptr()

template<typename _NodeAlloc >
void std::__detail::_Hashtable_alloc< _NodeAlloc >::_M_deallocate_node_ptr ( __node_type *  __n)

Definition at line 2108 of file hashtable_policy.h.

◆ _M_deallocate_nodes()

template<typename _NodeAlloc >
void std::__detail::_Hashtable_alloc< _NodeAlloc >::_M_deallocate_nodes ( __node_type *  __n)

Definition at line 2118 of file hashtable_policy.h.

◆ _M_equal() [1/2]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >
bool std::__detail::_Equality< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true >::_M_equal ( const __hashtable __other) const

Definition at line 1947 of file hashtable_policy.h.

◆ _M_equal() [2/2]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >
bool std::__detail::_Equality< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, false >::_M_equal ( const __hashtable __other) const

Definition at line 1986 of file hashtable_policy.h.

◆ _M_insert_range() [1/2]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >
template<typename _InputIterator , typename _NodeGetter >
void std::__detail::_Insert_base< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_M_insert_range ( _InputIterator  __first,
_InputIterator  __last,
const _NodeGetter &  __node_gen,
false_type   
)
protected

Definition at line 882 of file hashtable_policy.h.

◆ _M_insert_range() [2/2]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >
template<typename _InputIterator , typename _NodeGetter >
void std::__detail::_Insert_base< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_M_insert_range ( _InputIterator  __first,
_InputIterator  __last,
const _NodeGetter &  __node_gen,
true_type   
)
protected

Definition at line 856 of file hashtable_policy.h.

◆ _S_is_permutation()

template<typename _Uiterator >
bool std::__detail::_Equality_base::_S_is_permutation ( _Uiterator  __first1,
_Uiterator  __last1,
_Uiterator  __first2 
)
staticprotected

Definition at line 1868 of file hashtable_policy.h.

◆ at() [1/2]

template<typename _Key , typename _Pair , typename _Alloc , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >
auto std::__detail::_Map_base< _Key, _Pair, _Alloc, _Select1st, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true >::at ( const key_type &  __k)

Definition at line 740 of file hashtable_policy.h.

◆ at() [2/2]

template<typename _Key , typename _Pair , typename _Alloc , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >
auto std::__detail::_Map_base< _Key, _Pair, _Alloc, _Select1st, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true >::at ( const key_type &  __k) const

Definition at line 759 of file hashtable_policy.h.

◆ operator!=() [1/2]

template<typename _Key , typename _Value , typename _ExtractKey , typename _H1 , typename _H2 , typename _Hash , bool __cache>
bool std::__detail::operator!= ( const _Local_iterator_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, __cache > &  __x,
const _Local_iterator_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, __cache > &  __y 
)
inline

Definition at line 1637 of file hashtable_policy.h.

◆ operator!=() [2/2]

template<typename _Value , bool _Cache_hash_code>
bool std::__detail::operator!= ( const _Node_iterator_base< _Value, _Cache_hash_code > &  __x,
const _Node_iterator_base< _Value, _Cache_hash_code > &  __y 
)
inlinenoexcept

Definition at line 311 of file hashtable_policy.h.

◆ operator==() [1/2]

template<typename _Key , typename _Value , typename _ExtractKey , typename _H1 , typename _H2 , typename _Hash , bool __cache>
bool std::__detail::operator== ( const _Local_iterator_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, __cache > &  __x,
const _Local_iterator_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, __cache > &  __y 
)
inline

Definition at line 1628 of file hashtable_policy.h.

◆ operator==() [2/2]

template<typename _Value , bool _Cache_hash_code>
bool std::__detail::operator== ( const _Node_iterator_base< _Value, _Cache_hash_code > &  __x,
const _Node_iterator_base< _Value, _Cache_hash_code > &  __y 
)
inlinenoexcept

Definition at line 304 of file hashtable_policy.h.

◆ operator[]() [1/2]

template<typename _Key , typename _Pair , typename _Alloc , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >
auto std::__detail::_Map_base< _Key, _Pair, _Alloc, _Select1st, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true >::operator[] ( const key_type &  __k)

Definition at line 690 of file hashtable_policy.h.

◆ operator[]() [2/2]

template<typename _Key , typename _Pair , typename _Alloc , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >
auto std::__detail::_Map_base< _Key, _Pair, _Alloc, _Select1st, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true >::operator[] ( key_type &&  __k)

Definition at line 715 of file hashtable_policy.h.