Define the pointer hash struct before the string one, to improve compatibility
authorChris Lattner <sabre@nondot.org>
Wed, 8 Dec 2004 20:59:18 +0000 (20:59 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 8 Dec 2004 20:59:18 +0000 (20:59 +0000)
with ICC.  Patch contributed by Bjørn Wennberg.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18663 91177308-0d34-0410-b5e6-96231b3b80d8

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