19namespace pw::containers {
33template <
typename Impl,
typename Iterator,
typename ValueType>
36 using difference_type = std::ptrdiff_t;
37 using value_type = ValueType;
38 using pointer = ValueType*;
39 using reference = ValueType&;
40 using iterator_category = std::bidirectional_iterator_tag;
47 return static_cast<Impl&
>(*this);
50 Impl operator++(
int) {
51 Impl original =
static_cast<const Impl&
>(*this);
58 return static_cast<Impl&
>(*this);
61 Impl operator--(
int) {
62 Impl original =
static_cast<const Impl&
>(*this);
68 return iterator_ == other.iterator_;
72 return !(*
this == other);
80 const auto& value()
const {
return *iterator_; }
81 const auto* ptr()
const {
return iterator_.operator->(); }
Definition: wrapped_iterator.h:34