xref: /trunk/main/stlport/systemstl/hash_map (revision e76eebc6)
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