$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r50433 - sandbox/SOC/2006/tree/trunk/boost/tree/detail
From: ockham_at_[hidden]
Date: 2009-01-01 11:20:23
Author: bernhard.reiter
Date: 2009-01-01 11:20:23 EST (Thu, 01 Jan 2009)
New Revision: 50433
URL: http://svn.boost.org/trac/boost/changeset/50433
Log:
Continue reorganising algorithms.
Added:
   sandbox/SOC/2006/tree/trunk/boost/tree/detail/recursive_inorder_algorithms.hpp
      - copied unchanged from r50432, /sandbox/SOC/2006/tree/trunk/boost/tree/detail/inorder.hpp
   sandbox/SOC/2006/tree/trunk/boost/tree/detail/recursive_postorder_algorithms
      - copied unchanged from r50432, /sandbox/SOC/2006/tree/trunk/boost/tree/detail/postorder.hpp
   sandbox/SOC/2006/tree/trunk/boost/tree/detail/recursive_preorder_algorithms.hpp
      - copied unchanged from r50432, /sandbox/SOC/2006/tree/trunk/boost/tree/detail/preorder.hpp
Removed:
   sandbox/SOC/2006/tree/trunk/boost/tree/detail/inorder.hpp
   sandbox/SOC/2006/tree/trunk/boost/tree/detail/postorder.hpp
   sandbox/SOC/2006/tree/trunk/boost/tree/detail/preorder.hpp
