Lumiera 0.pre.04
»edit your freedom«
Loading...
Searching...
No Matches
IterTool< CORE > Class Template Reference

#include "lib/itertools.hpp"

Description

template<class CORE>
class lib::IterTool< CORE >

Standard functionality to build up any iterator tool.

IterTool exposes the frontend functions necessary to comply to the Lumiera Forward Iterator concept. The protected part provides the iteration control building blocks to drive the processing/filter logic, which is implemented in the specific core for each tool.

Definition at line 155 of file itertools.hpp.

Public Types

using pointer = CORE::pointer
 
using reference = CORE::reference
 
using value_type = CORE::value_type
 

Public Member Functions

 IterTool (CORE &&setup)
 
 operator bool () const
 
reference operator* () const
 
pointer operator-> () const
 
IterTooloperator++ ()
 
bool isValid () const
 
bool empty () const
 

Protected Member Functions

bool hasData () const
 
bool iterate ()
 
void _maybe_throw () const
 

Protected Attributes

CORE core_
 

Constructor & Destructor Documentation

◆ IterTool()

template<class CORE >
IterTool ( CORE &&  setup)
inline

Definition at line 194 of file itertools.hpp.

References IterTool< CORE >::hasData().

+ Here is the call graph for this function:

Member Typedef Documentation

◆ pointer

template<class CORE >
using pointer = CORE::pointer

Definition at line 189 of file itertools.hpp.

◆ reference

template<class CORE >
using reference = CORE::reference

Definition at line 190 of file itertools.hpp.

◆ value_type

template<class CORE >
using value_type = CORE::value_type

Definition at line 191 of file itertools.hpp.

Member Function Documentation

◆ hasData()

template<class CORE >
bool hasData ( ) const
inlineprotected

Definition at line 162 of file itertools.hpp.

References IterTool< CORE >::core_.

Referenced by IterTool< CORE >::IterTool(), and IterTool< CORE >::isValid().

+ Here is the caller graph for this function:

◆ iterate()

template<class CORE >
bool iterate ( )
inlineprotected

Definition at line 169 of file itertools.hpp.

References IterTool< CORE >::core_.

Referenced by IterTool< CORE >::operator++().

+ Here is the caller graph for this function:

◆ _maybe_throw()

template<class CORE >
void _maybe_throw ( ) const
inlineprotected

Definition at line 180 of file itertools.hpp.

References IterTool< CORE >::isValid().

Referenced by IterTool< CORE >::operator*(), IterTool< CORE >::operator++(), and IterTool< CORE >::operator->().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ operator bool()

template<class CORE >
operator bool ( ) const
inlineexplicit

Definition at line 201 of file itertools.hpp.

References IterTool< CORE >::isValid().

+ Here is the call graph for this function:

◆ operator*()

template<class CORE >
reference operator* ( ) const
inline

Definition at line 211 of file itertools.hpp.

References IterTool< CORE >::_maybe_throw(), and IterTool< CORE >::core_.

+ Here is the call graph for this function:

◆ operator->()

template<class CORE >
pointer operator-> ( ) const
inline

Definition at line 218 of file itertools.hpp.

References IterTool< CORE >::_maybe_throw(), and IterTool< CORE >::core_.

+ Here is the call graph for this function:

◆ operator++()

template<class CORE >
IterTool & operator++ ( )
inline

Definition at line 225 of file itertools.hpp.

References IterTool< CORE >::_maybe_throw(), and IterTool< CORE >::iterate().

+ Here is the call graph for this function:

◆ isValid()

template<class CORE >
bool isValid ( ) const
inline

Definition at line 233 of file itertools.hpp.

References IterTool< CORE >::hasData().

Referenced by IterTool< CORE >::_maybe_throw(), IterTool< CORE >::empty(), and IterTool< CORE >::operator bool().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ empty()

template<class CORE >
bool empty ( ) const
inline

Definition at line 239 of file itertools.hpp.

References IterTool< CORE >::isValid().

+ Here is the call graph for this function:

Member Data Documentation

◆ core_

template<class CORE >
CORE core_
protected
+ Inheritance diagram for IterTool< CORE >:
+ Collaboration diagram for IterTool< CORE >:

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