1/************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22#ifndef SYSTEM_STL_HASHMAP 23#define SYSTEM_STL_HASHMAP 24 25#ifdef GCC 26 27# include <functional> 28 29# define _BACKWARD_BACKWARD_WARNING_H 1 30# include <ext/hash_map> 31# undef _BACKWARD_BACKWARD_WARNING_H 32 33namespace __gnu_cxx 34{ 35 template<> struct hash < std::string > 36 { 37 size_t operator()(const std::string & x) const 38 { 39 return hash< const char* >()(x.c_str()); 40 } 41 }; 42 43 template<> struct hash< long long int > 44 { 45 size_t operator()(long long int __x) const 46 { 47 return __x; 48 } 49 }; 50 51 template<> struct hash< unsigned long long int > 52 { 53 size_t operator()(unsigned long long int __x) const 54 { 55 return __x; 56 } 57 }; 58} 59 60namespace std 61{ 62# ifndef __GXX_EXPERIMENTAL_CXX0X__ 63 using __gnu_cxx::hash; 64# endif 65 using __gnu_cxx::hash_map; 66 using __gnu_cxx::hash_multimap; 67} 68 69#else 70# error UNSUPPORTED COMPILER 71#endif 72 73 74#endif 75/* vi:set tabstop=4 shiftwidth=4 expandtab: */ 76