20 #ifndef FILTERITERATOR_H
21 #define FILTERITERATOR_H
23 #include <tulip/Iterator.h>
24 #include <tulip/StlIterator.h>
25 #include <tulip/memorypool.h>
45 template <
typename TYPE,
typename FILTER>
68 _curVal = _it->
next();
70 if (_filter(_curVal)) {
84 template <
typename TYPE,
typename FILTER>
85 class MPFilterIterator :
public FilterIterator<TYPE, FILTER>,
86 public MemoryPool<MPFilterIterator<TYPE, FILTER>> {
88 MPFilterIterator(Iterator<TYPE> *it, FILTER filter) : FilterIterator<TYPE, FILTER>(it, filter) {}
105 template <
typename TYPE,
typename FILTER>
107 return new MPFilterIterator<TYPE, FILTER>(it, filter);
124 template <
typename Container,
typename FILTER>
125 typename std::enable_if<has_const_iterator<Container>::value,
126 MPFilterIterator<typename Container::value_type, FILTER>
129 return new MPFilterIterator<typename Container::value_type, FILTER>(
stlIterator(stlContainer),
133 #endif // FILTERITERATOR_H