mirror of
https://github.com/boostorg/intrusive.git
synced 2025-08-02 14:04:36 +02:00
Return tree_iterator reference in tree traversal functions to allow easy chaining (e.g. i.go_parent().go_left().go_right())
This commit is contained in:
@@ -106,14 +106,23 @@ class tree_iterator
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void go_left()
|
tree_iterator& go_left()
|
||||||
{ members_.nodeptr_ = node_traits::get_left(members_.nodeptr_); }
|
{
|
||||||
|
members_.nodeptr_ = node_traits::get_left(members_.nodeptr_);
|
||||||
|
return static_cast<tree_iterator&> (*this);
|
||||||
|
}
|
||||||
|
|
||||||
void go_right()
|
tree_iterator& go_right()
|
||||||
{ members_.nodeptr_ = node_traits::get_right(members_.nodeptr_); }
|
{
|
||||||
|
members_.nodeptr_ = node_traits::get_right(members_.nodeptr_);
|
||||||
|
return static_cast<tree_iterator&> (*this);
|
||||||
|
}
|
||||||
|
|
||||||
void go_parent()
|
tree_iterator& go_parent()
|
||||||
{ members_.nodeptr_ = node_traits::get_parent(members_.nodeptr_); }
|
{
|
||||||
|
members_.nodeptr_ = node_traits::get_parent(members_.nodeptr_);
|
||||||
|
return static_cast<tree_iterator&> (*this);
|
||||||
|
}
|
||||||
|
|
||||||
operator unspecified_bool_type() const
|
operator unspecified_bool_type() const
|
||||||
{ return members_.nodeptr_ ? &tree_iterator::unspecified_bool_type_func : 0; }
|
{ return members_.nodeptr_ ? &tree_iterator::unspecified_bool_type_func : 0; }
|
||||||
|
Reference in New Issue
Block a user