// from void split_node(node_pointer const& n, node_pointer& n1, node_pointer& n2) const
-template <typename Value, typename Options, typename Translator, typename Box, typename Allocators>
-struct redistribute_elements<Value, Options, Translator, Box, Allocators, linear_tag>
+template <typename MembersHolder>
+struct redistribute_elements<MembersHolder, linear_tag>
{
- typedef typename Options::parameters_type parameters_type;
+ typedef typename MembersHolder::box_type box_type;
+ typedef typename MembersHolder::parameters_type parameters_type;
+ typedef typename MembersHolder::translator_type translator_type;
+ typedef typename MembersHolder::allocators_type allocators_type;
- typedef typename rtree::node<Value, parameters_type, Box, Allocators, typename Options::node_tag>::type node;
- typedef typename rtree::internal_node<Value, parameters_type, Box, Allocators, typename Options::node_tag>::type internal_node;
- typedef typename rtree::leaf<Value, parameters_type, Box, Allocators, typename Options::node_tag>::type leaf;
+ typedef typename MembersHolder::node node;
+ typedef typename MembersHolder::internal_node internal_node;
+ typedef typename MembersHolder::leaf leaf;
template <typename Node>
static inline void apply(Node & n,
Node & second_node,
- Box & box1,
- Box & box2,
+ box_type & box1,
+ box_type & box2,
parameters_type const& parameters,
- Translator const& translator,
- Allocators & allocators)
+ translator_type const& translator,
+ allocators_type & allocators)
{
typedef typename rtree::elements_type<Node>::type elements_type;
typedef typename elements_type::value_type element_type;
- typedef typename rtree::element_indexable_type<element_type, Translator>::type indexable_type;
- typedef typename index::detail::default_content_result<Box>::type content_type;
+ typedef typename rtree::element_indexable_type<element_type, translator_type>::type indexable_type;
+ typedef typename index::detail::default_content_result<box_type>::type content_type;
typename index::detail::strategy_type<parameters_type>::type const&
strategy = index::detail::get_strategy(parameters);
else
{
// calculate enlarged boxes and areas
- Box enlarged_box1(box1);
- Box enlarged_box2(box2);
+ box_type enlarged_box1(box1);
+ box_type enlarged_box2(box2);
index::detail::expand(enlarged_box1, indexable, strategy);
index::detail::expand(enlarged_box2, indexable, strategy);
content_type enlarged_content1 = index::detail::content(enlarged_box1);
elements1.clear();
elements2.clear();
- rtree::destroy_elements<Value, Options, Translator, Box, Allocators>::apply(elements_copy, allocators);
+ rtree::destroy_elements<MembersHolder>::apply(elements_copy, allocators);
//elements_copy.clear();
BOOST_RETHROW // RETHROW, BASIC