Internally used base for iterator and const_iterator. More...
Public Types | |
using | iterator_category = std::forward_iterator_tag |
using | difference_type = this_type::difference_type |
using | table_type = typename std::conditional< Const, const this_type, this_type >::type |
The HashTable container type. More... | |
using | node_type = typename std::conditional< Const, const this_type::node_type, this_type::node_type >::type |
The node-type being addressed. More... | |
using | key_type = this_type::key_type |
The key type. More... | |
using | mapped_type = typename std::conditional< Const, const this_type::mapped_type, this_type::mapped_type >::type |
The object type being addressed. More... | |
Public Member Functions | |
bool | good () const noexcept |
True if iterator points to an entry. More... | |
bool | found () const noexcept |
True if iterator points to an entry - same as good() More... | |
const Key & | key () const |
The key associated with the iterator. More... | |
Ostream & | print (Ostream &os) const |
Write the (key, val) pair. More... | |
operator bool () const noexcept | |
True if iterator points to an entry. More... | |
template<bool Any> | |
bool | operator== (const Iterator< Any > &iter) const noexcept |
Compare hash-entry element pointers. More... | |
template<bool Any> | |
bool | operator!= (const Iterator< Any > &iter) const noexcept |
Protected Member Functions | |
constexpr | Iterator () noexcept |
Default construct. Also the same as the end iterator. More... | |
Iterator (table_type *tbl) | |
Construct from begin of hash-table. More... | |
Iterator (table_type *tbl, const Key &key) | |
Construct by finding key in hash table. More... | |
void | increment () |
Increment to the next position. More... | |
template<bool Any> | |
operator const Iterator< Any > & () const | |
Permit explicit cast to the other (const/non-const) iterator. More... | |
Protected Attributes | |
node_type * | entry_ |
The selected entry. More... | |
table_type * | container_ |
The hash-table container being iterated on. More... | |
label | index_ |
Index within the hash-table data. More... | |
Friends | |
class | HashTable |
Internally used base for iterator and const_iterator.
The iterator base for HashTable (internal use only).
Note: data and functions are protected, to allow reuse by iterator and prevent most external usage. iterator and const_iterator have the same size, allowing us to reinterpret_cast between them (if desired)
Definition at line 812 of file HashTable.H.
using iterator_category = std::forward_iterator_tag |
Definition at line 839 of file HashTable.H.
Definition at line 840 of file HashTable.H.
using table_type = typename std::conditional < Const, const this_type, this_type >::type |
The HashTable container type.
Definition at line 850 of file HashTable.H.
using node_type = typename std::conditional < Const, const this_type::node_type, this_type::node_type >::type |
The node-type being addressed.
Definition at line 860 of file HashTable.H.
using key_type = this_type::key_type |
The key type.
Definition at line 865 of file HashTable.H.
using mapped_type = typename std::conditional < Const, const this_type::mapped_type, this_type::mapped_type >::type |
The object type being addressed.
Definition at line 875 of file HashTable.H.
|
inlineprotectednoexcept |
Default construct. Also the same as the end iterator.
Definition at line 26 of file HashTableIterI.H.
|
inlineexplicitprotected |
Construct from begin of hash-table.
Definition at line 37 of file HashTableIterI.H.
|
protected |
Construct by finding key in hash table.
Definition at line 26 of file HashTableIter.C.
|
inlineprotected |
Increment to the next position.
Definition at line 72 of file HashTableIterI.H.
Permit explicit cast to the other (const/non-const) iterator.
Definition at line 938 of file HashTable.H.
|
inlinenoexcept |
True if iterator points to an entry.
This can be used directly instead of comparing to end()
Definition at line 953 of file HashTable.H.
|
inlinenoexcept |
True if iterator points to an entry - same as good()
Definition at line 958 of file HashTable.H.
|
inline |
The key associated with the iterator.
Definition at line 963 of file HashTable.H.
|
inline |
Write the (key, val) pair.
Definition at line 109 of file HashTableIterI.H.
|
inlineexplicitnoexcept |
True if iterator points to an entry.
This can be used directly instead of comparing to end()
Definition at line 978 of file HashTable.H.
Compare hash-entry element pointers.
Independent of const/non-const access
Definition at line 986 of file HashTable.H.
|
inlinenoexcept |
Definition at line 992 of file HashTable.H.
|
friend |
Definition at line 906 of file HashTable.H.
|
protected |
The selected entry.
MUST be the first member for easy comparison between iterators and to support reinterpret_cast from nullObject
Definition at line 888 of file HashTable.H.
Referenced by HashTable< T, Key, Hash >::Iterator< true >::found(), HashTable< T, Key, Hash >::Iterator< true >::good(), HashTable< T, Key, Hash >::Iterator< true >::key(), HashTable< T, Key, Hash >::Iterator< true >::operator bool(), HashTable< T, Key, Hash >::Iterator< true >::operator!=(), and HashTable< T, Key, Hash >::Iterator< true >::operator==().
|
protected |
The hash-table container being iterated on.
Uses pointer for default copy/assignment
Definition at line 895 of file HashTable.H.
|
protected |
Index within the hash-table data.
A signed value, since iterator_erase() needs a negative value to mark the position.
Definition at line 903 of file HashTable.H.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.