|
filter_iterator_base & | operator++ () |
|
filter_iterator_base< WrappedIteratorT, PredicateT, IterTag > & | operator+= (difference_type n) |
|
filter_iterator_base< WrappedIteratorT, PredicateT, IterTag > & | operator-= (difference_type n) |
|
difference_type | operator- (const filter_iterator_base< WrappedIteratorT, PredicateT, IterTag > &RHS) const |
|
filter_iterator_base< WrappedIteratorT, PredicateT, IterTag > & | operator++ () |
|
filter_iterator_base< WrappedIteratorT, PredicateT, IterTag > & | operator-- () |
|
bool | operator== (const filter_iterator_base< WrappedIteratorT, PredicateT, IterTag > &RHS) const |
|
bool | operator< (const filter_iterator_base< WrappedIteratorT, PredicateT, IterTag > &RHS) const |
|
typename std::conditional< std::is_same< typename std::iterator_traits< WrappedIteratorT >::value_type, typename std::iterator_traits< WrappedIteratorT >::value_type >::value, typename std::iterator_traits< WrappedIteratorT >::reference, typename std::iterator_traits< WrappedIteratorT >::value_type & >::type | operator* () const |
|
filter_iterator_base< WrappedIteratorT, PredicateT, IterTag > | operator+ (typename std::iterator_traits< WrappedIteratorT >::difference_type n) const |
|
filter_iterator_base< WrappedIteratorT, PredicateT, IterTag > | operator- (typename std::iterator_traits< WrappedIteratorT >::difference_type n) const |
|
filter_iterator_base< WrappedIteratorT, PredicateT, IterTag > & | operator++ () |
|
filter_iterator_base< WrappedIteratorT, PredicateT, IterTag > | operator++ (int) |
|
filter_iterator_base< WrappedIteratorT, PredicateT, IterTag > & | operator-- () |
|
filter_iterator_base< WrappedIteratorT, PredicateT, IterTag > | operator-- (int) |
|
bool | operator!= (const filter_iterator_base< WrappedIteratorT, PredicateT, IterTag > &RHS) const |
|
bool | operator> (const filter_iterator_base< WrappedIteratorT, PredicateT, IterTag > &RHS) const |
|
bool | operator<= (const filter_iterator_base< WrappedIteratorT, PredicateT, IterTag > &RHS) const |
|
bool | operator>= (const filter_iterator_base< WrappedIteratorT, PredicateT, IterTag > &RHS) const |
|
typename std::conditional< std::is_same< typename std::iterator_traits< WrappedIteratorT >::value_type, typename std::iterator_traits< WrappedIteratorT >::value_type >::value, typename std::iterator_traits< WrappedIteratorT >::pointer, typename std::iterator_traits< WrappedIteratorT >::value_type *>::type | operator-> () |
|
typename std::conditional< std::is_same< typename std::iterator_traits< WrappedIteratorT >::value_type, typename std::iterator_traits< WrappedIteratorT >::value_type >::value, typename std::iterator_traits< WrappedIteratorT >::pointer, typename std::iterator_traits< WrappedIteratorT >::value_type *>::type | operator-> () const |
|
ReferenceProxy | operator[] (typename std::iterator_traits< WrappedIteratorT >::difference_type n) |
|
ReferenceProxy | operator[] (typename std::iterator_traits< WrappedIteratorT >::difference_type n) const |
|
template<typename WrappedIteratorT, typename PredicateT, typename IterTag>
class llvm::filter_iterator_base< WrappedIteratorT, PredicateT, IterTag >
An iterator adaptor that filters the elements of given inner iterators.
The predicate parameter should be a callable object that accepts the wrapped iterator's reference type and returns a bool. When incrementing or decrementing the iterator, it will call the predicate on each element and skip any where it returns false.
int A[] = { 1, 2, 3, 4 };
Note: filter_iterator_base implements support for forward iteration. filter_iterator_impl exists to provide support for bidirectional iteration, conditional on whether the wrapped iterator supports it.
Definition at line 309 of file STLExtras.h.