15 using iterator_category = std::forward_iterator_tag;
16 using value_type = Derived;
17 using difference_type = std::ptrdiff_t;
18 using pointer =
const Derived*;
19 using reference =
const Derived&;
21 constexpr Iterator(uint8_t value) : m_current(value) {}
23 constexpr Derived operator*()
const {
return m_current; }
25 constexpr Iterator& operator++() {
30 constexpr Iterator operator++(
int) {
36 constexpr bool operator==(
const Iterator& other)
const {
return m_current == other.m_current; }
38 constexpr bool operator!=(
const Iterator& other)
const {
return m_current != other.m_current; }