Internal storage type for HashTable entries. More...
Public Types | |
typedef K | key_type |
Type of key. More... | |
typedef V | mapped_type |
Type of content. More... | |
Public Member Functions | |
HashTablePair (const HashTablePair &)=delete | |
No copy construct. More... | |
void | operator= (const HashTablePair &)=delete |
No copy assignment. More... | |
template<class... Args> | |
HashTablePair (HashTablePair *next, const key_type &key, Args &&... args) | |
Construct from next pointer, key, contents. More... | |
const key_type & | key () const noexcept |
The key. More... | |
const mapped_type & | cval () const noexcept |
Const access to the mapped value. More... | |
const mapped_type & | val () const noexcept |
Const access to the mapped value. More... | |
mapped_type & | val () noexcept |
Non-const access to the mapped value. More... | |
bool | operator< (const HashTablePair &rhs) const |
Compare keys. More... | |
template<class TypeT = V> | |
std::enable_if<(std::is_pointer< TypeT >::value||Detail::isPointerLike< TypeT >::value), void >::type | print (Ostream &os) const |
Write (key, val) pair - for pointer types. More... | |
template<class TypeT = V> | |
std::enable_if<(!std::is_pointer< TypeT >::value &&!Detail::isPointerLike< TypeT >::value), void >::type | print (Ostream &os) const |
Write (key, val) pair - for non-pointer types. More... | |
Static Public Member Functions | |
static constexpr bool | stores_value () noexcept |
This class stores a value. More... | |
Public Attributes | |
const K | key_ |
The lookup key. More... | |
V | val_ |
The mapped data. More... | |
HashTablePair * | next_ |
Addressing (next in collision list) More... | |
Internal storage type for HashTable entries.
Internal storage type for HashTable.
Comprises a (K,V) tuple and a linked-list entry for hash collisions. Could store key/val as std::pair, but no particular advantage unless the iterator dereference type changes.
Definition at line 79 of file HashTableDetail.H.
Type of key.
Definition at line 84 of file HashTableDetail.H.
typedef V mapped_type |
Type of content.
Definition at line 87 of file HashTableDetail.H.
|
delete |
No copy construct.
|
inline |
Construct from next pointer, key, contents.
Definition at line 121 of file HashTableDetail.H.
|
inlinestaticconstexprnoexcept |
This class stores a value.
Definition at line 90 of file HashTableDetail.H.
|
delete |
No copy assignment.
|
inlinenoexcept |
|
inlinenoexcept |
Const access to the mapped value.
Definition at line 143 of file HashTableDetail.H.
References HashTablePair< K, V >::val_.
|
inlinenoexcept |
Const access to the mapped value.
Definition at line 149 of file HashTableDetail.H.
References HashTablePair< K, V >::val_.
|
inlinenoexcept |
Non-const access to the mapped value.
Definition at line 155 of file HashTableDetail.H.
References HashTablePair< K, V >::val_.
|
inline |
Compare keys.
Definition at line 162 of file HashTableDetail.H.
References HashTablePair< K, V >::key_.
|
inline |
Write (key, val) pair - for pointer types.
Definition at line 177 of file HashTableDetail.H.
References HashTablePair< K, V >::key_, os(), and HashTablePair< K, V >::val_.
|
inline |
Write (key, val) pair - for non-pointer types.
Definition at line 197 of file HashTableDetail.H.
References HashTablePair< K, V >::key_, os(), and HashTablePair< K, V >::val_.
const K key_ |
The lookup key.
Definition at line 99 of file HashTableDetail.H.
Referenced by HashTablePair< K, V >::key(), HashTablePair< K, V >::operator<(), and HashTablePair< K, V >::print().
V val_ |
The mapped data.
Definition at line 102 of file HashTableDetail.H.
Referenced by HashTablePair< K, V >::cval(), HashTablePair< K, V >::print(), and HashTablePair< K, V >::val().
HashTablePair* next_ |
Addressing (next in collision list)
Definition at line 105 of file HashTableDetail.H.