$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r75316 - sandbox-branches/geometry/index/boost/geometry/extensions/index/rtree/visitors
From: adam.wulkiewicz_at_[hidden]
Date: 2011-11-04 10:57:12
Author: awulkiew
Date: 2011-11-04 10:57:11 EDT (Fri, 04 Nov 2011)
New Revision: 75316
URL: http://svn.boost.org/trac/boost/changeset/75316
Log:
split result OutIter replaced by reference to the container.
Text files modified: 
   sandbox-branches/geometry/index/boost/geometry/extensions/index/rtree/visitors/insert.hpp |    20 ++++++++++----------                    
   1 files changed, 10 insertions(+), 10 deletions(-)
Modified: sandbox-branches/geometry/index/boost/geometry/extensions/index/rtree/visitors/insert.hpp
==============================================================================
--- sandbox-branches/geometry/index/boost/geometry/extensions/index/rtree/visitors/insert.hpp	(original)
+++ sandbox-branches/geometry/index/boost/geometry/extensions/index/rtree/visitors/insert.hpp	2011-11-04 10:57:11 EDT (Fri, 04 Nov 2011)
@@ -113,12 +113,14 @@
     typedef typename Options::parameters_type parameters_type;
 
 public:
-    template <typename Node, typename OutIter>
-    static inline void apply(Node & n,
+    typedef index::pushable_array<std::pair<Box, node*>, 1> nodes_container_type;
+
+    template <typename Node>
+    static inline void apply(nodes_container_type & additional_nodes,
+                             Node & n,
                              Box & n_box,
                              Translator const& tr,
-                             Allocators & allocators,
-                             OutIter out_it)
+                             Allocators & allocators)
     {
         // create additional node
         node * second_node = rtree::create_node<Allocators, Node>::apply(allocators);
@@ -137,7 +139,7 @@
             rtree::elements(n2).size() <= parameters_type::max_elements,
             "unexpected number of elements");
 
-        *out_it++ = std::make_pair(box2, second_node);
+        additional_nodes.push_back(std::make_pair(box2, second_node));
     }
 };
 
@@ -237,14 +239,12 @@
     template <typename Node>
     inline void split(Node & n) const
     {
-        index::pushable_array<
-            std::pair<Box, node*>, 1
-        > additional_nodes;
+        typedef detail::split<Value, Options, Translator, Box, Allocators, typename Options::split_tag> split_algo;
 
+        typename split_algo::nodes_container_type additional_nodes;
         Box n_box;
 
-        detail::split<Value, Options, Translator, Box, Allocators, typename Options::split_tag>
-            ::apply(n, n_box, m_tr, m_allocators, std::back_inserter(additional_nodes));
+        split_algo::apply(additional_nodes, n, n_box, m_tr, m_allocators);
 
         BOOST_GEOMETRY_INDEX_ASSERT(additional_nodes.size() == 1, "unexpected number of additional nodes");