std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits > Struct Template Reference
Containers » Unordered Associative » Base and Implementation Classes

`#include <hashtable_policy.h>`

Inheritance diagram for std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >:
[legend]

## Public Types

using | __constant_iterators = typename __traits_type::__constant_iterators
using | __hash_cached = typename __traits_type::__hash_cached
using | __hash_code = typename __hash_code_base::__hash_code
using | __hash_code_base = _Hash_code_base< _Key, _Value, _ExtractKey, _H1, _H2, _Hash, __hash_cached::value >
using | __ireturn_type = typename std::conditional< __unique_keys::value, std::pair< iterator, bool >, iterator >::type
using | __node_type = typename __hash_code_base::__node_type
using | __traits_type = _Traits
using | __unique_keys = typename __traits_type::__unique_keys
using | const_iterator = __detail::_Node_const_iterator< value_type, __constant_iterators::value, __hash_cached::value >
using | const_local_iterator = __detail::_Local_const_iterator< key_type, value_type, _ExtractKey, _H1, _H2, _Hash, __constant_iterators::value, __hash_cached::value >
typedef std::ptrdiff_t | difference_type
using | iterator = __detail::_Node_iterator< value_type, __constant_iterators::value, __hash_cached::value >
typedef _Equal | key_equal
typedef _Key | key_type
using | local_iterator = __detail::_Local_iterator< key_type, value_type, _ExtractKey, _H1, _H2, _Hash, __constant_iterators::value, __hash_cached::value >
typedef std::size_t | size_type
typedef _Value | value_type

## Protected Member Functions

| _Hashtable_base (const _ExtractKey &__ex, const _H1 &__h1, const _H2 &__h2, const _Hash &__hash, const _Equal &__eq)
_Equal & | _M_eq ()
const _Equal & | _M_eq () const
bool | _M_equals (const _Key &__k, __hash_code __c, __node_type *__n) const
void | _M_swap (_Hashtable_base &__x)

## Detailed Description

template<typename _Key, typename _Value, typename _ExtractKey, typename _Equal, typename _H1, typename _H2, typename _Hash, typename _Traits>
struct std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >

Primary class template _Hashtable_base.

Helper class adding management of _Equal functor to _Hash_code_base type.

Base class templates are:

- __detail::_Hash_code_base
- __detail::_Hashtable_ebo_helper

Definition at line 1770 of file hashtable_policy.h.

## Member Typedef Documentation

## __constant_iterators

template<typename _Key , typename _Value , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _Traits >

using std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >::__constant_iterators = typename __traits_type::__constant_iterators

Definition at line 1784 of file hashtable_policy.h.

## __hash_cached

template<typename _Key , typename _Value , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _Traits >

using std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >::__hash_cached = typename __traits_type::__hash_cached

Definition at line 1783 of file hashtable_policy.h.

## __hash_code

template<typename _Key , typename _Value , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _Traits >

using std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >::__hash_code = typename __hash_code_base::__hash_code

Definition at line 1791 of file hashtable_policy.h.

## __hash_code_base

template<typename _Key , typename _Value , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _Traits >

using std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >::__hash_code_base = _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash, __hash_cached::value>

Definition at line 1787 of file hashtable_policy.h.

## __ireturn_type

template<typename _Key , typename _Value , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _Traits >

using std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >::__ireturn_type = typename std::conditional<__unique_keys::value, std::pair<iterator, bool>, iterator>::type

Definition at line 1813 of file hashtable_policy.h.

## __node_type

template<typename _Key , typename _Value , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _Traits >

using std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >::__node_type = typename __hash_code_base::__node_type

Definition at line 1792 of file hashtable_policy.h.

## __traits_type

template<typename _Key , typename _Value , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _Traits >

using std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >::__traits_type = _Traits

Definition at line 1782 of file hashtable_policy.h.

## __unique_keys

template<typename _Key , typename _Value , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _Traits >

using std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >::__unique_keys = typename __traits_type::__unique_keys

Definition at line 1785 of file hashtable_policy.h.

## const_iterator

template<typename _Key , typename _Value , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _Traits >

using std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >::const_iterator = __detail::_Node_const_iterator<value_type, __constant_iterators::value, __hash_cached::value>

Definition at line 1798 of file hashtable_policy.h.

## const_local_iterator

template<typename _Key , typename _Value , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _Traits >

using std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >::const_local_iterator = __detail::_Local_const_iterator<key_type, value_type, _ExtractKey, _H1, _H2, _Hash, __constant_iterators::value, __hash_cached::value>

Definition at line 1807 of file hashtable_policy.h.

## difference_type

template<typename _Key , typename _Value , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _Traits >

typedef std::ptrdiff_t std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >::difference_type

Definition at line 1780 of file hashtable_policy.h.

## iterator

template<typename _Key , typename _Value , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _Traits >

using std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >::iterator = __detail::_Node_iterator<value_type, __constant_iterators::value, __hash_cached::value>

Definition at line 1794 of file hashtable_policy.h.

## key_equal

template<typename _Key , typename _Value , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _Traits >

typedef _Equal std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >::key_equal

Definition at line 1778 of file hashtable_policy.h.

## key_type

template<typename _Key , typename _Value , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _Traits >

typedef _Key std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >::key_type

Definition at line 1776 of file hashtable_policy.h.

## local_iterator

template<typename _Key , typename _Value , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _Traits >

using std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >::local_iterator = __detail::_Local_iterator<key_type, value_type, _ExtractKey, _H1, _H2, _Hash, __constant_iterators::value, __hash_cached::value>

Definition at line 1802 of file hashtable_policy.h.

## size_type

template<typename _Key , typename _Value , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _Traits >

typedef std::size_t std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >::size_type

Definition at line 1779 of file hashtable_policy.h.

## value_type

template<typename _Key , typename _Value , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _Traits >

typedef _Value std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >::value_type

Definition at line 1777 of file hashtable_policy.h.

## Constructor & Destructor Documentation

## _Hashtable_base()

template<typename _Key , typename _Value , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _Traits >

std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >::_Hashtable_base | ( | const _ExtractKey & | __ex,
|  | const _H1 & | __h1,
|  | const _H2 & | __h2,
|  | const _Hash & | __hash,
|  | const _Equal & | __eq
| ) |  |

inline protected

Definition at line 1823 of file hashtable_policy.h.

## Member Function Documentation

## _M_eq() [1/2]

template<typename _Key , typename _Value , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _Traits >

_Equal & std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >::_M_eq | ( |  | ) |

inline protected

Definition at line 1849 of file hashtable_policy.h.

## _M_eq() [2/2]

template<typename _Key , typename _Value , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _Traits >

const _Equal & std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >::_M_eq | ( |  | ) | const

inline protected

Definition at line 1846 of file hashtable_policy.h.

## _M_equals()

template<typename _Key , typename _Value , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _Traits >

bool std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >::_M_equals | ( | const _Key & | __k,
|  | __hash_code | __c,
|  | __node_type * | __n
| ) |  | const

inline protected

Definition at line 1829 of file hashtable_policy.h.

## _M_swap()

template<typename _Key , typename _Value , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _Traits >

void std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >::_M_swap | ( | _Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits > & | __x | ) |

inline protected

Definition at line 1839 of file hashtable_policy.h.

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

- hashtable_policy.h