![]() |
Lumiera 0.pre.04~rc.1
»edit your freedom«
|
#include "lib/iter-adapter.hpp"
Accessing a STL element range through a Lumiera forward iterator, An instance of this iterator adapter is completely self-contained and allows to iterate once over the range of elements, until pos==end.
Thus, a custom container may expose a range of elements of an embedded STL container, without controlling the details of the iteration (as is possible using the more generic IterAdapter).
value_type, reference and pointer Definition at line 798 of file iter-adapter.hpp.
Public Types | |
| using | pointer = _ValTrait::pointer |
| using | reference = _ValTrait::reference |
| using | value_type = std::remove_reference< reference >::type |
Public Member Functions | |
| RangeIter (IT const &start, IT const &end) | |
| RangeIter () | |
| template<class I2 > | |
| RangeIter (I2 const &oIter) | |
| allow copy, when the underlying iterators are compatible or convertible | |
| operator bool () const | |
| reference | operator* () const |
| pointer | operator-> () const |
| RangeIter & | operator++ () |
| bool | isValid () const |
| bool | empty () const |
| const IT & | getPos () const |
| access wrapped STL iterator | |
| const IT & | getEnd () const |
| ENABLE_USE_IN_STD_RANGE_FOR_LOOPS (RangeIter) | |
Private Types | |
| using | _ValTrait = meta::ValueTypeBinding< meta::remove_pointer_t< IT > > |
Private Member Functions | |
| void | _maybe_throw () const |
Private Attributes | |
| IT | p_ |
| IT | e_ |
|
inline |
Definition at line 813 of file iter-adapter.hpp.
|
inline |
Definition at line 818 of file iter-adapter.hpp.
allow copy, when the underlying iterators are compatible or convertible
Definition at line 828 of file iter-adapter.hpp.
|
private |
Definition at line 803 of file iter-adapter.hpp.
| using pointer = _ValTrait::pointer |
Definition at line 806 of file iter-adapter.hpp.
| using reference = _ValTrait::reference |
Definition at line 807 of file iter-adapter.hpp.
| using value_type = std::remove_reference<reference>::type |
value_type Definition at line 810 of file iter-adapter.hpp.
|
inlineexplicit |
Definition at line 834 of file iter-adapter.hpp.
References RangeIter< IT >::isValid().
Here is the call graph for this function:
|
inline |
Definition at line 843 of file iter-adapter.hpp.
References RangeIter< IT >::_maybe_throw(), and RangeIter< IT >::p_.
Here is the call graph for this function:
|
inline |
Definition at line 850 of file iter-adapter.hpp.
References RangeIter< IT >::_maybe_throw().
Here is the call graph for this function:
|
inline |
Definition at line 857 of file iter-adapter.hpp.
References RangeIter< IT >::_maybe_throw(), and RangeIter< IT >::p_.
Here is the call graph for this function:
|
inline |
Definition at line 865 of file iter-adapter.hpp.
References RangeIter< IT >::e_, and RangeIter< IT >::p_.
Referenced by RangeIter< IT >::_maybe_throw(), RangeIter< IT >::empty(), and RangeIter< IT >::operator bool().
Here is the caller graph for this function:
|
inline |
Definition at line 871 of file iter-adapter.hpp.
References RangeIter< IT >::isValid().
Here is the call graph for this function:
|
inline |
access wrapped STL iterator
Definition at line 878 of file iter-adapter.hpp.
References RangeIter< IT >::p_.
Referenced by lib::operator==().
Here is the caller graph for this function:
|
inline |
Definition at line 879 of file iter-adapter.hpp.
References RangeIter< IT >::e_.
| ENABLE_USE_IN_STD_RANGE_FOR_LOOPS | ( | RangeIter< IT > | ) |
|
inlineprivate |
Definition at line 888 of file iter-adapter.hpp.
References RangeIter< IT >::isValid().
Referenced by RangeIter< IT >::operator*(), RangeIter< IT >::operator++(), and RangeIter< IT >::operator->().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Definition at line 800 of file iter-adapter.hpp.
Referenced by RangeIter< IT >::getPos(), RangeIter< IT >::isValid(), RangeIter< IT >::operator*(), and RangeIter< IT >::operator++().
|
private |
Definition at line 801 of file iter-adapter.hpp.
Referenced by RangeIter< IT >::getEnd(), and RangeIter< IT >::isValid().
Inheritance diagram for RangeIter< IT >:
Collaboration diagram for RangeIter< IT >: