X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FADT%2FHashExtras.h;h=fcc50c8510f67434d46d17c982048d159e42dfd3;hb=83b5752747ea14696b0e51904722c38771f22eb7;hp=871080c46756847fee7fe7542a1ce82107a6b15b;hpb=b2109ce97881269a610fa4afbcbca350e975174d;p=oota-llvm.git diff --git a/include/llvm/ADT/HashExtras.h b/include/llvm/ADT/HashExtras.h index 871080c4675..fcc50c8510f 100644 --- a/include/llvm/ADT/HashExtras.h +++ b/include/llvm/ADT/HashExtras.h @@ -1,10 +1,10 @@ -//===-- HashExtras.h - Useful functions for STL hash containers -*- C++ -*-===// -// +//===-- llvm/ADT/HashExtras.h - Useful functions for STL hash ---*- C++ -*-===// +// // The LLVM Compiler Infrastructure // -// This file was developed by the LLVM research group and is distributed under -// the University of Illinois Open Source License. See LICENSE.TXT for details. -// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// //===----------------------------------------------------------------------===// // // This file contains some templates that are useful if you are working with the @@ -14,26 +14,28 @@ // //===----------------------------------------------------------------------===// -#ifndef SUPPORT_HASHEXTRAS_H -#define SUPPORT_HASHEXTRAS_H +#ifndef LLVM_ADT_HASHEXTRAS_H +#define LLVM_ADT_HASHEXTRAS_H -#include "Support/hash_map" +#include "llvm/ADT/hash_map.h" #include // Cannot specialize hash template from outside of the std namespace. namespace HASH_NAMESPACE { +// Provide a hash function for arbitrary pointers... +template struct hash { + inline size_t operator()(const T *Val) const { + return reinterpret_cast(Val); + } +}; + template <> struct hash { size_t operator()(std::string const &str) const { return hash()(str.c_str()); } }; -// Provide a hash function for arbitrary pointers... -template struct hash { - inline size_t operator()(const T *Val) const { return (size_t)Val; } -}; - } // End namespace std #endif