summaryrefslogtreecommitdiff
path: root/src/tr1_hash_map.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/tr1_hash_map.h')
-rw-r--r--src/tr1_hash_map.h25
1 files changed, 6 insertions, 19 deletions
diff --git a/src/tr1_hash_map.h b/src/tr1_hash_map.h
index 611d4d4..a2d3334 100644
--- a/src/tr1_hash_map.h
+++ b/src/tr1_hash_map.h
@@ -29,7 +29,9 @@
// detection and fallback for unordered_map in C++0x
#ifdef __cplusplus
- #ifdef __GNUC__
+ // detect GCC 4.3 or later and use unordered map (part of C++0x)
+ // unordered map doesn't play nice with _GLIBCXX_DEBUG, just use a map if its enabled.
+ #if defined( __GNUC__ ) and not defined( _GLIBCXX_DEBUG )
#if __GNUC__ >= 4 && __GNUC_MINOR__ >= 3
#include <unordered_map>
#define tr1_hash_map std::unordered_map
@@ -45,23 +47,8 @@
#define tr1_hash_map_ismap 1
#endif
- // detect gcc 4.3 and use unordered map (part of c++0x)
- // unordered map doesn't play nice with _GLIBCXX_DEBUG, just use a map if its enabled.
- #if defined( __GNUC__ ) and not defined( _GLIBCXX_DEBUG )
- #if __GNUC__ >= 4 && __GNUC_MINOR__ >= 3
- #include <unordered_map>
- #define my_hash_map std::unordered_map
- #else
- #include <ext/hash_map>
- namespace std {
- using namespace __gnu_cxx;
- }
- #define my_hash_map std::hash_map
- #endif
- #else
- #include <map>
- #define my_hash_map std::map
- #define USE_MAP
- #endif
+ #if tr1_hash_map_ismap == 1
+ #warning "Pre-C++11 GCC version detected. Downgrading all use of <unordered_map> to <map>. Please upgrade to GCC 4.3 or later for faster simulation."
+ #endif
#endif