.TH "std::__detail::_Hash_code_base< _Key, _Value, _ExtractKey, _Hash, _RangeHash, _Unused, __cache_hash_code >" 3cxx "Wed Jul 28 2021" "libstdc++" \" -*- nroff -*- .ad l .nh .SH NAME std::__detail::_Hash_code_base< _Key, _Value, _ExtractKey, _Hash, _RangeHash, _Unused, __cache_hash_code > .SH SYNOPSIS .br .PP .PP Inherits \fBstd::__detail::_Hashtable_ebo_helper< 1, _Hash >\fP\&. .PP Inherited by \fBstd::__detail::_Hashtable_base< _Value, hash< _Value >, allocator< _Value >, _Equal, _Hash, _RangeHash, _Unused, _Traits >\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "typedef _Hash \fBhasher\fP" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "hasher \fBhash_function\fP () const" .br .in -1c .SS "Protected Types" .in +1c .ti -1c .RI "typedef std::size_t \fB__hash_code\fP" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "\fB_Hash_code_base\fP (const _Hash &__hash)" .br .ti -1c .RI "std::size_t \fB_M_bucket_index\fP (__hash_code __c, std::size_t __bkt_count) const" .br .ti -1c .RI "std::size_t \fB_M_bucket_index\fP (const _Hash_node_value< _Value, false > &__n, std::size_t __bkt_count) const noexcept(noexcept(declval< const _Hash & >()(declval< const _Key & >())) &&noexcept(declval< const _RangeHash & >()((__hash_code) 0,(std::size_t) 0)))" .br .ti -1c .RI "std::size_t \fB_M_bucket_index\fP (const _Hash_node_value< _Value, true > &__n, std::size_t __bkt_count) const noexcept(noexcept(declval< const _RangeHash & >()((__hash_code) 0,(std::size_t) 0)))" .br .ti -1c .RI "void \fB_M_copy_code\fP (\fB_Hash_node_code_cache\fP< false > &, const \fB_Hash_node_code_cache\fP< false > &) const" .br .ti -1c .RI "void \fB_M_copy_code\fP (\fB_Hash_node_code_cache\fP< true > &__to, const \fB_Hash_node_code_cache\fP< true > &__from) const" .br .ti -1c .RI "const _Hash & \fB_M_hash\fP () const" .br .ti -1c .RI "__hash_code \fB_M_hash_code\fP (const _Key &__k) const" .br .ti -1c .RI "template __hash_code \fB_M_hash_code_tr\fP (const _Kt &__k) const" .br .ti -1c .RI "void \fB_M_store_code\fP (\fB_Hash_node_code_cache\fP< false > &, __hash_code) const" .br .ti -1c .RI "void \fB_M_store_code\fP (\fB_Hash_node_code_cache\fP< true > &__n, __hash_code __c) const" .br .ti -1c .RI "void \fB_M_swap\fP (\fB_Hash_code_base\fP &__x)" .br .in -1c .SS "Friends" .in +1c .ti -1c .RI "struct \fB_Local_iterator_base< _Key, _Value, _ExtractKey, _Hash, _RangeHash, _Unused, false >\fP" .br .in -1c .SH "Detailed Description" .PP .SS "template .br struct std::__detail::_Hash_code_base< _Key, _Value, _ExtractKey, _Hash, _RangeHash, _Unused, __cache_hash_code >" Primary class template _Hash_code_base\&. .PP Encapsulates two policy issues that aren't quite orthogonal\&. (1) the difference between using a ranged hash function and using the combination of a hash function and a range-hashing function\&. In the former case we don't have such things as hash codes, so we have a dummy type as placeholder\&. (2) Whether or not we cache hash codes\&. Caching hash codes is meaningless if we have a ranged hash function\&. .PP We also put the key extraction objects here, for convenience\&. Each specialization derives from one or more of the template parameters to benefit from Ebo\&. This is important as this type is inherited in some cases by the _Local_iterator_base type used to implement local_iterator and const_local_iterator\&. As with any iterator type we prefer to make it as small as possible\&. .PP Definition at line 1187 of file hashtable_policy\&.h\&. .SH "Author" .PP Generated automatically by Doxygen for libstdc++ from the source code\&.