diff --git a/include/boost/geometry/index/detail/rtree/node/node_d_mem_dynamic.hpp b/include/boost/geometry/index/detail/rtree/node/node_d_mem_dynamic.hpp index 7d7bc401e..5ef472242 100644 --- a/include/boost/geometry/index/detail/rtree/node/node_d_mem_dynamic.hpp +++ b/include/boost/geometry/index/detail/rtree/node/node_d_mem_dynamic.hpp @@ -198,6 +198,12 @@ public: , leaf_allocator_type(boost::move(a.leaf_allocator())) {} + inline allocators & operator=(BOOST_FWD_REF(allocators) a) + { + internal_node_allocator() = ::boost::move(a.internal_node_allocator()); + leaf_allocator() = ::boost::move(a.leaf_allocator()); + } + void swap(allocators & a) { boost::swap(internal_node_allocator(), a.internal_node_allocator()); diff --git a/include/boost/geometry/index/detail/rtree/node/node_d_mem_static.hpp b/include/boost/geometry/index/detail/rtree/node/node_d_mem_static.hpp index a73437045..8a636c28b 100644 --- a/include/boost/geometry/index/detail/rtree/node/node_d_mem_static.hpp +++ b/include/boost/geometry/index/detail/rtree/node/node_d_mem_static.hpp @@ -147,6 +147,12 @@ public: , leaf_allocator_type(boost::move(a.leaf_allocator())) {} + inline allocators & operator=(BOOST_FWD_REF(allocators) a) + { + internal_node_allocator() = ::boost::move(a.internal_node_allocator()); + leaf_allocator() = ::boost::move(a.leaf_allocator()); + } + void swap(allocators & a) { boost::swap(internal_node_allocator(), a.internal_node_allocator()); diff --git a/include/boost/geometry/index/detail/rtree/node/node_s_mem_dynamic.hpp b/include/boost/geometry/index/detail/rtree/node/node_s_mem_dynamic.hpp index b3331e9c8..c138df88b 100644 --- a/include/boost/geometry/index/detail/rtree/node/node_s_mem_dynamic.hpp +++ b/include/boost/geometry/index/detail/rtree/node/node_s_mem_dynamic.hpp @@ -123,6 +123,11 @@ public: : node_allocator_type(boost::move(a.node_allocator())) {} + inline allocators & operator=(BOOST_FWD_REF(allocators) a) + { + node_allocator() = boost::move(a.node_allocator()); + } + void swap(allocators & a) { boost::swap(node_allocator(), a.node_allocator()); diff --git a/include/boost/geometry/index/detail/rtree/node/node_s_mem_static.hpp b/include/boost/geometry/index/detail/rtree/node/node_s_mem_static.hpp index 252db0c82..1ad4887c7 100644 --- a/include/boost/geometry/index/detail/rtree/node/node_s_mem_static.hpp +++ b/include/boost/geometry/index/detail/rtree/node/node_s_mem_static.hpp @@ -121,6 +121,11 @@ public: : node_allocator_type(boost::move(a.node_allocator())) {} + inline allocators & operator=(BOOST_FWD_REF(allocators) a) + { + node_allocator() = boost::move(a.node_allocator()); + } + void swap(allocators & a) { boost::swap(node_allocator(), a.node_allocator()); diff --git a/include/boost/geometry/index/detail/rtree/visitors/spatial_query.hpp b/include/boost/geometry/index/detail/rtree/visitors/spatial_query.hpp index 3a15f04bd..c676be0cc 100644 --- a/include/boost/geometry/index/detail/rtree/visitors/spatial_query.hpp +++ b/include/boost/geometry/index/detail/rtree/visitors/spatial_query.hpp @@ -23,6 +23,8 @@ struct spatial_query typedef typename rtree::internal_node::type internal_node; typedef typename rtree::leaf::type leaf; + typedef typename Allocators::size_type size_type; + static const unsigned predicates_len = index::detail::predicates_length::value; inline spatial_query(Translator const& t, Predicates const& p, OutIter out_it) @@ -70,7 +72,7 @@ struct spatial_query Predicates pred; OutIter out_iter; - size_t found_count; + size_type found_count; }; }}} // namespace detail::rtree::visitors