13 #ifndef SPATIAL_BOX_MULTISET_HPP
14 #define SPATIAL_BOX_MULTISET_HPP
17 #include "function.hpp"
18 #include "bits/spatial_check_concept.hpp"
19 #include "bits/spatial_relaxed_kdtree.hpp"
35 typename Compare = bracket_less<Key>,
36 typename BalancingPolicy = loose_balancing,
37 typename Alloc = std::allocator<Key> >
40 const Key, Compare, BalancingPolicy, Alloc>
55 : base_type(details::Static_rank<Rank>(), compare)
59 : base_type(details::Static_rank<Rank>(), compare, balancing)
64 : base_type(details::Static_rank<Rank>(), compare, balancing, alloc)
90 template<
typename Key,
92 typename BalancingPolicy,
96 const Key, Compare, BalancingPolicy, Alloc>
100 const Key,
const Key, Compare,
108 : base_type(details::Dynamic_rank(dim))
112 : base_type(details::Dynamic_rank(dim), compare)
116 const BalancingPolicy& policy)
117 : base_type(details::Dynamic_rank(dim), compare, policy)
121 const BalancingPolicy& policy,
const Alloc& alloc)
122 : base_type(details::Dynamic_rank(dim), compare, policy, alloc)
126 : base_type(details::Dynamic_rank(2), compare)
130 : base_type(details::Dynamic_rank(2), compare, policy)
135 : base_type(details::Dynamic_rank(2), compare, policy, alloc)
149 #endif // SPATIAL_BOX_MULTISET_HPP
Relaxed_kdtree & operator=(const Relaxed_kdtree &other)
Assignment of other into the tree, with deep copy.
box_multiset & operator=(const box_multiset &other)
Detailed implementation of the kd-tree.
box_multiset(const box_multiset &other)
The dimension value is stored by a member of the object, but can be modified at run time...
details::Relaxed_kdtree< details::Dynamic_rank, const Key, const Key, Compare, BalancingPolicy, Alloc > base_type
These containers are not mapped containers and store values in space that can be represented as boxes...
box_multiset(const Compare &compare)
details::Relaxed_kdtree< details::Static_rank< Rank >, const Key, const Key, Compare, BalancingPolicy, Alloc > base_type
box_multiset(const Compare &compare, const BalancingPolicy &policy)
box_multiset(dimension_type dim)
box_multiset(dimension_type dim, const Compare &compare, const BalancingPolicy &policy)
void check_even_rank(dimension_type rank)
Checks that rank is not null and that it is a multiple of 2.
box_multiset(dimension_type dim, const Compare &compare)
box_multiset & operator=(const box_multiset &other)
balancing_policy balancing() const
Returns the balancing policy for the container.
box_multiset(const Compare &compare, const BalancingPolicy &balancing)
std::size_t dimension_type
Defines the type for the dimension as being a size.
Specialization for spatial::box_multiset with runtime rank support.
If B is true, spatial::enable_if has a public member typedef type, equal to Tp; otherwise, there is no member typedef.
box_multiset(dimension_type dim, const Compare &compare, const BalancingPolicy &policy, const Alloc &alloc)
The dimension value is set by a template value, thus consuming no memory.
The main namespace used in the library.
box_multiset(const Compare &compare, const BalancingPolicy &policy, const Alloc &alloc)
box_multiset(const Compare &compare, const BalancingPolicy &balancing, const Alloc &alloc)
box_multiset< 0, Key, Compare, BalancingPolicy, Alloc > Self
box_multiset(const Compare &compare)
box_multiset(const box_multiset &other)
enable_if_c<(Rank &1u)==0 >::type check_concept_dimension_is_even
box_multiset< Rank, Key, Compare, BalancingPolicy, Alloc > Self