Define the pointer hash struct before the string one, to improve compatibility
[oota-llvm.git] / include / llvm / ADT / HashExtras.h
index f82115a07c5ef01a7a2e51672850f46897d73d78..ab9b302ff1bb0131995d64d450821525b23155ab 100644 (file)
 // Cannot specialize hash template from outside of the std namespace.
 namespace HASH_NAMESPACE {
 
-template <> struct hash<std::string> {
-  size_t operator()(std::string const &str) const {
-    return hash<char const *>()(str.c_str());
-  }
-};
-
 // Provide a hash function for arbitrary pointers...
 template <class T> struct hash<T *> {
   inline size_t operator()(const T *Val) const {
@@ -36,6 +30,12 @@ template <class T> struct hash<T *> {
   }
 };
 
+template <> struct hash<std::string> {
+  size_t operator()(std::string const &str) const {
+    return hash<char const *>()(str.c_str());
+  }
+};
+
 }  // End namespace std
 
 #endif