merge the formfield patch from ooo-build
[ooovba.git] / stlport / systemstl / hash_map
blobb969b11b211b08f60479f862af385f10186e7cd6
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  * 
5  * Copyright 2008 by Sun Microsystems, Inc.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * $RCSfile: hash_map,v $
10  * $Revision: 1.7 $
11  *
12  * This file is part of OpenOffice.org.
13  *
14  * OpenOffice.org is free software: you can redistribute it and/or modify
15  * it under the terms of the GNU Lesser General Public License version 3
16  * only, as published by the Free Software Foundation.
17  *
18  * OpenOffice.org is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21  * GNU Lesser General Public License version 3 for more details
22  * (a copy is included in the LICENSE file that accompanied this code).
23  *
24  * You should have received a copy of the GNU Lesser General Public License
25  * version 3 along with OpenOffice.org.  If not, see
26  * <http://www.openoffice.org/license.html>
27  * for a copy of the LGPLv3 License.
28  *
29  ************************************************************************/
31 #ifndef SYSTEM_STL_HASHMAP
32 #define SYSTEM_STL_HASHMAP
34 #ifdef GCC
36 # include <functional>
38 # define _BACKWARD_BACKWARD_WARNING_H 1
39 # include <ext/hash_map>
40 # undef _BACKWARD_BACKWARD_WARNING_H
42 namespace __gnu_cxx
44     template<> struct hash < std::string >
45     {
46         size_t operator()(const std::string & x) const
47         {
48             return hash< const char* >()(x.c_str());
49         }
50     };
52     template<> struct hash< long long int >
53     { 
54         size_t operator()(long long int __x) const 
55         { 
56             return __x; 
57         } 
58     };
60     template<> struct hash< unsigned long long int >
61     { 
62         size_t operator()(unsigned long long int __x) const 
63         { 
64             return __x; 
65         } 
66     };
69 namespace std
71 # ifndef __GXX_EXPERIMENTAL_CXX0X__
72         using __gnu_cxx::hash;
73 # endif
74         using __gnu_cxx::hash_map;
75         using __gnu_cxx::hash_multimap;
78 #else
79 # error UNSUPPORTED COMPILER
80 #endif
83 #endif
84 /* vi:set tabstop=4 shiftwidth=4 expandtab: */