$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r80774 - in sandbox-branches/geometry/index_dev/boost/geometry/extensions/index/rtree: . visitors
From: adam.wulkiewicz_at_[hidden]
Date: 2012-09-30 07:40:10
Author: awulkiew
Date: 2012-09-30 07:40:09 EDT (Sun, 30 Sep 2012)
New Revision: 80774
URL: http://svn.boost.org/trac/boost/changeset/80774
Log:
NodeProxy create() template member replaced by template function.
Text files modified: 
   sandbox-branches/geometry/index_dev/boost/geometry/extensions/index/rtree/node_proxy.hpp       |    40 +++++++++++++++++++++++++++-------------
   sandbox-branches/geometry/index_dev/boost/geometry/extensions/index/rtree/rtree.hpp            |     2 +-                                      
   sandbox-branches/geometry/index_dev/boost/geometry/extensions/index/rtree/visitors/copy.hpp    |     4 ++--                                    
   sandbox-branches/geometry/index_dev/boost/geometry/extensions/index/rtree/visitors/destroy.hpp |     4 ++--                                    
   sandbox-branches/geometry/index_dev/boost/geometry/extensions/index/rtree/visitors/insert.hpp  |     4 ++--                                    
   sandbox-branches/geometry/index_dev/boost/geometry/extensions/index/rtree/visitors/remove.hpp  |     6 +++---                                  
   6 files changed, 37 insertions(+), 23 deletions(-)
Modified: sandbox-branches/geometry/index_dev/boost/geometry/extensions/index/rtree/node_proxy.hpp
==============================================================================
--- sandbox-branches/geometry/index_dev/boost/geometry/extensions/index/rtree/node_proxy.hpp	(original)
+++ sandbox-branches/geometry/index_dev/boost/geometry/extensions/index/rtree/node_proxy.hpp	2012-09-30 07:40:09 EDT (Sun, 30 Sep 2012)
@@ -57,18 +57,6 @@
         , m_allocators(allocator)
     {}
 
-    template <typename Node>
-    node * create()
-    {
-        return detail::rtree::create_node<allocators_type, Node>::apply(m_allocators);
-    }
-
-    template <typename Node>
-    void destroy(node * n)
-    {
-        return detail::rtree::destroy_node<allocators_type, Node>::apply(m_allocators, n);
-    }
-
     // HMMMM - trzeba zwracac uwage na translator::return_type
 //    template <typename Element>
 //    typename element_indexable_type<Element>::type const&
@@ -120,7 +108,12 @@
         return m_translator;
     }
 
-    allocator_type allocator() const
+    allocators_type & allocators()
+    {
+        return m_allocators;
+    }
+
+    allocator_type & allocator()
     {
         return m_allocators.allocator;
     }
@@ -131,6 +124,27 @@
     allocators_type m_allocators;
 };
 
+template <typename Node, typename Value, typename Parameters, typename Translator, typename Allocator>
+typename node_proxy<Value, Parameters, Translator, Allocator>::node *
+    create(node_proxy<Value, Parameters, Translator, Allocator> & np)
+{
+    return detail::rtree::create_node<
+        typename node_proxy<Value, Parameters, Translator, Allocator>::allocators_type,
+        Node
+    >::apply(np.allocators());
+}
+
+template <typename Node, typename Value, typename Parameters, typename Translator, typename Allocator>
+void destroy(
+    typename node_proxy<Value, Parameters, Translator, Allocator>::node * n,
+    node_proxy<Value, Parameters, Translator, Allocator> & np)
+{
+    return detail::rtree::destroy_node<
+        typename node_proxy<Value, Parameters, Translator, Allocator>::allocators_type,
+        Node
+    >::apply(np.allocators(), n);
+}
+
 }}}}} // namespace boost::geometry::index::detail::rtree
 
 #endif // BOOST_GEOMETRY_EXTENSIONS_INDEX_RTREE_NODE_PROXY_HPP
Modified: sandbox-branches/geometry/index_dev/boost/geometry/extensions/index/rtree/rtree.hpp
==============================================================================
--- sandbox-branches/geometry/index_dev/boost/geometry/extensions/index/rtree/rtree.hpp	(original)
+++ sandbox-branches/geometry/index_dev/boost/geometry/extensions/index/rtree/rtree.hpp	2012-09-30 07:40:09 EDT (Sun, 30 Sep 2012)
@@ -588,7 +588,7 @@
     {
         assert(0 == m_root);
 
-        m_root = m_node_proxy.template create_node<leaf>();
+        m_root = detail::rtree::create<leaf>(m_node_proxy);
         m_values_count = 0;
         m_leafs_level = 0;
     }
