![]() |
Lumiera 0.pre.04
»edit your freedom«
|
#include "lib/iter-adapter-ptr-deref.hpp"
wrapper for an existing Iterator type to expose the address of each value yielded.
Typically this can be used to build visitation sequences based on values living within a stable data structure (e.g. unmodifiable STL vector)
Definition at line 221 of file iter-adapter-ptr-deref.hpp.
Public Types | |
| using | pointer = IT::pointer const * |
| using | reference = IT::pointer const & |
| using | value_type = IT::pointer const |
Public Member Functions | |
| ENABLE_USE_IN_STD_RANGE_FOR_LOOPS (AddressExposingIter) | |
| AddressExposingIter (IT srcIter) | |
| AddressExposingIter is always created by wrapping an existing iterator. | |
| operator bool () const | |
| reference | operator* () const |
| _Ptr | operator-> () const |
| AddressExposingIter & | operator++ () |
| bool | isValid () const |
| bool | empty () const |
| IT const & | getBase () const |
| access the wrapped implementation iterator | |
Private Types | |
| using | _Ptr = IT::pointer |
Private Member Functions | |
| void | takeAddress () |
Private Attributes | |
| IT | i_ |
| nested source iterator | |
| _Ptr | currPtr_ |
|
inlineexplicit |
AddressExposingIter is always created by wrapping an existing iterator.
Definition at line 252 of file iter-adapter-ptr-deref.hpp.
References AddressExposingIter< IT >::takeAddress().
Here is the call graph for this function:
|
private |
Definition at line 223 of file iter-adapter-ptr-deref.hpp.
| using pointer = IT::pointer const* |
Definition at line 241 of file iter-adapter-ptr-deref.hpp.
| using reference = IT::pointer const& |
Definition at line 242 of file iter-adapter-ptr-deref.hpp.
| using value_type = IT::pointer const |
Definition at line 243 of file iter-adapter-ptr-deref.hpp.
|
inlineprivate |
Definition at line 231 of file iter-adapter-ptr-deref.hpp.
References AddressExposingIter< IT >::currPtr_, and AddressExposingIter< IT >::i_.
Referenced by AddressExposingIter< IT >::AddressExposingIter(), and AddressExposingIter< IT >::operator++().
Here is the caller graph for this function:| ENABLE_USE_IN_STD_RANGE_FOR_LOOPS | ( | AddressExposingIter< IT > | ) |
|
inlineexplicit |
Definition at line 259 of file iter-adapter-ptr-deref.hpp.
References AddressExposingIter< IT >::isValid().
Here is the call graph for this function:
|
inline |
Definition at line 275 of file iter-adapter-ptr-deref.hpp.
References AddressExposingIter< IT >::currPtr_.
|
inline |
Definition at line 281 of file iter-adapter-ptr-deref.hpp.
References AddressExposingIter< IT >::currPtr_.
|
inline |
Definition at line 287 of file iter-adapter-ptr-deref.hpp.
References AddressExposingIter< IT >::i_, and AddressExposingIter< IT >::takeAddress().
Here is the call graph for this function:
|
inline |
Definition at line 295 of file iter-adapter-ptr-deref.hpp.
References AddressExposingIter< IT >::i_.
Referenced by AddressExposingIter< IT >::empty(), and AddressExposingIter< IT >::operator bool().
Here is the caller graph for this function:
|
inline |
Definition at line 301 of file iter-adapter-ptr-deref.hpp.
References AddressExposingIter< IT >::isValid().
Here is the call graph for this function:
|
inline |
access the wrapped implementation iterator
Definition at line 309 of file iter-adapter-ptr-deref.hpp.
References AddressExposingIter< IT >::i_.
Referenced by lib::operator==().
Here is the caller graph for this function:
|
private |
nested source iterator
Definition at line 225 of file iter-adapter-ptr-deref.hpp.
Referenced by AddressExposingIter< IT >::getBase(), AddressExposingIter< IT >::isValid(), AddressExposingIter< IT >::operator++(), and AddressExposingIter< IT >::takeAddress().
|
mutableprivate |
Definition at line 227 of file iter-adapter-ptr-deref.hpp.
Referenced by AddressExposingIter< IT >::operator*(), AddressExposingIter< IT >::operator->(), and AddressExposingIter< IT >::takeAddress().
Collaboration diagram for AddressExposingIter< IT >: