Fix building with GCC 5 and subsequently clean up sgi-hashmap.h

This commit is contained in:
Vedran Miletić
2015-03-05 15:50:18 +01:00
parent b27422fb2f
commit 3edd12c191

View File

@@ -8,28 +8,34 @@
/* To use gcc extensions.
*/
#ifdef __GNUC__
#if __GNUC__ < 3
#include <hash_map.h>
namespace sgi { using ::hash_map; }; // inherit globals
#else
#if __GNUC__ < 4
#include <ext/hash_map>
#if __GNUC_MINOR__ == 0
namespace sgi = std; // GCC 3.0
#else
namespace sgi = ::__gnu_cxx; // GCC 3.1 and later
#endif
#else // gcc 4.x and later
#if __GNUC_MINOR__ < 3
#ifdef __clang__
#if __GNUC__ < 3 // GCC 2.x
#include <hash_map.h>
namespace sgi { using ::hash_map; }; // inherit globals
#else
#if __GNUC__ < 4 // GCC 3.x
#include <ext/hash_map>
#if __GNUC_MINOR__ == 0
namespace sgi = std; // GCC 3.0
#else
namespace sgi = ::__gnu_cxx; // GCC 3.1 and later
#endif
#else
#if __GNUC__ < 5 // GCC 4.x
#if __GNUC_MINOR__ < 3 // GCC 4.0, 4.1 and 4.2
#ifdef __clang__ // Clang identifies as GCC 4.2
#undef __DEPRECATED
#endif
#include <ext/hash_map>
namespace sgi = ::__gnu_cxx;
#else
#undef __DEPRECATED
#include <backward/hash_map>
namespace sgi = ::__gnu_cxx;
#endif
#include <ext/hash_map>
namespace sgi = ::__gnu_cxx;
#else
#undef __DEPRECATED
#include <backward/hash_map>
namespace sgi = ::__gnu_cxx;
#else // GCC 5.x
#undef __DEPRECATED
#include <backward/hash_map>
namespace sgi = ::__gnu_cxx;
#endif
#endif
#endif