mirror of
https://github.com/boostorg/intrusive.git
synced 2025-08-01 21:44:38 +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;
|
||||
}
|
||||
|
||||
void go_left()
|
||||
{ members_.nodeptr_ = node_traits::get_left(members_.nodeptr_); }
|
||||
tree_iterator& go_left()
|
||||
{
|
||||
members_.nodeptr_ = node_traits::get_left(members_.nodeptr_);
|
||||
return static_cast<tree_iterator&> (*this);
|
||||
}
|
||||
|
||||
void go_right()
|
||||
{ members_.nodeptr_ = node_traits::get_right(members_.nodeptr_); }
|
||||
tree_iterator& go_right()
|
||||
{
|
||||
members_.nodeptr_ = node_traits::get_right(members_.nodeptr_);
|
||||
return static_cast<tree_iterator&> (*this);
|
||||
}
|
||||
|
||||
void go_parent()
|
||||
{ members_.nodeptr_ = node_traits::get_parent(members_.nodeptr_); }
|
||||
tree_iterator& go_parent()
|
||||
{
|
||||
members_.nodeptr_ = node_traits::get_parent(members_.nodeptr_);
|
||||
return static_cast<tree_iterator&> (*this);
|
||||
}
|
||||
|
||||
operator unspecified_bool_type() const
|
||||
{ return members_.nodeptr_ ? &tree_iterator::unspecified_bool_type_func : 0; }
|
||||
|
Reference in New Issue
Block a user