18 #ifndef ZENI_HASH_MAP_H
19 #define ZENI_HASH_MAP_H
24 #define __has_include(x) 0
27 #if __has_include("unordered_map")
29 #include <unordered_map>
33 template <
typename Key,
typename Ty>
34 class Unordered_Map :
public std::unordered_map<Key, Ty> {
37 template <
typename Ty>
38 class Unordered_Map<String, Ty> :
public std::unordered_map<String, Ty, String::Hash> {
45 #include <tr1/unordered_map>
49 template <
typename Key,
typename Ty>
50 class Unordered_Map :
public std::tr1::unordered_map<Key, Ty> {
53 template <
typename Ty>
54 class Unordered_Map<String, Ty> :
public std::tr1::unordered_map<String, Ty, String::Hash> {
59 #elif defined(__GNUC__)
61 #include <ext/hash_map>
65 template <
typename Key,
typename Ty>
66 class Unordered_Map :
public __gnu_cxx::hash_map<Key, Ty> {
69 template <
typename Ty>
70 class Unordered_Map<String, Ty> :
public __gnu_cxx::hash_map<String, Ty, String::Hash> {
81 template <
typename Key,
typename Ty>
85 template <
typename Ty>