X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FADT%2FHashExtras.h;h=fcc50c8510f67434d46d17c982048d159e42dfd3;hb=83b5752747ea14696b0e51904722c38771f22eb7;hp=f644cbd22bd071f4e65a679d26f5589eb7ceaba1;hpb=a9f6e4ae0eaea69949755807b7207177f256eace;p=oota-llvm.git diff --git a/include/llvm/ADT/HashExtras.h b/include/llvm/ADT/HashExtras.h index f644cbd22bd..fcc50c8510f 100644 --- a/include/llvm/ADT/HashExtras.h +++ b/include/llvm/ADT/HashExtras.h @@ -1,4 +1,11 @@ -//===-- 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 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 // STL Hashed containers. @@ -7,26 +14,28 @@ // //===----------------------------------------------------------------------===// -#ifndef SUPPORT_HASHEXTRAS_H -#define SUPPORT_HASHEXTRAS_H +#ifndef LLVM_ADT_HASHEXTRAS_H +#define LLVM_ADT_HASHEXTRAS_H +#include "llvm/ADT/hash_map.h" #include -#include "Support/hash_map" // 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