$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r49023 - sandbox/SOC/2006/tree/trunk/boost/tree/detail/iterator
From: ockham_at_[hidden]
Date: 2008-09-29 14:38:29
Author: bernhard.reiter
Date: 2008-09-29 14:38:29 EDT (Mon, 29 Sep 2008)
New Revision: 49023
URL: http://svn.boost.org/trac/boost/changeset/49023
Log:
Re-arrange *order algorithms from namespaces to a policy(=template)-based mechanism, part 6.
Added:
   sandbox/SOC/2006/tree/trunk/boost/tree/detail/iterator/iterator.hpp   (contents, props changed)
Removed:
   sandbox/SOC/2006/tree/trunk/boost/tree/detail/iterator/_order.hpp
Deleted: sandbox/SOC/2006/tree/trunk/boost/tree/detail/iterator/_order.hpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/boost/tree/detail/iterator/_order.hpp	2008-09-29 14:38:29 EDT (Mon, 29 Sep 2008)
+++ (empty file)
@@ -1,81 +0,0 @@
-//  Copyright (c) 2006-2008, 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   iterator.hpp
- * 
- * Some definitions that are identical for all *order cursors (as we are just
- * calling the appropriate traversal function that are defined in the 
- * respective *order.hpp files).
- */
-
-#ifndef BOOST_TREE_DETAIL_ITERATOR_ITERATOR_HPP
-#define BOOST_TREE_DETAIL_ITERATOR_ITERATOR_HPP
-
-//#include <boost/tree/cursor.hpp>
-
-#include <boost/iterator/iterator_adaptor.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-#include <boost/utility/enable_if.hpp>
-
-namespace boost {
-namespace tree {
-
-/**
- * @brief   Traversal order iterator adaptor
- * 
- *          Only works with ascending cursors.
- */
-template <class Order, class Cursor>
-class iterator
- : public boost::iterator_adaptor<iterator<Order, Cursor>
-      , Cursor
-      , boost::use_default
-      , bidirectional_traversal_tag
-    > {
- private:
-    struct enabler {};
-
- public:
-    iterator()
-      : iterator::iterator_adaptor_() {}
-
-    explicit iterator(Cursor p)
-      : iterator::iterator_adaptor_(p) {}
-
-    template <class OtherCursor>
-    iterator(
-        iterator<Order, OtherCursor> const& other
-      , typename boost::enable_if<
-            boost::is_convertible<OtherCursor, Cursor>
-          , enabler
-        >::type = enabler()
-    )
-      : iterator::iterator_adaptor_(other.base()) {}
-
-    operator Cursor()
-    {
-        return this->base();
-    }
- private:
-    friend class boost::iterator_core_access;
-    
-    void increment()
-    {
-        forward(this->base_reference());
-        //BOOST_ASSERT(!this->base_reference().parity() || this->base_reference().is_root());
-    }
-    
-    void decrement()
-    {
-        back(this->base_reference());
-        //BOOST_ASSERT(!this->base_reference().parity() || this->base_reference().is_root());
-    }
-};
-
-} // namespace tree
-} // namespace boost
-
-#endif //BOOST_TREE_DETAIL_ITERATOR_ITERATOR_HPP
\ No newline at end of file
Added: sandbox/SOC/2006/tree/trunk/boost/tree/detail/iterator/iterator.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/tree/trunk/boost/tree/detail/iterator/iterator.hpp	2008-09-29 14:38:29 EDT (Mon, 29 Sep 2008)
@@ -0,0 +1,81 @@
+//  Copyright (c) 2006-2008, 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   iterator.hpp
+ * 
+ * Some definitions that are identical for all *order cursors (as we are just
+ * calling the appropriate traversal function that are defined in the 
+ * respective *order.hpp files).
+ */
+
+#ifndef BOOST_TREE_DETAIL_ITERATOR_ITERATOR_HPP
+#define BOOST_TREE_DETAIL_ITERATOR_ITERATOR_HPP
+
+//#include <boost/tree/cursor.hpp>
+
+#include <boost/iterator/iterator_adaptor.hpp>
+#include <boost/type_traits/is_convertible.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace boost {
+namespace tree {
+
+/**
+ * @brief   Traversal order iterator adaptor
+ * 
+ *          Only works with ascending cursors.
+ */
+template <class Order, class Cursor>
+class iterator
+ : public boost::iterator_adaptor<iterator<Order, Cursor>
+      , Cursor
+      , boost::use_default
+      , bidirectional_traversal_tag
+    > {
+ private:
+    struct enabler {};
+
+ public:
+    iterator()
+      : iterator::iterator_adaptor_() {}
+
+    explicit iterator(Cursor p)
+      : iterator::iterator_adaptor_(p) {}
+
+    template <class OtherCursor>
+    iterator(
+        iterator<Order, OtherCursor> const& other
+      , typename boost::enable_if<
+            boost::is_convertible<OtherCursor, Cursor>
+          , enabler
+        >::type = enabler()
+    )
+      : iterator::iterator_adaptor_(other.base()) {}
+
+    operator Cursor()
+    {
+        return this->base();
+    }
+ private:
+    friend class boost::iterator_core_access;
+    
+    void increment()
+    {
+        forward(this->base_reference());
+        //BOOST_ASSERT(!this->base_reference().parity() || this->base_reference().is_root());
+    }
+    
+    void decrement()
+    {
+        back(this->base_reference());
+        //BOOST_ASSERT(!this->base_reference().parity() || this->base_reference().is_root());
+    }
+};
+
+} // namespace tree
+} // namespace boost
+
+#endif //BOOST_TREE_DETAIL_ITERATOR_ITERATOR_HPP
\ No newline at end of file