summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAttila Molnar <attilamolnar@hush.com>2014-10-06 17:40:35 +0200
committerAttila Molnar <attilamolnar@hush.com>2014-10-06 17:40:35 +0200
commit529d26bdafb033a3f90691d21f609067261bb953 (patch)
treee55292f1c657bb6009ea5ac369ba37d837e9a97a
parent65b8c4f0decd5b834794db2bcb24ceb45ffad9cf (diff)
parente59943c1a5107c7be39e38ade546f8f6c6d06145 (diff)
Merge pull request #931 from SaberUK/insp20+fix-non-gnu-stl
Fix hash_map.h on non-GNU C++ standard library implementations.
-rw-r--r--include/hash_map.h18
1 files changed, 9 insertions, 9 deletions
diff --git a/include/hash_map.h b/include/hash_map.h
index 1b43f0118..e789ea66a 100644
--- a/include/hash_map.h
+++ b/include/hash_map.h
@@ -29,12 +29,16 @@
* TODO: in 2.2 if we drop support for libstdc++ older than 3.4.7 and GCC older
* than 4.1 this can be cleaned up massively.
*/
- #ifndef _WIN32
- #if __GLIBCXX__ > 20060309
+ #if !defined _LIBCPP_VERSION && !defined _WIN32
+ #if !defined __GLIBCXX__ || __GLIBCXX__ > 20060309
// GCC4+ has deprecated hash_map and uses tr1. But of course, uses a different include to MSVC. FOR FUCKS SAKE.
#include <tr1/unordered_map>
#define HAS_TR1_UNORDERED
#define HASHMAP_DEPRECATED
+ #define hash_map unordered_map
+ #define nspace std::tr1
+ #define BEGIN_HASHMAP_NAMESPACE namespace std { namespace tr1 {
+ #define END_HASHMAP_NAMESPACE } }
#else
#include <ext/hash_map>
/** Oddball linux namespace for hash_map */
@@ -46,14 +50,10 @@
#include <unordered_map>
#define HAS_TR1_UNORDERED
#define HASHMAP_DEPRECATED
- #endif
-
- // tr1: restoring sanity to our headers. now if only compiler vendors could agree on a FUCKING INCLUDE FILE.
- #ifdef HAS_TR1_UNORDERED
#define hash_map unordered_map
- #define nspace std::tr1
- #define BEGIN_HASHMAP_NAMESPACE namespace std { namespace tr1 {
- #define END_HASHMAP_NAMESPACE } }
+ #define nspace std
+ #define BEGIN_HASHMAP_NAMESPACE namespace std {
+ #define END_HASHMAP_NAMESPACE }
#endif
#endif