Wraps an iterator with another iterator. This is helpful for creating an iterator that yields items derived from the original iterator's type. For example, the derived iterator might return a member of or a value calculated from the original iterator's value.
Classes inherit from this and provide operator* and operator-> as appropriate.
Public Types | |
| using | difference_type = std::ptrdiff_t |
| using | value_type = ValueType |
| using | pointer = ValueType * |
| using | reference = ValueType & |
| using | iterator_category = std::bidirectional_iterator_tag |
Public Member Functions | |
| constexpr | WrappedIterator (const WrappedIterator &)=default |
| constexpr WrappedIterator & | operator= (const WrappedIterator &)=default |
| Impl & | operator++ () |
| Impl | operator++ (int) |
| Impl & | operator-- () |
| Impl | operator-- (int) |
| constexpr bool | operator== (const WrappedIterator &other) const |
| constexpr bool | operator!= (const WrappedIterator &other) const |
Protected Member Functions | |
| constexpr | WrappedIterator (const Iterator &it) |
| const auto & | value () const |
| const auto * | ptr () const |