|
BDE 4.39.x Production Release
|
#include <bslstl_hashtable.h>
This class holds all the parameterized parts of a HashTable class, efficiently exploiting the empty base optimization without adding unforeseen namespace associations to the HashTable class itself due to the structural inheritance.
Public Types | |
| typedef HashTable< KEY_CONFIG, HASHER, COMPARATOR, ALLOCATOR > | HashTableType |
| typedef HashTableType::AllocatorTraits::template rebind_traits< NodeType > | ReboundTraits |
| typedef ReboundTraits::allocator_type | NodeAllocator |
| typedef BidirectionalNodePool< typename HashTableType::ValueType, NodeAllocator > | NodeFactory |
Public Member Functions | |
| HashTable_ImplParameters (const ALLOCATOR &allocator) | |
| HashTable_ImplParameters (const HASHER &hash, const COMPARATOR &compare, const ALLOCATOR &allocator) | |
| HashTable_ImplParameters (const HashTable_ImplParameters &original, const ALLOCATOR &allocator) | |
| HashTable_ImplParameters (bslmf::MovableRef< HashTable_ImplParameters > original) | |
| NodeFactory & | nodeFactory () |
| void | quickSwapExchangeAllocators (HashTable_ImplParameters *other) |
| void | quickSwapRetainAllocators (HashTable_ImplParameters *other) |
| const BaseComparator & | comparator () const |
| template<class DEDUCED_KEY > | |
| std::size_t | hashCodeForKey (DEDUCED_KEY &key) const |
| template<class LOOKUP_KEY > | |
| bsl::enable_if< BloombergLP::bslmf::IsTransparentPredicate< HASHER, LOOKUP_KEY >::value, std::size_t >::type | hashCodeForTransparentKey (const LOOKUP_KEY &key) const |
| const BaseHasher & | hasher () const |
| const NodeFactory & | nodeFactory () const |
| const COMPARATOR & | originalComparator () const |
| const HASHER & | originalHasher () const |
| typedef HashTable<KEY_CONFIG, HASHER, COMPARATOR, ALLOCATOR> bslstl::HashTable_ImplParameters< KEY_CONFIG, HASHER, COMPARATOR, ALLOCATOR >::HashTableType |
| typedef ReboundTraits::allocator_type bslstl::HashTable_ImplParameters< KEY_CONFIG, HASHER, COMPARATOR, ALLOCATOR >::NodeAllocator |
| typedef BidirectionalNodePool<typename HashTableType::ValueType, NodeAllocator> bslstl::HashTable_ImplParameters< KEY_CONFIG, HASHER, COMPARATOR, ALLOCATOR >::NodeFactory |
| typedef HashTableType::AllocatorTraits::template rebind_traits<NodeType> bslstl::HashTable_ImplParameters< KEY_CONFIG, HASHER, COMPARATOR, ALLOCATOR >::ReboundTraits |
|
inlineexplicit |
Create a HashTable_ImplParameters object having default constructed HASHER and COMPARATOR functors, and using the specified allocator to provide a BidirectionalNodePool.
|
inline |
Create a HashTable_ImplParameters object having the specified hash and compare functors, and using the specified allocator to provide a BidirectionalNodePool.
|
inline |
Create a HashTable_ImplParameters object having the same hasher and comparator attributes as the specified original, and providing a BidirectionalNodePool using the specified allocator.
|
inline |
Create a HashTable_ImplParameters object with a copy of the hasher and comparator attributes associated with the specified original parameters object, and adopting all outstanding memory allocations and the allocator associated with original.
original is left in a valid but unspecified state.
|
inline |
Return a reference offering non-modifiable access to the comparator functor owned by this object.
|
inline |
Return the hash code for the specified key using a copy of the hash functor supplied at construction.
const_cast issues in the case that the stored hash functor has a function call operator that is not declared as const.
|
inline |
Return the hash code for the specified key using a copy of the hash functor supplied at construction.
const_cast issues in the case that the stored hash functor has a function call operator that is not declared as const.
|
inline |
Return a reference offering non-modifiable access to the hasher functor owned by this object.
|
inline |
Return a reference offering modifiable access to the nodeFactory owned by this object.
|
inline |
Return a reference offering non-modifiable access to the nodeFactory owned by this object.
|
inline |
Return a reference offering non-modifiable access to the comparator functor owned by this object.
|
inline |
Return a reference offering non-modifiable access to the hasher functor owned by this object.
|
inline |
Efficiently exchange the value, functor, and allocator of this object with those of the specified other object. This method provides the no-throw exception-safety guarantee.
|
inline |
Efficiently exchange the value and functors this object with those of the specified other object. This method provides the no-throw exception-safety guarantee.
other.