X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FADT%2FHashExtras.h;h=85abf915e3c5790851fc853b94e39caa273c9fb2;hb=6de603071879bdc5d7d663826354c24a9d176469;hp=5887a8311626e6956d7c9323a415fbb98fd17b32;hpb=8dc67168ccbd09821ff6d963b26461e9b47028e7;p=oota-llvm.git diff --git a/include/llvm/ADT/HashExtras.h b/include/llvm/ADT/HashExtras.h index 5887a831162..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 LLVM_SUPPORT_HASHEXTRAS_H -#define LLVM_SUPPORT_HASHEXTRAS_H +#ifndef LLVM_ADT_HASHEXTRAS_H +#define LLVM_ADT_HASHEXTRAS_H #include -#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