12 #ifndef ZYPP_CORE_NG_BASE_ITERATORS_H_INCLUDED 13 #define ZYPP_CORE_NG_BASE_ITERATORS_H_INCLUDED 38 template<
class Pred,
class Base>
42 using value_type =
typename std::iterator_traits<Base>::value_type;
44 using pointer =
typename std::iterator_traits<Base>::pointer;
45 using reference =
typename std::iterator_traits<Base>::reference;
89 return !(*
this == other);
115 template<
class Pred,
class Base>
FilterIterator(Pred p, Base it, Base end)
Constructs a FilterIterator.
A simple forward iterator that filters a base range according to a predicate.
typename std::iterator_traits< Base >::difference_type difference_type
typename std::iterator_traits< Base >::pointer pointer
bool operator!=(const FilterIterator &other) const
Inequality comparison.
pointer operator->() const
Arrow operator.
typename std::iterator_traits< Base >::reference reference
void satisfy_predicate()
Advances the internal iterator until the predicate is met or _end is reached.
FilterIterator operator++(int)
Post-increment operator.
bool operator==(const FilterIterator &other) const
Equality comparison.
std::forward_iterator_tag iterator_category
FilterIterator< Pred, Base > make_filter_iterator(Pred p, Base it, Base end)
Helper function to deduce types and construct a FilterIterator.
FilterIterator()=default
Default constructor.
reference operator*() const
Dereference operator.
typename std::iterator_traits< Base >::value_type value_type
Base const & base() const
Returns the underlying base iterator at its current position.
FilterIterator & operator++()
Pre-increment operator.