Boost logo

Boost-Commit :

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


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk