Lumiera  0.pre.03
»edit your freedom«
IndexIter< CON, PTR > Class Template Reference

#include "lib/index-iter.hpp"

Description

template<class CON, typename PTR = CON*>
class lib::IndexIter< CON, PTR >

Subscript-index based access to a container, packaged as iterator.

This is a copyable and assignable value object (handle), referring to some data container maintained elsewhere. The container must provide an operator[]. This handle can be used as »Lumiera Forward Iterator«, but with the additional capability to retrieve and re-set the current index position.

Template Parameters
CONa container with operator[] and a function size()
PTRhow to refer to this container; can be defined as smart-ptr, additionally allowing to manage this container automatically.
Remarks
while a default constructed IndexIter and some exhausted IndexIter compare equal, only the latter can be re-set into active state.

Definition at line 112 of file index-iter.hpp.

Public Member Functions

 IndexIter (CON &container)
 
 IndexIter (PTR pContainer)
 
size_t getIDX () const
 
void setIDX (size_t newIDX)
 
- Public Member Functions inherited from IterStateWrapper< ST, T >
 IterStateWrapper (ST &&initialState)
 
 IterStateWrapper (ST const &initialState)
 
bool empty () const
 
 ENABLE_USE_IN_STD_RANGE_FOR_LOOPS (IterStateWrapper)
 
bool isValid () const
 
 operator bool () const
 
operator* () const
 
IterStateWrapperoperator++ ()
 
pointer operator-> () const
 

Private Types

using _Cor = iter::IndexAccessCore< PTR >
 
using _Par = typename _Cor::IterWrapper
 

Additional Inherited Members

- Public Types inherited from IterStateWrapper< ST, T >
using pointer = typename meta::RefTraits< T >::Pointer
 
using reference = typename meta::RefTraits< T >::Reference
 
using value_type = typename meta::RefTraits< T >::Value
 
- Protected Member Functions inherited from IterStateWrapper< ST, T >
void __throw_if_empty () const
 
ST & stateCore ()
 allow derived classes to access state representation
 
ST const & stateCore () const
 
+ Inheritance diagram for IndexIter< CON, PTR >:
+ Collaboration diagram for IndexIter< CON, PTR >:

The documentation for this class was generated from the following file: