|
IOSS
2.0
|
#include <robin_hash.h>
Public Types | |
| using | iterator_category = std::forward_iterator_tag |
| using | value_type = const typename robin_hash::value_type |
| using | difference_type = std::ptrdiff_t |
| using | reference = value_type & |
| using | pointer = value_type * |
Public Member Functions | |
| robin_iterator () noexcept | |
| template<bool TIsConst = IsConst, typename std::enable_if< TIsConst >::type * = nullptr> | |
| robin_iterator (const robin_iterator<!TIsConst > &other) noexcept | |
| robin_iterator (const robin_iterator &other)=default | |
| robin_iterator (robin_iterator &&other)=default | |
| robin_iterator & | operator= (const robin_iterator &other)=default |
| robin_iterator & | operator= (robin_iterator &&other)=default |
| const robin_hash::key_type & | key () const |
| template<class U = ValueSelect, typename std::enable_if< has_mapped_type< U >::value &&IsConst >::type * = nullptr> | |
| const U::value_type & | value () const |
| template<class U = ValueSelect, typename std::enable_if< has_mapped_type< U >::value &&!IsConst >::type * = nullptr> | |
| U::value_type & | value () |
| reference | operator* () const |
| pointer | operator-> () const |
| robin_iterator & | operator++ () |
| robin_iterator | operator++ (int) |
Private Types | |
| using | bucket_entry_ptr = typename std::conditional< IsConst, const bucket_entry *, bucket_entry * >::type |
Private Member Functions | |
| robin_iterator (bucket_entry_ptr bucket) noexcept | |
Private Attributes | |
| bucket_entry_ptr | m_bucket |
Friends | |
| class | robin_hash |
| bool | operator== (const robin_iterator &lhs, const robin_iterator &rhs) |
| bool | operator!= (const robin_iterator &lhs, const robin_iterator &rhs) |
The 'operator*()' and 'operator->()' methods return a const reference and const pointer respectively to the stored value type.
In case of a map, to get a mutable reference to the value associated to a key (the '.second' in the stored pair), you have to call 'value()'.
The main reason for this is that if we returned a std::pair<Key, T>& instead of a const std::pair<Key, T>&, the user may modify the key which will put the map in a undefined state.
|
private |
| using tsl::detail_robin_hash::robin_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, StoreHash, GrowthPolicy >::robin_iterator< IsConst >::difference_type = std::ptrdiff_t |
| using tsl::detail_robin_hash::robin_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, StoreHash, GrowthPolicy >::robin_iterator< IsConst >::iterator_category = std::forward_iterator_tag |
| using tsl::detail_robin_hash::robin_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, StoreHash, GrowthPolicy >::robin_iterator< IsConst >::pointer = value_type * |
| using tsl::detail_robin_hash::robin_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, StoreHash, GrowthPolicy >::robin_iterator< IsConst >::reference = value_type & |
| using tsl::detail_robin_hash::robin_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, StoreHash, GrowthPolicy >::robin_iterator< IsConst >::value_type = const typename robin_hash::value_type |
|
inlineexplicitprivatenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
default |
|
default |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
default |
|
default |
|
inline |
|
inline |
|
friend |
|
friend |
|
friend |
|
private |