$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r50406 - in sandbox/SOC/2006/tree/trunk: boost/tree boost/tree/detail/algorithm boost/tree/detail/cursor libs/tree/test
From: ockham_at_[hidden]
Date: 2008-12-29 14:18:27
Author: bernhard.reiter
Date: 2008-12-29 14:18:25 EST (Mon, 29 Dec 2008)
New Revision: 50406
URL: http://svn.boost.org/trac/boost/changeset/50406
Log:
Introduce properly named vertical traversal tags.
Text files modified: 
   sandbox/SOC/2006/tree/trunk/boost/tree/ascending_cursor.hpp            |     4 ++--                                    
   sandbox/SOC/2006/tree/trunk/boost/tree/binary_tree.hpp                 |     4 ++--                                    
   sandbox/SOC/2006/tree/trunk/boost/tree/cursor.hpp                      |    11 +++++++----                             
   sandbox/SOC/2006/tree/trunk/boost/tree/cursor_adaptor.hpp              |    27 ++++++++++++---------------             
   sandbox/SOC/2006/tree/trunk/boost/tree/cursor_archetypes.hpp           |    15 ++++++++-------                         
   sandbox/SOC/2006/tree/trunk/boost/tree/cursor_facade.hpp               |     6 ++++--                                  
   sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/inorder.hpp    |     8 ++++----                                
   sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/iterative.hpp  |     4 ++--                                    
   sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/postorder.hpp  |     8 ++++----                                
   sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/preorder.hpp   |     8 ++++----                                
   sandbox/SOC/2006/tree/trunk/boost/tree/detail/cursor/forest.hpp        |     2 +-                                      
   sandbox/SOC/2006/tree/trunk/boost/tree/detail/cursor/multiway.hpp      |     4 ++--                                    
   sandbox/SOC/2006/tree/trunk/boost/tree/detail/cursor/nary.hpp          |     3 ++-                                     
   sandbox/SOC/2006/tree/trunk/boost/tree/output_iterator_cursor.hpp      |     6 +++---                                  
   sandbox/SOC/2006/tree/trunk/libs/tree/test/algorithm_concepts_test.cpp |    10 +++++-----                              
   sandbox/SOC/2006/tree/trunk/libs/tree/test/fake_binary_tree.hpp        |     4 ++--                                    
   sandbox/SOC/2006/tree/trunk/libs/tree/test/insert_cursor_test.cpp      |     4 ++--                                    
   17 files changed, 66 insertions(+), 62 deletions(-)
Modified: sandbox/SOC/2006/tree/trunk/boost/tree/ascending_cursor.hpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/boost/tree/ascending_cursor.hpp	(original)
+++ sandbox/SOC/2006/tree/trunk/boost/tree/ascending_cursor.hpp	2008-12-29 14:18:25 EST (Mon, 29 Dec 2008)
@@ -55,7 +55,7 @@
 : public cursor_facade<ascending_cursor<DescendingCursor>
       , typename cursor_value<DescendingCursor>::type
       , random_access_traversal_tag
