16#include <unordered_map>
20 template<
typename Key,
typename T,
typename Compare = std::less<>,
typename RawAllocator = DefaultAllocator>
21 using MultiMap = std::multimap<Key, T, Compare, ScopedAllocatorAdaptor<StdAllocator<Pair<const Key, T>,
RawAllocator>>>;
26 template<
typename Key,
typename T,
typename Hash = std::hash<Key>,
typename KeyEqual = std::equal_to<>,
typename RawAllocator = DefaultAllocator>
27 using HashMultiMap = std::unordered_multimap<Key, T, Hash, KeyEqual, ScopedAllocatorAdaptor<StdAllocator<Pair<const Key, T>,
RawAllocator>>>;
30 template<
typename Key,
typename T,
typename Hash = std::hash<Key>,
typename KeyEqual = std::equal_to<>>
34template<
typename Key,
typename T,
typename Compare,
typename RawAllocator>
struct std::hash<
CeresEngine::MultiMap<Key, T, Compare, RawAllocator>> {
36 inline size_t operator()(
const Type&
object)
const noexcept {
38 for(
const auto& value : object) {
45template<
typename Key,
typename T,
typename Hash,
typename KeyEqual,
typename RawAllocator>
48 inline size_t operator()(
const Type&
object)
const noexcept {
50 for(
const auto& value : object) {
Definition Application.hpp:19
constexpr void combine(std::size_t &seed, const T &v)
Generates a new hash for the provided type using the default standard hasher and combines it with a p...
Definition Hash.hpp:32
MultiMap< Key, T, Compare, TemporaryAllocator > TemporaryMultiMap
A special MultiMap that uses a fast temporary allocator.
Definition MultiMap.hpp:24
std::unordered_multimap< Key, T, Hash, KeyEqual, ScopedAllocatorAdaptor< StdAllocator< Pair< const Key, T >, RawAllocator > > > HashMultiMap
Definition MultiMap.hpp:27
HashMultiMap< Key, T, Hash, KeyEqual, TemporaryAllocator > TemporaryHashMultiMap
A special HashMultiMap that uses a fast temporary allocator.
Definition MultiMap.hpp:31
constexpr size_t hash(const T &v)
Generates a hash for the provided type.
Definition Hash.hpp:25
std::multimap< Key, T, Compare, ScopedAllocatorAdaptor< StdAllocator< Pair< const Key, T >, RawAllocator > > > MultiMap
Definition MultiMap.hpp:21