X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FADT%2FHashExtras.h;h=85abf915e3c5790851fc853b94e39caa273c9fb2;hb=59fad7d9339901f8146f2d77cd7818625f0935b8;hp=f648a28c099c58e38934c6b5edd27479cefea653;hpb=48486893f46d2e12e926682a3ecb908716bc66c4;p=oota-llvm.git diff --git a/include/llvm/ADT/HashExtras.h b/include/llvm/ADT/HashExtras.h index f648a28c099..85abf915e3c 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,27 @@ // //===----------------------------------------------------------------------===// -#ifndef SUPPORT_HASHEXTRAS_H -#define SUPPORT_HASHEXTRAS_H +#ifndef LLVM_ADT_HASHEXTRAS_H +#define LLVM_ADT_HASHEXTRAS_H -#include "Support/hash_map" #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