Deleted: sandbox/SOC/2006/tree/trunk/boost/tree/detail/inorder.hpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/boost/tree/detail/inorder.hpp	2009-01-01 11:20:23 EST (Thu, 01 Jan 2009)
+++ (empty file)
@@ -1,127 +0,0 @@
-//  Copyright (c) 2006-2009, Bernhard Reiter
-//
-//  Distributed under the Boost Software License, Version 1.0.
-//  (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-/**
- * @file recursive_inorder_algorithms.hpp
- * Recursive subtree inorder traversal and search algorithms.
- */
-
-#ifndef BOOST_TREE_DETAIL_RECURSIVE_INORDER_ALGORITHMS_HPP
-#define BOOST_TREE_DETAIL_RECURSIVE_INORDER_ALGORITHMS_HPP
-
-#include <boost/tree/cursor_concepts.hpp>
-
-#include <boost/concept/requires.hpp>
-
-namespace boost {
-namespace tree {
-namespace detail {
-
-using namespace boost_concepts;
-
-//#ifdef BOOST_RECURSIVE_ORDER_ALGORITHMS
-
-/**
- * @if maint
- * Helper function for for_each, using a reference parameter in order to
- * require fewer copy and assignment operations.
- * @endif
- */
-template <class MultiwayCursor, class Op>
-BOOST_CONCEPT_REQUIRES(
-    ((Descendor<MultiwayCursor>)),
-    (void)) // return type
-for_each_recursive(inorder, MultiwayCursor s, Op& f)
-{
-    MultiwayCursor t = s.end();
-
-    for (s.to_begin(); s!=t; ++s) {
-        if (!s.empty())
-            for_each_recursive(inorder(), s, f);
-        f(*s);
-    }
-    
-    // Multiway cursor
-    if (!t.empty())
-        for_each_recursive(inorder(), t, f);
-}
-
-/**
- * @brief    Apply a function to every element of a multiway subtree,
- *            in inorder.
- * @param s    A MultiwayTree cursor.
- * @param f    A unary function object.
- * @return    @p f
- *
- * Applies the function object @p f to each element in the @p subtree, using
- * inorder. @p f must not modify the order of the sequence.
- * If @p f has a return value it is ignored.
- */
-template <class MultiwayCursor, class Op>
-BOOST_CONCEPT_REQUIRES(
-    ((Descendor<MultiwayCursor>)),
-    (Op)) // return type
-for_each(inorder, MultiwayCursor s, Op f, descending_vertical_traversal_tag)
-{
-    MultiwayCursor t = s.end();
-
-    for (s.to_begin(); s!=t; ++s) {
-        if (!s.empty())
-            for_each_recursive(inorder(), s, f);
-        f(*s);
-    }
-    
-    // Multiway cursor
-    if (!t.empty())
-        for_each_recursive(inorder(), t, f);
-    return f;
-}
-
-/**
- * @brief     Performs an operation on a subtree, by traversing it in inorder.
- * @param s  An input cursor.
- * @param t  An output cursor.
- * @param op A unary operation.
- * @result     A cursor past t's inorder end, after the transforming has 
- *              finished.
- * 
- * By traversing the input subtree s in inorder, apply the operation op 
- * to each element and write the result to the output subtree t.
- * 
- * op must not change its argument.
- */
-template <class InCursor, class OutCursor, class Op>
-BOOST_CONCEPT_REQUIRES(
-    ((Descendor<InCursor>))
-    ((Descendor<OutCursor>))
-    /*((UnaryFunction<Op>))*/,
-    (OutCursor)) // return type
-transform(inorder, InCursor s, OutCursor t, Op op, descending_vertical_traversal_tag)
-{
-    InCursor r = s.end();
-
-    s.to_begin();
-    t.to_begin();
-    
-    for (; s != r; ++s, ++t) {
-        if (!s.empty())
-            transform(inorder(), s, t, op, descending_vertical_traversal_tag());
-        *t=op(*s);
-    }
-
-    // Multiway cursor
-    if (!r.empty())
-        transform(inorder(), r, t, op, descending_vertical_traversal_tag());
-    return t;
-}
-
-//#endif //BOOST_RECURSIVE_ORDER_ALGORITHMS
-
-} // namespace detail
-} // namespace tree
-} // namespace boost
-
-#endif // BOOST_TREE_DETAIL_RECURSIVE_INORDER_ALGORITHMS_HPP
Deleted: sandbox/SOC/2006/tree/trunk/boost/tree/detail/postorder.hpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/boost/tree/detail/postorder.hpp	2009-01-01 11:20:23 EST (Thu, 01 Jan 2009)
+++ (empty file)
@@ -1,124 +0,0 @@
-//  Copyright (c) 2006-2009, Bernhard Reiter
-//
-//  Distributed under the Boost Software License, Version 1.0.
-//  (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-/**
- * @file recursive_postorder_algorithms.hpp
- * Recursice subtree postorder traversal algorithms
- */
-
-#ifndef BOOST_TREE_DETAIL_RECURSIVE_POSTORDER_ALGORITHMS_HPP
-#define BOOST_TREE_DETAIL_RECURSIVE_POSTORDER_ALGORITHMS_HPP
-
-#include <boost/tree/cursor_concepts.hpp>
-
-#include <boost/concept/requires.hpp>
-
-namespace boost {
-namespace tree {
-namespace detail {
-
-using namespace boost_concepts;
-
-//#ifdef BOOST_RECURSIVE_ORDER_ALGORITHMS
-
-/**
- * @if maint
- * Helper function for for_each, using a reference parameter in order to
- * require fewer copy and assignment operations.
- * @endif
- */
-template <class Cursor, class Op>
-BOOST_CONCEPT_REQUIRES(
-    ((Descendor<Cursor>)),
-    (void)) // return type
-for_each_recursive(postorder, Cursor s, Op& f)
-{
-    Cursor t = s;
-    for (s.to_begin(); s != t.end(); ++s)
-        if (!s.empty())
-            for_each_recursive(postorder(), s, f);
-
-    // Multiway cursor
-    if (!s.empty())
-        for_each_recursive(postorder(), s, f);
-
-    f(*t.to_begin());
-}
-
-/**
- * @brief    Apply a function to every element of a subtree, in postorder.
- * @param s    A cursor.
- * @param f    A unary function object.
- * @return    @p f
- *
- * Applies the function object @p f to each element in the subtree @p s, using 
- * postorder. @p f must not modify the order of the sequence.
- * If @p f has a return value it is ignored.
- */
-template <class Cursor, class Op>
-BOOST_CONCEPT_REQUIRES(
-    ((Descendor<Cursor>)),
-    (Op)) // return type
-for_each(postorder, Cursor s, Op f, descending_vertical_traversal_tag)
-{
-    Cursor t = s;
-    for (s.to_begin(); s != t.end(); ++s)
-        if (!s.empty())
-            for_each_recursive(postorder(), s, f);
-
-    // Multiway cursor
-    if (!s.empty())
-        for_each_recursive(postorder(), s, f);
-
-    f(*t.to_begin());
-
-    return f;
-}
-
-/**
- * @brief     Performs an operation on a subtree, by traversing it in postorder.
- * @param s  An input cursor.
- * @param t  An output cursor.
- * @param op A unary operation.
- * @result     A cursor past t's postorder end, after the transforming has
- *              finished.
- * 
- * By traversing the input subtree s in postorder, apply the operation op 
- * to each element and write the result to the output subtree t.
- * 
- * op must not change its argument.
- */
-template <class InCursor, class OutCursor, class Op>
-BOOST_CONCEPT_REQUIRES(
-    ((Descendor<InCursor>))
-    ((Descendor<OutCursor>)),
-    (OutCursor)) // return type
-transform(postorder, InCursor s, OutCursor t, Op op, descending_vertical_traversal_tag)
-{
-    InCursor r = s;
-    s.to_begin();
-    t.to_begin();
-    OutCursor t2 = t;
-    
-    for (; s != r.end(); ++s, ++t)
-        if (!s.empty())
-            transform(postorder(), s, t, op, descending_vertical_traversal_tag());
-
-    // Multiway cursor
-    if (!s.empty())
-        transform(postorder(), s, t, op, descending_vertical_traversal_tag());
-    
-    *t2 = op(*r.to_begin());
-    return t;
-}
-
-//#endif //BOOST_RECURSIVE_ORDER_ALGORITHMS
-
-} // namespace detail
-} // namespace tree
-} // namespace boost
-
-#endif // BOOST_TREE_DETAIL_RECURSIVE_POSTORDER_ALGORITHMS_HPP
Deleted: sandbox/SOC/2006/tree/trunk/boost/tree/detail/preorder.hpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/boost/tree/detail/preorder.hpp	2009-01-01 11:20:23 EST (Thu, 01 Jan 2009)
+++ (empty file)
@@ -1,125 +0,0 @@
-//  Copyright (c) 2006-2009, Bernhard Reiter
-//
-//  Distributed under the Boost Software License, Version 1.0.
-//  (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-/**
- * @file recursive_preorder_algorithms.hpp
- * Recursive subtree preorder traversal algorithms
- */
-
-#ifndef BOOST_TREE_DETAIL_RECURSIVE_PREORDER_ALGORITHMS_HPP
-#define BOOST_TREE_DETAIL_RECURSIVE_PREORDER_ALGORITHMS_HPP
-
-#include <boost/tree/cursor_concepts.hpp>
-
-#include <boost/concept/requires.hpp>
-
-namespace boost {
-namespace tree {
-namespace detail {
-
-using namespace boost_concepts;
-
-//#ifdef BOOST_RECURSIVE_ORDER_ALGORITHMS
-
-/**
- * @if maint
- * Helper function for for_each, using a reference parameter in order to
- * require fewer copy and assignment operations.
- * @endif
- */
-template <class Cursor, class Op>
-BOOST_CONCEPT_REQUIRES(
-    ((Descendor<Cursor>)),
-    (void)) // return type
-for_each_recursive(preorder, Cursor s, Op& f)
-{
-    Cursor t = s.end();
-    for (s.to_begin(); s != t; ++s) {
-        f(*s);
-        if (!s.empty())
-            for_each_recursive(preorder(), s, f);
-    }
-    
-    // Multiway cursor
-    if (!s.empty())
-        for_each_recursive(preorder(), s, f);
-}
-
-/**
- * @brief    Apply a function to every element of a subtree, in preorder.
- * @param s    A cursor.
- * @param f    A unary function object.
- * @return    @p f
- *
- * Applies the function object @p f to each element in the @p subtree, using  
- * preorder. @p f must not modify the order of the sequence.
- * If @p f has a return value it is ignored.
- */
-template <class Cursor, class Op>
-BOOST_CONCEPT_REQUIRES(
-    ((Descendor<Cursor>)),
-    (Op)) // return type
-for_each(preorder, Cursor s, Op f, descending_vertical_traversal_tag)
-{
-    Cursor t = s.end();
-    for (s.to_begin(); s != t; ++s) {
-        f(*s);
-        if (!s.empty())
-            for_each_recursive(preorder(), s, f);
-    }
-    
-    // Multiway cursor
-    if (!s.empty())
-        for_each_recursive(preorder(), s, f);
-    
-    return f;
-}
-
-//#endif //BOOST_RECURSIVE_ORDER_ALGORITHMS
-
-/**
- * @brief     Performs an operation on a subtree, by traversing it in preorder.
- * @param s  An input cursor.
- * @param t  An output cursor.
- * @param op A unary operation.
- * @result     A cursor past t's preorder end, after the transforming has 
- *              finished.
- * 
- * By traversing the input subtree s in preorder, apply the operation op 
- * to each element and write the result to the output subtree t.
- * 
- * op must not change its argument.
- */
-template <class InCursor, class OutCursor, class Op>
-BOOST_CONCEPT_REQUIRES(
-    ((Descendor<InCursor>))
-    ((Descendor<OutCursor>)),
-    (OutCursor)) // return type
-transform(preorder, InCursor s, OutCursor t, Op op, descending_vertical_traversal_tag)
-{
-    InCursor r = s.end();
-    s.to_begin();
-    t.to_begin();
-    for (; s != r; ++s, ++t) {
-        *t = op(*s);
-        if (!s.empty())
-            transform(preorder(), s, t, op, descending_vertical_traversal_tag());
-    }
-
-    // Multiway cursor
-    if (!s.empty())
-        transform(preorder(), s, t, op, descending_vertical_traversal_tag());
-        
-    return t;
-}
-
-//#endif //BOOST_RECURSIVE_ORDER_ALGORITHMS
-
-} // namespace detail
-} // namespace tree
-} // namespace boost
-
-#endif // BOOST_TREE_DETAIL_RECURSIVE_PREORDER_ALGORITHMS_HPP