10 template<
bool IsConst>
13 using iterator_category = std::forward_iterator_tag;
15 using difference_type = uint32_t;
17 using pointer =
typename std::conditional<
21 using reference =
typename std::conditional<
26 return start_ == rhs.start_ && current_ == rhs.current_;
30 return start_ != rhs.start_ || current_ != rhs.current_;
36 template<
bool _IsConst=IsConst>
37 typename std::enable_if<!_IsConst, pointer>::type
42 template<
bool _IsConst=IsConst>
43 typename std::enable_if<!_IsConst, reference>::type
49 template<
bool _IsConst=IsConst>
50 typename std::enable_if<_IsConst, pointer>::type
55 template<
bool _IsConst=IsConst>
56 typename std::enable_if<_IsConst, reference>::type
68 pointer current_ =
nullptr;
69 pointer previous_ =
nullptr;