From 745ee750e02f2cd5c01ff8cd291e050cde17f318 Mon Sep 17 00:00:00 2001 From: sanctum32 Date: Mon, 2 Feb 2015 20:38:09 +0000 Subject: [PATCH] Older versions of clang ( 3.6 and older) still uses tr1 namespace for some types --- src/framework/Utilities/UnorderedMapSet.h | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/framework/Utilities/UnorderedMapSet.h b/src/framework/Utilities/UnorderedMapSet.h index ba4cba3df..a1fc77d87 100644 --- a/src/framework/Utilities/UnorderedMapSet.h +++ b/src/framework/Utilities/UnorderedMapSet.h @@ -96,16 +96,19 @@ HASH_NAMESPACE_END # define HASH_NAMESPACE_END } using std::hash_map; using std::hash_set; -#elif COMPILER == COMPILER_CLANG && defined(__FreeBSD__) -# define UNORDERED_MAP std::unordered_map -# define UNORDERED_SET std::unordered_set -# define HASH_NAMESPACE_START namespace std { namespace __1 { -# define HASH_NAMESPACE_END } } #elif COMPILER == COMPILER_CLANG -# define UNORDERED_MAP std::tr1::unordered_map -# define UNORDERED_SET std::tr1::unordered_set +# if __clang_major__ >= 3 +# if __clang_minor >= 7 +# define UNORDERED_MAP std::unordered_map +# define UNORDERED_SET std::unordered_set +# else +# define UNORDERED_MAP std::tr1::unordered_map +# define UNORDERED_SET std::tr1::unordered_set +# endif +# endif # define HASH_NAMESPACE_START namespace std { namespace tr1 { # define HASH_NAMESPACE_END } } +# endif #elif COMPILER == COMPILER_GNU && (__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ >= 3) # define UNORDERED_MAP std::tr1::unordered_map # define UNORDERED_SET std::tr1::unordered_set