pw::containers::FilteredView provides a view of a container with only elements that match the specified filter. This class is similar to C++20's std::ranges::filter_view.
FilteredView works with any container with an incrementable iterator. The back() function currently requires a bidirectional iterator.
To create a FilteredView, pass a container and a filter predicate, which may be any callable type including a function pointer, lambda, or pw::Function.
Classes | |
| class | iterator |
Public Types | |
| using | const_iterator = iterator |
Public Member Functions | |
| constexpr | FilteredView (const Container &container, const Filter &filter) |
| constexpr | FilteredView (const Container &container, Filter &&filter) |
| constexpr | FilteredView (FilteredView &&)=default |
| constexpr FilteredView & | operator= (FilteredView &&)=default |
| constexpr | FilteredView (const FilteredView &)=delete |
| constexpr FilteredView & | operator= (const FilteredView &)=delete |
| const auto & | operator[] (size_t index) const |
| const auto & | front () const |
| const auto & | back () const |
| size_t | size () const |
| bool | empty () const |
| iterator | begin () const |
| iterator | end () const |