-      , bidirectional_traversal_tag
+      , ascending_vertical_traversal_tag
     > {
 private:
     struct enabler {};
@@ -194,7 +194,7 @@
                       , boost::use_default
                       , typename cursor_horizontal_traversal<
                               ascending_cursor<Cursor> >::type
-                      , bidirectional_traversal_tag
+                      , ascending_vertical_traversal_tag
     > {
  private:
     struct enabler {};
Modified: sandbox/SOC/2006/tree/trunk/boost/tree/binary_tree.hpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/boost/tree/binary_tree.hpp	(original)
+++ sandbox/SOC/2006/tree/trunk/boost/tree/binary_tree.hpp	2008-12-29 14:18:25 EST (Mon, 29 Dec 2008)
@@ -244,7 +244,7 @@
 //    return cursor(boost::tree::copy(boost::tree::preorder()
 //                , subtree 
 //                , boost::tree::tree_inserter(*this, pos)
-//                , forward_traversal_tag()));
+//                , descending_vertical_traversal_tag()));
 
         subtree.to_begin();
         insert(pos, *subtree);
@@ -311,7 +311,7 @@
 //    return cursor(boost::tree::for_each(boost::tree::postorder()
 //                , direct_cursor(position)
 //                , destroy_node
-//                , forward_traversal_tag()));
+//                , descending_vertical_traversal_tag()));
 
          if (!position.empty()) {
              node_pointer pos_node = 
Modified: sandbox/SOC/2006/tree/trunk/boost/tree/cursor.hpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/boost/tree/cursor.hpp	(original)
+++ sandbox/SOC/2006/tree/trunk/boost/tree/cursor.hpp	2008-12-29 14:18:25 EST (Mon, 29 Dec 2008)
@@ -24,6 +24,9 @@
 using std::bidirectional_iterator_tag;
 using std::random_access_iterator_tag;
 
+struct descending_vertical_traversal_tag {};
+struct ascending_vertical_traversal_tag {};
+
 template <class Cursor>
 struct cursor_value {
     typedef typename Cursor::value_type type;
@@ -77,12 +80,12 @@
 template <class Cat, class T, class Dist = ptrdiff_t, class Size = size_t,
           class Ptr = T*, class Ref = T&>
 struct cursor {
-    typedef Cat        cursor_category;
-    typedef T        value_type;
+    typedef Cat     cursor_category;
+    typedef T       value_type;
     typedef Dist    difference_type;
     typedef Size    size_type;
-    typedef Ptr        pointer;
-    typedef Ref        reference;    
+    typedef Ptr     pointer;
+    typedef Ref     reference;    
 };
 
 // Deprecate?
Modified: sandbox/SOC/2006/tree/trunk/boost/tree/cursor_adaptor.hpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/boost/tree/cursor_adaptor.hpp	(original)
+++ sandbox/SOC/2006/tree/trunk/boost/tree/cursor_adaptor.hpp	2008-12-29 14:18:25 EST (Mon, 29 Dec 2008)
@@ -39,7 +39,7 @@
   , class Base
   , class Value                         = use_default
   , class HorizontalTraversalOrCategory = use_default
-  , class VerticalTraversalOrCategory   = use_default
+  , class VerticalTraversal             = use_default
   , class Reference                     = use_default
   , class Difference                    = use_default
   , class Size                          = use_default
@@ -51,12 +51,6 @@
                          , HorizontalTraversalOrCategory
                          , Reference
                          , Difference>
-, private iterator_adaptor<dummy 
-                         , Base
-                         , Value
-                         , VerticalTraversalOrCategory
-                         , Reference
-                         , Difference>
 {
 private:
     cursor_adaptor_base() {} // This class is used for typedefs only.
@@ -64,16 +58,12 @@
     typedef typename iterator_adaptor<Derived, Base, Value
                                     , HorizontalTraversalOrCategory, Reference
                                     , Difference>::super_t h_super_t;
-    typedef typename iterator_adaptor<dummy, Base, Value
-                                    , VerticalTraversalOrCategory, Reference
-                                    , Difference>::super_t v_super_t;
 public:
     typedef typename h_super_t::value_type value_type;    
     typedef typename h_super_t::reference reference;
     typedef typename h_super_t::difference_type difference_type;
     typedef typename h_super_t::pointer pointer;
     typedef typename h_super_t::iterator_category iterator_category;
-    typedef typename v_super_t::iterator_category vertical_traversal;
     
     // size_type isn't in iterator_adaptor or _facade, 
     // so we have to calculate it on our own: 
@@ -82,6 +72,13 @@
       , boost::tree::cursor_size<Base>
       , mpl::identity<Size>
     >::type size_type;
+
+    // Same for vertical_traversal
+    typedef typename mpl::eval_if<
+        is_same<VerticalTraversal, use_default>
+      , boost::tree::cursor_vertical_traversal<Base>
+      , mpl::identity<VerticalTraversal>
+    >::type vertical_traversal;
     
     typedef cursor_facade<Derived
                         , value_type
@@ -97,7 +94,7 @@
   , class Base
   , class Value                         = use_default
   , class HorizontalTraversalOrCategory = use_default
-  , class VerticalTraversalOrCategory   = use_default
+  , class VerticalTraversal   = use_default
   , class Reference                     = use_default
   , class Difference                    = use_default
   , class Size                          = use_default
@@ -107,19 +104,19 @@
                             , Base
                             , Value
                             , HorizontalTraversalOrCategory
-                            , VerticalTraversalOrCategory
+                            , VerticalTraversal
                             , Reference
                             , Difference
                             , Size >::type
 {
 protected:
     typedef cursor_adaptor<Derived, Base, Value, HorizontalTraversalOrCategory,
-                           VerticalTraversalOrCategory, Reference, Difference,
+                           VerticalTraversal, Reference, Difference,
                            Size> cursor_adaptor_;
     
     typedef typename cursor_adaptor_base<Derived, Base, Value 
                                        , HorizontalTraversalOrCategory
-                                       , VerticalTraversalOrCategory
+                                       , VerticalTraversal
                                        , Reference
                                        , Difference
                                        , Size>::type cursor_facade_;
Modified: sandbox/SOC/2006/tree/trunk/boost/tree/cursor_archetypes.hpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/boost/tree/cursor_archetypes.hpp	(original)
+++ sandbox/SOC/2006/tree/trunk/boost/tree/cursor_archetypes.hpp	2008-12-29 14:18:25 EST (Mon, 29 Dec 2008)
@@ -13,6 +13,7 @@
 #define BOOST_TREE_CURSOR_ARCHETYPES_HPP
 
 #include <boost/iterator/iterator_archetypes.hpp>
+#include <boost/tree/cursor.hpp>
 
 namespace boost {
 namespace tree {
@@ -20,7 +21,7 @@
 class descendor_archetype
 {
 public:
-    typedef forward_traversal_tag vertical_traversal;
+    typedef descending_vertical_traversal_tag vertical_traversal;
     
     descendor_archetype& to_begin() { return *this; }
     descendor_archetype& to_end() { return *this; }
@@ -69,7 +70,7 @@
 class cursor_archetype<Value
                      , AccessCategory
                      , HorizontalTraversal
-                     , forward_traversal_tag>
+                     , descending_vertical_traversal_tag>
 : public iterator_archetype<Value, AccessCategory, HorizontalTraversal>
 //, public descendor_archetype
 {
@@ -77,9 +78,9 @@
     typedef class cursor_archetype<Value
                      , AccessCategory
                      , HorizontalTraversal
-                     , forward_traversal_tag> self_type;
+                     , descending_vertical_traversal_tag> self_type;
 public:
-    typedef forward_traversal_tag vertical_traversal;
+    typedef descending_vertical_traversal_tag vertical_traversal;
     
     self_type& to_begin() { return *this; }
     self_type& to_end() { return *this; }
@@ -98,7 +99,7 @@
 class cursor_archetype<Value
                      , AccessCategory
                      , HorizontalTraversal
-                     , bidirectional_traversal_tag>
+                     , ascending_vertical_traversal_tag>
 : public iterator_archetype<Value, AccessCategory, HorizontalTraversal>
 //, public ascendor_archetype
 {
@@ -106,9 +107,9 @@
     typedef class cursor_archetype<Value
                      , AccessCategory
                      , HorizontalTraversal
-                     , bidirectional_traversal_tag> self_type;
+                     , ascending_vertical_traversal_tag> self_type;
 public:
-    typedef bidirectional_traversal_tag vertical_traversal;
+    typedef ascending_vertical_traversal_tag vertical_traversal;
     
     self_type& to_parent() { return *this; }
 
Modified: sandbox/SOC/2006/tree/trunk/boost/tree/cursor_facade.hpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/boost/tree/cursor_facade.hpp	(original)
+++ sandbox/SOC/2006/tree/trunk/boost/tree/cursor_facade.hpp	2008-12-29 14:18:25 EST (Mon, 29 Dec 2008)
@@ -132,8 +132,10 @@
     typedef typename 
         iterator_category_to_traversal<iterator_category>::type
         horizontal_traversal; 
-    typedef typename 
-        iterator_category_to_traversal<VerticalCategoryOrTraversal>::type
+    typedef //typename 
+        //iterator_category_to_traversal<
+        VerticalCategoryOrTraversal
+        //>::type
         vertical_traversal; 
 
     bool const empty() const
Modified: sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/inorder.hpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/inorder.hpp	(original)
+++ sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/inorder.hpp	2008-12-29 14:18:25 EST (Mon, 29 Dec 2008)
@@ -149,7 +149,7 @@
 BOOST_CONCEPT_REQUIRES(
     ((DescendingCursor<MultiwayCursor>)),
     (Op)) // return type
-for_each(inorder, MultiwayCursor s, Op f, forward_traversal_tag)
+for_each(inorder, MultiwayCursor s, Op f, descending_vertical_traversal_tag)
 {
     MultiwayCursor t = s.end();
 
@@ -184,7 +184,7 @@
     ((DescendingCursor<OutCursor>))
     /*((UnaryFunction<Op>))*/,
     (OutCursor)) // return type
-transform(inorder, InCursor s, OutCursor t, Op op, forward_traversal_tag)
+transform(inorder, InCursor s, OutCursor t, Op op, descending_vertical_traversal_tag)
 {
     InCursor r = s.end();
 
@@ -193,13 +193,13 @@
     
     for (; s != r; ++s, ++t) {
         if (!s.empty())
-            transform(inorder(), s, t, op, forward_traversal_tag());
+            transform(inorder(), s, t, op, descending_vertical_traversal_tag());
         *t=op(*s);
     }
 
     // Multiway cursor
     if (!r.empty())
-        transform(inorder(), r, t, op, forward_traversal_tag());
+        transform(inorder(), r, t, op, descending_vertical_traversal_tag());
     return t;
 }
 
Modified: sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/iterative.hpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/iterative.hpp	(original)
+++ sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/iterative.hpp	2008-12-29 14:18:25 EST (Mon, 29 Dec 2008)
@@ -32,7 +32,7 @@
     ((DescendingCursor<Cursor>))
     ((AscendingCursor<Cursor>)),
     (Op)) // return type
-for_each(Order, Cursor is, Op f, bidirectional_traversal_tag)
+for_each(Order, Cursor is, Op f, ascending_vertical_traversal_tag)
 {
     root_tracking_cursor<Cursor> s(is);
     root_tracking_cursor<Cursor> s2(s);
@@ -53,7 +53,7 @@
     ((AscendingCursor<OutCursor>)),
     (OutCursor)) // return type
 transform (Order, InCursor is, OutCursor t, Op op
-                   , bidirectional_traversal_tag)
+                   , ascending_vertical_traversal_tag)
 {
     root_tracking_cursor<InCursor> s(is);
     root_tracking_cursor<InCursor> s2(s);
Modified: sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/postorder.hpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/postorder.hpp	(original)
+++ sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/postorder.hpp	2008-12-29 14:18:25 EST (Mon, 29 Dec 2008)
@@ -177,7 +177,7 @@
 BOOST_CONCEPT_REQUIRES(
     ((DescendingCursor<Cursor>)),
     (Op)) // return type
-for_each(postorder, Cursor s, Op f, forward_traversal_tag)
+for_each(postorder, Cursor s, Op f, descending_vertical_traversal_tag)
 {
     Cursor t = s;
     for (s.to_begin(); s != t.end(); ++s)
@@ -211,7 +211,7 @@
     ((DescendingCursor<InCursor>))
     ((DescendingCursor<OutCursor>)),
     (OutCursor)) // return type
-transform(postorder, InCursor s, OutCursor t, Op op, forward_traversal_tag)
+transform(postorder, InCursor s, OutCursor t, Op op, descending_vertical_traversal_tag)
 {
     InCursor r = s;
     s.to_begin();
@@ -220,11 +220,11 @@
     
     for (; s != r.end(); ++s, ++t)
         if (!s.empty())
-            transform(postorder(), s, t, op, forward_traversal_tag());
+            transform(postorder(), s, t, op, descending_vertical_traversal_tag());
 
     // Multiway cursor
     if (!s.empty())
-        transform(postorder(), s, t, op, forward_traversal_tag());
+        transform(postorder(), s, t, op, descending_vertical_traversal_tag());
     
     *t2 = op(*r.to_begin());
     return t;
Modified: sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/preorder.hpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/preorder.hpp	(original)
+++ sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/preorder.hpp	2008-12-29 14:18:25 EST (Mon, 29 Dec 2008)
@@ -172,7 +172,7 @@
 BOOST_CONCEPT_REQUIRES(
     ((DescendingCursor<Cursor>)),
     (Op)) // return type
-for_each(preorder, Cursor s, Op f, forward_traversal_tag)
+for_each(preorder, Cursor s, Op f, descending_vertical_traversal_tag)
 {
     Cursor t = s.end();
     for (s.to_begin(); s != t; ++s) {
@@ -208,7 +208,7 @@
     ((DescendingCursor<InCursor>))
     ((DescendingCursor<OutCursor>)),
     (OutCursor)) // return type
-transform(preorder, InCursor s, OutCursor t, Op op, forward_traversal_tag)
+transform(preorder, InCursor s, OutCursor t, Op op, descending_vertical_traversal_tag)
 {
     InCursor r = s.end();
     s.to_begin();
@@ -216,12 +216,12 @@
     for (; s != r; ++s, ++t) {
         *t = op(*s);
         if (!s.empty())
-            transform(preorder(), s, t, op, forward_traversal_tag());
+            transform(preorder(), s, t, op, descending_vertical_traversal_tag());
     }
 
     // Multiway cursor
     if (!s.empty())
-        transform(preorder(), s, t, op, forward_traversal_tag());
+        transform(preorder(), s, t, op, descending_vertical_traversal_tag());
         
     return t;
 }
Modified: sandbox/SOC/2006/tree/trunk/boost/tree/detail/cursor/forest.hpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/boost/tree/detail/cursor/forest.hpp	(original)
+++ sandbox/SOC/2006/tree/trunk/boost/tree/detail/cursor/forest.hpp	2008-12-29 14:18:25 EST (Mon, 29 Dec 2008)
@@ -34,7 +34,7 @@
       , Cursor
       , boost::use_default
       , bidirectional_traversal_tag
-      , bidirectional_traversal_tag
+      , ascending_vertical_traversal_tag
     > {
 
 private:
Modified: sandbox/SOC/2006/tree/trunk/boost/tree/detail/cursor/multiway.hpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/boost/tree/detail/cursor/multiway.hpp	(original)
+++ sandbox/SOC/2006/tree/trunk/boost/tree/detail/cursor/multiway.hpp	2008-12-29 14:18:25 EST (Mon, 29 Dec 2008)
@@ -33,7 +33,7 @@
       , Cursor const
       , boost::use_default
       , bidirectional_traversal_tag
-      , forward_traversal_tag
+      , descending_vertical_traversal_tag
     > {
  private:
     struct enabler {};
@@ -95,7 +95,7 @@
       , Cursor
       , boost::use_default
       , bidirectional_traversal_tag
-      , forward_traversal_tag
+      , descending_vertical_traversal_tag
     > {
  private:
     struct enabler {};
Modified: sandbox/SOC/2006/tree/trunk/boost/tree/detail/cursor/nary.hpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/boost/tree/detail/cursor/nary.hpp	(original)
+++ sandbox/SOC/2006/tree/trunk/boost/tree/detail/cursor/nary.hpp	2008-12-29 14:18:25 EST (Mon, 29 Dec 2008)
@@ -12,6 +12,7 @@
 #ifndef BOOST_TREE_DETAIL_CURSOR_NARY_HPP
 #define BOOST_TREE_DETAIL_CURSOR_NARY_HPP
 
+#include <boost/tree/cursor.hpp>
 #include <boost/tree/cursor_adaptor.hpp>
 #include <boost/tree/detail/node/nary.hpp>
 
@@ -42,7 +43,7 @@
                   , mpl::identity<typename Node::value_type>
                 >::type
       , random_access_traversal_tag
-      , bidirectional_traversal_tag
+      , ascending_vertical_traversal_tag
     > {
 
 private:
Modified: sandbox/SOC/2006/tree/trunk/boost/tree/output_iterator_cursor.hpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/boost/tree/output_iterator_cursor.hpp	(original)
+++ sandbox/SOC/2006/tree/trunk/boost/tree/output_iterator_cursor.hpp	2008-12-29 14:18:25 EST (Mon, 29 Dec 2008)
@@ -21,7 +21,7 @@
     class OutputIterator
 //  , class Value                         
 //  , class HorizontalTraversalOrCategory 
-//  , class VerticalTraversalOrCategory
+//  , class VerticalTraversal
 //  , class Reference                     
 //  , class Difference                
 //  , class Size                          
@@ -44,7 +44,7 @@
     class OutputIterator
 //  , class Value                         = use_default
 //  , class HorizontalTraversalOrCategory = use_default
-//  , class VerticalTraversalOrCategory   = bidirectional_traversal_tag
+//  , class VerticalTraversal   = bidirectional_traversal_tag
 //  , class Reference                     = use_default
 //  , class Difference                    = use_default
 //  , class Size                          = use_default
@@ -68,7 +68,7 @@
     typedef std::size_t size_type;
     typedef output_iterator_cursor<OutputIterator> const_cursor;
     typedef boost::forward_traversal_tag horizontal_traversal;
-    typedef boost::bidirectional_traversal_tag vertical_traversal;
+    typedef boost::tree::ascending_vertical_traversal_tag vertical_traversal;
     typedef boost::forward_traversal_tag iterator_category;
     typedef std::ptrdiff_t difference_type;
     typedef value_type* pointer;
Modified: sandbox/SOC/2006/tree/trunk/libs/tree/test/algorithm_concepts_test.cpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/libs/tree/test/algorithm_concepts_test.cpp	(original)
+++ sandbox/SOC/2006/tree/trunk/libs/tree/test/algorithm_concepts_test.cpp	2008-12-29 14:18:25 EST (Mon, 29 Dec 2008)
@@ -28,7 +28,7 @@
     cursor_archetype< boost::null_archetype<>
                       , boost::iterator_archetypes::readable_lvalue_iterator_t // Really lvalue?
                       , boost::forward_traversal_tag
-                      , boost::forward_traversal_tag
+                      , boost::tree::descending_vertical_traversal_tag
                       > c;
     boost::unary_function_archetype< boost::null_archetype<> , boost::null_archetype<> > 
       f(dummy_cons);
@@ -56,12 +56,12 @@
 //    cursor_archetype< boost::null_archetype<>
 //                      , boost::iterator_archetypes::readable_iterator_t // Really lvalue?
 //                      , boost::forward_traversal_tag
-//                      , boost::forward_traversal_tag
+//                      , boost::tree::descending_vertical_traversal_tag
 //                      > i;
 //    cursor_archetype< boost::assignable_archetype<>
 //                      , boost::iterator_archetypes::writable_iterator_t // Really lvalue?
 //                      , boost::forward_traversal_tag
-//                      , boost::forward_traversal_tag
+//                      , boost::tree::descending_vertical_traversal_tag
 //                      > o;
 //    
 //    boost::tree::copy(Order(), i, o);
@@ -73,12 +73,12 @@
 //    cursor_archetype< boost::null_archetype<>
 //                      , boost::iterator_archetypes::readable_lvalue_iterator_t // Really lvalue?
 //                      , boost::forward_traversal_tag
-//                      , boost::forward_traversal_tag
+//                      , boost::tree::descending_vertical_traversal_tag
 //                      > i;
 //    cursor_archetype< boost::assignable_archetype<>
 //                      , boost::iterator_archetypes::writable_lvalue_iterator_t // Really lvalue?
 //                      , boost::forward_traversal_tag
-//                      , boost::forward_traversal_tag
+//                      , boost::tree::descending_vertical_traversal_tag
 //                      > o;
 //    boost::unary_function_archetype< boost::null_archetype<> , boost::null_archetype<> > 
 //      f(dummy_cons);
Modified: sandbox/SOC/2006/tree/trunk/libs/tree/test/fake_binary_tree.hpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/libs/tree/test/fake_binary_tree.hpp	(original)
+++ sandbox/SOC/2006/tree/trunk/libs/tree/test/fake_binary_tree.hpp	2008-12-29 14:18:25 EST (Mon, 29 Dec 2008)
@@ -66,7 +66,7 @@
 // Make this use cursor_facade. Yes, even if that means relying on it.
 template <class T>
 struct fake_descending_binary_cursor {
-    typedef boost::forward_traversal_tag vertical_traversal;
+    typedef boost::tree::descending_vertical_traversal_tag vertical_traversal;
     typedef boost::bidirectional_traversal_tag horizontal_traversal;
     typedef horizontal_traversal iterator_category;
     typedef typename fake_binary_tree<T>::value_type value_type;
@@ -174,7 +174,7 @@
                                    , fake_descending_binary_cursor<T>
                                    , boost::use_default
                                    , boost::use_default
-                                   , boost::bidirectional_traversal_tag >
+                                   , boost::tree::ascending_vertical_traversal_tag >
 {
     typedef fake_ascending_binary_cursor<T> cursor;
     typedef fake_ascending_binary_cursor<T const> const_cursor;
Modified: sandbox/SOC/2006/tree/trunk/libs/tree/test/insert_cursor_test.cpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/libs/tree/test/insert_cursor_test.cpp	(original)
+++ sandbox/SOC/2006/tree/trunk/libs/tree/test/insert_cursor_test.cpp	2008-12-29 14:18:25 EST (Mon, 29 Dec 2008)
@@ -48,7 +48,7 @@
     bt2.clear();
 
     boost::tree::copy(Order(), bt.root(), tree_inserter(bt2, bt2.root())
-                    , boost::forward_traversal_tag());
+                    , boost::tree::descending_vertical_traversal_tag());
 //    fill_subtree_with_data(tree_inserter(bt2, bt2.root())); //FIXME
 
     validate_test_dataset1_tree(bt2.root());
@@ -60,7 +60,7 @@
     bt2.clear();
         
     boost::tree::copy(Order(), bt.root(), tree_inserter(bt2, bt2.root())
-                    , boost::bidirectional_traversal_tag());
+                    , boost::tree::ascending_vertical_traversal_tag());
 
     validate_test_dataset1_tree(bt2.root());
     BOOST_CHECK_EQUAL(size(bt2.root()), size(bt.root()));