9template<
typename Value,
typename Tag>
25 constexpr auto operator->() const -> Value* {
return util::addressof(**
this); }
26 constexpr auto node() const -> Node& {
return *m_current; }
29 auto*
next = m_current->successor();
43 m_current = m_current->predecessor();
48 return (a.m_at_end == b.m_at_end) && (a.m_current == b.m_current);
51 Node* m_current {
nullptr };
52 bool m_at_end {
true };
#define DI_ASSERT(...)
Definition assert_bool.h:7
constexpr RBTreeIterator(Node *node, bool at_end=false)
Definition rb_tree_iterator.h:18
constexpr void advance_one()
Definition rb_tree_iterator.h:28
constexpr auto operator->() const -> Value *
Definition rb_tree_iterator.h:25
constexpr auto operator*() const -> Value &
Definition rb_tree_iterator.h:21
constexpr friend auto operator==(RBTreeIterator const &a, RBTreeIterator const &b) -> bool
Definition rb_tree_iterator.h:47
constexpr void back_one()
Definition rb_tree_iterator.h:37
constexpr auto node() const -> Node &
Definition rb_tree_iterator.h:26
constexpr RBTreeIterator(Node &node)
Definition rb_tree_iterator.h:19
constexpr auto next
Definition next.h:35
constexpr auto in_place_type
Definition in_place_type.h:12
Definition rb_tree_node.h:9