Base and Implementation Classes
Containers » Unordered Associative
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_type * | std::__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 | ) |

inline noexcept

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
| ) |  |

static protected

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
| ) |  |

inline noexcept

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
| ) |  |

inline noexcept

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.