$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r51781 - in sandbox/SOC/2006/tree/trunk: . boost/tree libs/tree/test
From: ockham_at_[hidden]
Date: 2009-03-15 03:50:20
Author: bernhard.reiter
Date: 2009-03-15 03:50:19 EDT (Sun, 15 Mar 2009)
New Revision: 51781
URL: http://svn.boost.org/trac/boost/changeset/51781
Log:
{left|right}most fixes
Text files modified: 
   sandbox/SOC/2006/tree/trunk/TODO                                |     4 ++++                                    
   sandbox/SOC/2006/tree/trunk/boost/tree/algorithm.hpp            |     2 +-                                      
   sandbox/SOC/2006/tree/trunk/boost/tree/forest.hpp               |     3 +--                                     
   sandbox/SOC/2006/tree/trunk/boost/tree/general_algorithms.hpp   |    10 ++++++----                              
   sandbox/SOC/2006/tree/trunk/boost/tree/inorder_algorithms.hpp   |     4 ++--                                    
   sandbox/SOC/2006/tree/trunk/libs/tree/test/predecessor_test.cpp |     2 +-                                      
   sandbox/SOC/2006/tree/trunk/libs/tree/test/successor_test.cpp   |     2 +-                                      
   7 files changed, 16 insertions(+), 11 deletions(-)
Modified: sandbox/SOC/2006/tree/trunk/TODO
==============================================================================
--- sandbox/SOC/2006/tree/trunk/TODO	(original)
+++ sandbox/SOC/2006/tree/trunk/TODO	2009-03-15 03:50:19 EDT (Sun, 15 Mar 2009)
@@ -14,6 +14,10 @@
 [section TODO]
 
 General:
+* Do we need to_{left|right}most_ancestor?
+* Do we need multiway and plain cursor "flavor" tags (for algorithms)?
+* Add a (horizontal) reverse_cursor adaptor
+* Fix cursor archetype
 * In case of forest cursor, is_leaf() should really be empty().
 * Further reduce test data redundancy: make mock cursor use the data from fake_binary_tree, 
   and give it an Order template argument. Calculate *order positions from level order indices
Modified: sandbox/SOC/2006/tree/trunk/boost/tree/algorithm.hpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/boost/tree/algorithm.hpp	(original)
+++ sandbox/SOC/2006/tree/trunk/boost/tree/algorithm.hpp	2009-03-15 03:50:19 EDT (Sun, 15 Mar 2009)
@@ -102,7 +102,7 @@
     (void)) // return type
 to_forest_end(BinaryCursor& c)
 {
-    rightmost(c.to_begin());
+    to_rightmost(c.to_begin());
 }
 
 //template <class BinaryCursor>
Modified: sandbox/SOC/2006/tree/trunk/boost/tree/forest.hpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/boost/tree/forest.hpp	(original)
+++ sandbox/SOC/2006/tree/trunk/boost/tree/forest.hpp	2009-03-15 03:50:19 EDT (Sun, 15 Mar 2009)
@@ -125,8 +125,7 @@
     cursor end()
     {
         base_cursor b(h.root());
-        while (!b.is_leaf())
-            b.to_end();
+        to_rightmost(b);
         return cursor(b);
     }
 
Modified: sandbox/SOC/2006/tree/trunk/boost/tree/general_algorithms.hpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/boost/tree/general_algorithms.hpp	(original)
+++ sandbox/SOC/2006/tree/trunk/boost/tree/general_algorithms.hpp	2009-03-15 03:50:19 EDT (Sun, 15 Mar 2009)
@@ -31,9 +31,10 @@
 BOOST_CONCEPT_REQUIRES(
     ((DescendingCursor<Cursor>)),
     (void)) // return type
-leftmost(Cursor& c)
+to_leftmost(Cursor& c)
 {
-    while (!c.to_begin().is_leaf());
+    while (!c.is_leaf())
+        c.to_begin();
 }
 
 /**
@@ -46,9 +47,10 @@
 BOOST_CONCEPT_REQUIRES(
     ((DescendingCursor<Cursor>)),
     (void)) // return type
-rightmost(Cursor& c)
+to_rightmost(Cursor& c)
 {
-    while (!c.to_end().is_leaf());
+    while (!c.is_leaf())
+        c.to_end();
 }
 
 // These algorithms are actually mostly preorder, as it's most efficient, but I
Modified: sandbox/SOC/2006/tree/trunk/boost/tree/inorder_algorithms.hpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/boost/tree/inorder_algorithms.hpp	(original)
+++ sandbox/SOC/2006/tree/trunk/boost/tree/inorder_algorithms.hpp	2009-03-15 03:50:19 EDT (Sun, 15 Mar 2009)
@@ -47,7 +47,7 @@
 successor(inorder, MultiwayCursor& c)
 {
     if (!(++c).is_leaf()) {
-        leftmost(c);
+        to_leftmost(c);
         return;
     }
     
@@ -69,7 +69,7 @@
 predecessor(inorder, MultiwayCursor& c)
 {
     if (!c.is_leaf()) {
-        rightmost(c);
+        to_rightmost(c);
         --c;
         return;
     }
Modified: sandbox/SOC/2006/tree/trunk/libs/tree/test/predecessor_test.cpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/libs/tree/test/predecessor_test.cpp	(original)
+++ sandbox/SOC/2006/tree/trunk/libs/tree/test/predecessor_test.cpp	2009-03-15 03:50:19 EDT (Sun, 15 Mar 2009)
@@ -22,7 +22,7 @@
 BOOST_AUTO_TEST_CASE( test_rightmost )
 {
     fake_binary_tree<int>::root_tracking_cursor c = fbt1.root_tracking_root(); //.begin();
-    rightmost(c);
+    to_rightmost(c);
     BOOST_CHECK_EQUAL(*c, 14);
 }
 
Modified: sandbox/SOC/2006/tree/trunk/libs/tree/test/successor_test.cpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/libs/tree/test/successor_test.cpp	(original)
+++ sandbox/SOC/2006/tree/trunk/libs/tree/test/successor_test.cpp	2009-03-15 03:50:19 EDT (Sun, 15 Mar 2009)
@@ -20,7 +20,7 @@
 BOOST_AUTO_TEST_CASE( test_leftmost )
 {
     fake_binary_tree<int>::root_tracking_cursor c = fbt1.root_tracking_root(); //.begin();
-    leftmost(c);
+    to_leftmost(c);
     BOOST_CHECK_EQUAL(*c, 1);
 }