Modified: sandbox-branches/geometry/index_dev/boost/geometry/extensions/index/rtree/visitors/copy.hpp
==============================================================================
--- sandbox-branches/geometry/index_dev/boost/geometry/extensions/index/rtree/visitors/copy.hpp	(original)
+++ sandbox-branches/geometry/index_dev/boost/geometry/extensions/index/rtree/visitors/copy.hpp	2012-09-30 07:40:09 EDT (Sun, 30 Sep 2012)
@@ -41,7 +41,7 @@
 
     inline void operator()(internal_node & n)
     {
-        node * new_node = m_node_proxy.template create<internal_node>();
+        node * new_node = rtree::create<internal_node>(m_node_proxy);
 
         typedef typename rtree::elements_type<internal_node>::type elements_type;
         elements_type & elements = rtree::elements(n);
@@ -61,7 +61,7 @@
 
     inline void operator()(leaf & l)
     {
-        node * new_node = m_node_proxy.template create<leaf>();
+        node * new_node = rtree::create<leaf>(m_node_proxy);
         
         typedef typename rtree::elements_type<leaf>::type elements_type;
         elements_type & elements = rtree::elements(l);
Modified: sandbox-branches/geometry/index_dev/boost/geometry/extensions/index/rtree/visitors/destroy.hpp
==============================================================================
--- sandbox-branches/geometry/index_dev/boost/geometry/extensions/index/rtree/visitors/destroy.hpp	(original)
+++ sandbox-branches/geometry/index_dev/boost/geometry/extensions/index/rtree/visitors/destroy.hpp	2012-09-30 07:40:09 EDT (Sun, 30 Sep 2012)
@@ -55,14 +55,14 @@
             rtree::apply_visitor(*this, *m_current_node);
         }
 
-        m_node_proxy.template destroy<internal_node>(node_to_destroy);
+        rtree::destroy<internal_node>(node_to_destroy, m_node_proxy);
     }
 
     inline void operator()(leaf & l)
     {
         BOOST_GEOMETRY_INDEX_ASSERT(&l == rtree::get<leaf>(m_current_node), "invalid pointers");
 
-        m_node_proxy.template destroy<leaf>(m_current_node);
+        rtree::destroy<leaf>(m_current_node, m_node_proxy);
     }
 
 private:
Modified: sandbox-branches/geometry/index_dev/boost/geometry/extensions/index/rtree/visitors/insert.hpp
==============================================================================
--- sandbox-branches/geometry/index_dev/boost/geometry/extensions/index/rtree/visitors/insert.hpp	(original)
+++ sandbox-branches/geometry/index_dev/boost/geometry/extensions/index/rtree/visitors/insert.hpp	2012-09-30 07:40:09 EDT (Sun, 30 Sep 2012)
@@ -130,7 +130,7 @@
                              NodeProxy & node_proxy)
     {
         // create additional node
-        node * second_node = node_proxy.template create<Node>();
+        node * second_node = rtree::create<Node>(node_proxy);
         Node & n2 = rtree::get<Node>(*second_node);
 
         // redistribute elements
@@ -287,7 +287,7 @@
             BOOST_GEOMETRY_INDEX_ASSERT(&n == rtree::get<Node>(m_root_node), "node should be the root");
 
             // create new root and add nodes
-            node * new_root = m_node_proxy.template create<internal_node>();
+            node * new_root = rtree::create<internal_node>(m_node_proxy);
 
             rtree::elements(rtree::get<internal_node>(*new_root)).push_back(std::make_pair(n_box, m_root_node));
             rtree::elements(rtree::get<internal_node>(*new_root)).push_back(additional_nodes[0]);
Modified: sandbox-branches/geometry/index_dev/boost/geometry/extensions/index/rtree/visitors/remove.hpp
==============================================================================
--- sandbox-branches/geometry/index_dev/boost/geometry/extensions/index/rtree/visitors/remove.hpp	(original)
+++ sandbox-branches/geometry/index_dev/boost/geometry/extensions/index/rtree/visitors/remove.hpp	2012-09-30 07:40:09 EDT (Sun, 30 Sep 2012)
@@ -128,13 +128,13 @@
                     {
                         reinsert_elements(rtree::get<leaf>(*it->second), it->first);
 
-                        m_node_proxy.template destroy<leaf>(it->second);
+                        index::detail::rtree::destroy<leaf>(it->second, m_node_proxy);
                     }
                     else
                     {
                         reinsert_elements(rtree::get<internal_node>(*it->second), it->first);
 
-                        m_node_proxy.template destroy<internal_node>(it->second);
+                        rtree::destroy<internal_node>(it->second, m_node_proxy);
                     }
                 }
 
@@ -145,7 +145,7 @@
                     m_root_node = rtree::elements(n)[0].second;
                     --m_leafs_level;
 
-                    m_node_proxy.template destroy<internal_node>(root_to_destroy);
+                    rtree::destroy<internal_node>(root_to_destroy, m_node_proxy);
                 }
             }
         }