18 #ifndef HASH_MAP_GUARD
19 #define HASH_MAP_GUARD
38 #if defined(__GNUC__) || defined(__clang__)
40 #include "hash_map/hash_map"
43 #include <unordered_map>
44 template<
class Key,
class Value>
45 class HashMap :
public std::unordered_map<Key, Value, FrobbyHash<Key>> { };
52 template<
class Key,
class Value>
53 class HashMap :
public __gnu_cxx::hash_map<Key, Value,
64 class HashWrapper :
public stdext::hash_compare<Key, ::std::less<Key> >,
FrobbyHash<Key> {
66 size_t operator()(
const Key& key)
const {
70 bool operator()(
const Key& a,
const Key& b)
const {
71 return stdext::hash_compare<Key, ::std::less<Key> >::operator()(a, b);
76 class HashWrapper<string> :
public stdext::hash_compare<string, ::std::less<string> > {
79 template<
class Key,
class Value>
80 class HashMap :
public stdext::hash_map<Key, Value, HashWrapper<Key> > {
86 template<
class Key,
class Value>
88 #if __cplusplus < 201103
89 public std::map<Key, Value>
91 public std::unordered_map<Key, Value>