|
WPILibC++
2020.3.2
|
An iterator adaptor that filters the elements of given inner iterators. More...
#include <STLExtras.h>
Public Member Functions | |
| filter_iterator_base & | operator++ () |
| DerivedT & | operator++ () |
Public Member Functions inherited from wpi::iterator_adaptor_base< filter_iterator_base< WrappedIteratorT, PredicateT, IterTag >, WrappedIteratorT, std::common_type< IterTag, std::iterator_traits< WrappedIteratorT >::iterator_category >::type > | |
| 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 |
Public Member Functions inherited from wpi::iterator_facade_base< filter_iterator_base< WrappedIteratorT, PredicateT, IterTag >, std::common_type< IterTag, std::iterator_traits< WrappedIteratorT >::iterator_category >::type, typename std::iterator_traits< WrappedIteratorT >::value_type, typename std::iterator_traits< WrappedIteratorT >::difference_type, 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, 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 > | |
| 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 |
Protected Member Functions | |
| void | findNextValid () |
| filter_iterator_base (WrappedIteratorT Begin, WrappedIteratorT End, PredicateT Pred) | |
Protected Member Functions inherited from wpi::iterator_adaptor_base< filter_iterator_base< WrappedIteratorT, PredicateT, IterTag >, WrappedIteratorT, std::common_type< IterTag, std::iterator_traits< WrappedIteratorT >::iterator_category >::type > | |
| iterator_adaptor_base (WrappedIteratorT u) | |
| const WrappedIteratorT & | wrapped () const |
Protected Attributes | |
| WrappedIteratorT | End |
| PredicateT | Pred |
Protected Attributes inherited from wpi::iterator_adaptor_base< filter_iterator_base< WrappedIteratorT, PredicateT, IterTag >, WrappedIteratorT, std::common_type< IterTag, std::iterator_traits< WrappedIteratorT >::iterator_category >::type > | |
| WrappedIteratorT | I |
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.
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.