18 #ifndef SPATIAL_IDLE_BOX_MULTIMAP_HPP
19 #define SPATIAL_IDLE_BOX_MULTIMAP_HPP
23 #include "function.hpp"
24 #include "bits/spatial_check_concept.hpp"
25 #include "bits/spatial_kdtree.hpp"
31 typename Compare = bracket_less<Key>,
32 typename Alloc = std::allocator<std::pair<const Key, Mapped> > >
35 std::pair<const Key, Mapped>, Compare, Alloc>
52 : base_type(details::Static_rank<Rank>(), compare)
56 : base_type(details::Static_rank<Rank>(), compare, alloc)
60 : base_type(other, balancing)
83 template<
typename Key,
typename Mapped,
typename Compare,
typename Alloc>
86 std::pair<const Key, Mapped>, Compare, Alloc>
90 std::pair<const Key, Mapped>,
100 : base_type(details::Dynamic_rank(dim))
104 : base_type(details::Dynamic_rank(dim), compare)
108 : base_type(details::Dynamic_rank(2), compare)
113 : base_type(details::Dynamic_rank(dim), compare, alloc)
117 : base_type(details::Dynamic_rank(2), compare, alloc)
121 : base_type(other, balancing)
133 #endif // SPATIAL_IDLE_BOX_MULTIMAP_HPP
idle_box_multimap< Rank, Key, Mapped, Compare, Alloc > Self
idle_box_multimap(const Compare &compare)
idle_box_multimap< 0, Key, Mapped, Compare, Alloc > Self
details::Kdtree< details::Dynamic_rank, const Key, std::pair< const Key, Mapped >, Compare, Alloc > base_type
The dimension value is stored by a member of the object, but can be modified at run time...
idle_box_multimap(const Compare &compare, const Alloc &alloc)
idle_box_multimap(const idle_box_multimap &other, bool balancing=false)
idle_box_multimap(dimension_type dim, const Compare &compare, const Alloc &alloc)
void check_even_rank(dimension_type rank)
Checks that rank is not null and that it is a multiple of 2.
idle_box_multimap(const Compare &compare)
details::Kdtree< details::Static_rank< Rank >, const Key, std::pair< const Key, Mapped >, Compare, Alloc > base_type
idle_box_multimap(const Compare &compare, const Alloc &alloc)
Specialization for spatial::idle_box_multimap with runtime rank support.
enable_if_c<(Rank &1u)==0 >::type check_concept_dimension_is_even
idle_box_multimap & operator=(const idle_box_multimap &other)
std::size_t dimension_type
Defines the type for the dimension as being a size.
If B is true, spatial::enable_if has a public member typedef type, equal to Tp; otherwise, there is no member typedef.
The dimension value is set by a template value, thus consuming no memory.
idle_box_multimap(dimension_type dim)
The main namespace used in the library.
idle_box_multimap & operator=(const idle_box_multimap &other)
Detailed implementation of the kd-tree.
idle_box_multimap(dimension_type dim, const Compare &compare)
Self & operator=(const Self &other)
Assignment of other into the tree, with deep copy.
idle_box_multimap(const idle_box_multimap &other, bool balancing=false)