![]() |
Lumiera 0.pre.04
»edit your freedom«
|
#include "lib/itertools.hpp"
Additional capabilities for FilterIter, allowing to extend the filter condition underway.
This wrapper enables remoulding of the filer functor while in the middle of iteration. When the filter is modified, current head of iteration gets re-evaluated and possible fast-forwarded to the next element satisfying the now extended filter condition.
Definition at line 410 of file itertools.hpp.
Public Member Functions | |
| ExtensibleFilterIter () | |
| template<typename PRED > | |
| ExtensibleFilterIter (IT &&src, PRED initialFilterPredicate) | |
| template<typename PRED > | |
| ExtensibleFilterIter (IT const &src, PRED initialFilterPredicate) | |
| ExtensibleFilterIter (IT &&src) | |
| IT & | underlying () |
| access the unfiltered source iterator in current state | |
| template<typename COND > | |
| ExtensibleFilterIter & | andFilter (COND conjunctiveClause) |
| template<typename COND > | |
| ExtensibleFilterIter & | andNotFilter (COND conjunctiveClause) |
| template<typename COND > | |
| ExtensibleFilterIter & | orFilter (COND disjunctiveClause) |
| template<typename COND > | |
| ExtensibleFilterIter & | orNotFilter (COND disjunctiveClause) |
| template<typename COND > | |
| ExtensibleFilterIter & | setNewFilter (COND entirelyDifferentPredicate) |
| ExtensibleFilterIter & | flipFilter () |
Public Member Functions inherited from FilterIter< IT > | |
| FilterIter () | |
| template<typename PRED > | |
| FilterIter (IT const &src, PRED filterPredicate) | |
| template<typename PRED > | |
| FilterIter (IT &&src, PRED filterPredicate) | |
Public Member Functions inherited from IterTool< FilterCore< IT > > | |
| IterTool (FilterCore< IT > &&setup) | |
| operator bool () const | |
| reference | operator* () const |
| pointer | operator-> () const |
| IterTool & | operator++ () |
| bool | isValid () const |
| bool | empty () const |
Private Types | |
| using | _Filter = FilterCore< IT > |
| using | Val = _Filter::Val |
Private Member Functions | |
| void | reEvaluate () |
Additional Inherited Members | |
Public Types inherited from IterTool< FilterCore< IT > > | |
| using | pointer = CORE::pointer |
| using | reference = CORE::reference |
| using | value_type = CORE::value_type |
Static Public Member Functions inherited from FilterIter< IT > | |
| static bool | acceptAll (_Filter::Val) |
Protected Member Functions inherited from IterTool< FilterCore< IT > > | |
| bool | hasData () const |
| bool | iterate () |
| void | _maybe_throw () const |
Protected Attributes inherited from IterTool< FilterCore< IT > > | |
| FilterCore< IT > | core_ |
|
inline |
Definition at line 424 of file itertools.hpp.
|
inline |
Definition at line 427 of file itertools.hpp.
|
inline |
Definition at line 431 of file itertools.hpp.
|
inline |
Definition at line 435 of file itertools.hpp.
|
private |
Definition at line 413 of file itertools.hpp.
|
private |
Definition at line 414 of file itertools.hpp.
|
inlineprivate |
Definition at line 417 of file itertools.hpp.
References IterTool< FilterCore< IT > >::core_, and IterTool< FilterCore< IT > >::hasData().
Referenced by ExtensibleFilterIter< IT >::andFilter(), ExtensibleFilterIter< IT >::andNotFilter(), ExtensibleFilterIter< IT >::flipFilter(), ExtensibleFilterIter< IT >::orFilter(), ExtensibleFilterIter< IT >::orNotFilter(), and ExtensibleFilterIter< IT >::setNewFilter().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
access the unfiltered source iterator in current state
Definition at line 445 of file itertools.hpp.
References IterTool< FilterCore< IT > >::core_.
|
inline |
Definition at line 453 of file itertools.hpp.
References IterTool< FilterCore< IT > >::core_, and ExtensibleFilterIter< IT >::reEvaluate().
Here is the call graph for this function:
|
inline |
Definition at line 468 of file itertools.hpp.
References IterTool< FilterCore< IT > >::core_, and ExtensibleFilterIter< IT >::reEvaluate().
Here is the call graph for this function:
|
inline |
Definition at line 483 of file itertools.hpp.
References IterTool< FilterCore< IT > >::core_, and ExtensibleFilterIter< IT >::reEvaluate().
Here is the call graph for this function:
|
inline |
Definition at line 498 of file itertools.hpp.
References IterTool< FilterCore< IT > >::core_, and ExtensibleFilterIter< IT >::reEvaluate().
Here is the call graph for this function:
|
inline |
Definition at line 514 of file itertools.hpp.
References IterTool< FilterCore< IT > >::core_, and ExtensibleFilterIter< IT >::reEvaluate().
Here is the call graph for this function:
|
inline |
Definition at line 522 of file itertools.hpp.
References IterTool< FilterCore< IT > >::core_, and ExtensibleFilterIter< IT >::reEvaluate().
Here is the call graph for this function:
Inheritance diagram for ExtensibleFilterIter< IT >:
Collaboration diagram for ExtensibleFilterIter< IT >: