libstdc++
std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits > Struct Template Reference

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

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

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
inlineprotected

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
inlineprotected

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

Definition at line 1839 of file hashtable_policy.h.


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