8 #ifndef RETDEC_UTILS_FILTER_ITERATOR_H
9 #define RETDEC_UTILS_FILTER_ITERATOR_H
39 template<
typename Iterator>
43 using value_type =
typename std::iterator_traits<Iterator>::value_type;
44 using reference =
typename std::iterator_traits<Iterator>::reference;
45 using pointer =
typename std::iterator_traits<Iterator>::pointer;
58 template<
typename Predicate>
78 template<
typename Container,
typename Predicate>
109 return !(*
this == other);
An adapter of an iterator range in which some elements of the range are skipped.
Definition: filter_iterator.h:40
FilterIterator & operator=(const FilterIterator &other)=default
FilterIterator(Iterator begin, Iterator end, Predicate &&predicate)
Creates an iterator over the given range.
Definition: filter_iterator.h:59
pointer operator->() const
Definition: filter_iterator.h:100
bool operator!=(const FilterIterator &other) const
Definition: filter_iterator.h:108
typename std::iterator_traits< Iterator >::pointer pointer
Definition: filter_iterator.h:45
bool operator==(const FilterIterator &other) const
Definition: filter_iterator.h:104
reference operator*() const
Definition: filter_iterator.h:96
std::forward_iterator_tag iterator_category
Definition: filter_iterator.h:47
typename std::iterator_traits< Iterator >::difference_type difference_type
Definition: filter_iterator.h:46
void skipElementsWhilePredicateIsFalse()
Definition: filter_iterator.h:119
FilterIterator & operator++()
Definition: filter_iterator.h:112
Iterator current
Definition: filter_iterator.h:126
~FilterIterator()=default
typename std::iterator_traits< Iterator >::reference reference
Definition: filter_iterator.h:44
typename std::iterator_traits< Iterator >::value_type value_type
Definition: filter_iterator.h:43
std::function< bool(reference)> predicate
Definition: filter_iterator.h:128
FilterIterator(FilterIterator &&other)=default
FilterIterator(const FilterIterator &other)=default
FilterIterator(Iterator end)
Creates an end iterator.
Definition: filter_iterator.h:86
FilterIterator(Container &container, Predicate &&predicate)
Creates an iterator over the given container.
Definition: filter_iterator.h:79
Iterator end
Definition: filter_iterator.h:127
Definition: archive_wrapper.h:19