diff options
author | Toni Uhlig <matzeton@googlemail.com> | 2021-04-08 16:43:58 +0200 |
---|---|---|
committer | Toni Uhlig <matzeton@googlemail.com> | 2021-04-08 16:43:58 +0200 |
commit | e59cf7b09e7388d369e8d2bf73501cde79c28708 (patch) | |
tree | 6099307032bb86f4a969721f9ac447d3d1be67d4 /include/EASTL/unordered_map.h |
Squashed 'EASTL/' content from commit fad5471
git-subtree-dir: EASTL
git-subtree-split: fad54717f8e4ebb13b20095da7efd07a53af0f10
Diffstat (limited to 'include/EASTL/unordered_map.h')
-rw-r--r-- | include/EASTL/unordered_map.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/include/EASTL/unordered_map.h b/include/EASTL/unordered_map.h new file mode 100644 index 0000000..10c6b88 --- /dev/null +++ b/include/EASTL/unordered_map.h @@ -0,0 +1,55 @@ +/////////////////////////////////////////////////////////////////////////////// +// Copyright (c) Electronic Arts Inc. All rights reserved. +/////////////////////////////////////////////////////////////////////////////// + +#ifndef EASTL_UNORDERED_MAP_H +#define EASTL_UNORDERED_MAP_H + +#include <EASTL/internal/config.h> +#include <EASTL/hash_map.h> + +#if defined(EA_PRAGMA_ONCE_SUPPORTED) + #pragma once // Some compilers (e.g. VC++) benefit significantly from using this. We've measured 3-4% build speed improvements in apps as a result. +#endif + +namespace eastl +{ + /// unordered_map + /// + /// The original TR1 (technical report 1) used "hash_map" to name a hash + /// table backed associative container of unique key-value pairs. When the + /// container was added to the C++11 standard the committee chose the name + /// "unordered_map" to clarify that internally the elements are NOT sorted in + /// any particular order. We provide a template alias here to ensure feature + /// parity with the original eastl::hash_map. + /// + #if !defined(EA_COMPILER_NO_TEMPLATE_ALIASES) + template <typename Key, + typename T, + typename Hash = eastl::hash<Key>, + typename Predicate = eastl::equal_to<Key>, + typename Allocator = EASTLAllocatorType, + bool bCacheHashCode = false> + using unordered_map = hash_map<Key, T, Hash, Predicate, Allocator, bCacheHashCode>; + #endif + + + /// unordered_multimap + /// + /// Similar template alias as "unordered_map" except the contained elements + /// need not be unique. See "hash_multimap" for more details. + /// + #if !defined(EA_COMPILER_NO_TEMPLATE_ALIASES) + template <typename Key, + typename T, + typename Hash = eastl::hash<Key>, + typename Predicate = eastl::equal_to<Key>, + typename Allocator = EASTLAllocatorType, + bool bCacheHashCode = false> + using unordered_multimap = hash_multimap<Key, T, Hash, Predicate, Allocator, bCacheHashCode>; + #endif + +} // namespace eastl + +#endif // Header include guard + |