summaryrefslogtreecommitdiff
path: root/boost/intrusive/detail/tree_iterator.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/intrusive/detail/tree_iterator.hpp')
-rw-r--r--boost/intrusive/detail/tree_iterator.hpp21
1 files changed, 15 insertions, 6 deletions
diff --git a/boost/intrusive/detail/tree_iterator.hpp b/boost/intrusive/detail/tree_iterator.hpp
index c2e980d27a..4985c6ce7b 100644
--- a/boost/intrusive/detail/tree_iterator.hpp
+++ b/boost/intrusive/detail/tree_iterator.hpp
@@ -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; }