1 #ifndef BALL_LINALG_FORWARDFILTERITERATOR_H
2 #define BALL_LINALG_FORWARDFILTERITERATOR_H
4 #ifndef BALL_LINALG_BASEFILTERITERATOR_H
17 template <
class Predicate,
class IteratorForward>
29 typedef typename IteratorForward::container_type
Container;
31 typedef typename IteratorForward::value_type
DataType;
33 typedef typename IteratorForward::difference_type
Position;
35 typedef typename IteratorForward::traits_type
Traits;
41 typedef typename IteratorForward::pointer
pointer;
43 typedef typename IteratorForward::reference
reference;
161 if (!IteratorForward::isValid())
176 template <
typename Container>
185 template <
class Predicate,
class IteratorForward>
188 if (IteratorForward::isSingular())
193 Base::getTraits().toBegin();
196 template <
class Predicate,
class IteratorForward>
205 template <
class Predicate,
class IteratorForward>
208 if (Base::getTraits().isSingular())
212 return Base::getTraits().isBegin();
215 template <
class Predicate,
class IteratorForward>
218 if (Base::isSingular())
223 Base::getTraits().toEnd();
226 template <
class Predicate,
class IteratorForward>
235 template <
class Predicate,
class IteratorForward>
238 if (Base::isSingular())
242 return Base::getTraits().isEnd();
247 template <
class Predicate,
class IteratorForward>
258 typedef typename IteratorForward::container_type
Container;
260 typedef typename IteratorForward::value_type
DataType;
262 typedef typename IteratorForward::difference_type
Position;
264 typedef typename IteratorForward::traits_type
Traits;
270 typedef typename IteratorForward::pointer
pointer;
390 template <
class Predicate,
class IteratorForward>
391 ForwardFilterIterator<Predicate, IteratorForward>
399 template <
class Predicate,
class IteratorForward>
411 #endif // BALL_KERNEL_FORWARDFILTERITERATOR_H