1 // Copyright (C) 2007-2019 CEA/DEN, EDF R&D
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 // Lesser General Public License for more details.
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2009 Free Software Foundation, Inc.
21 // This file is part of the GNU ISO C++ Library. This library is free
22 // software; you can redistribute it and/or modify it under the
23 // terms of the GNU General Public License as published by the
24 // Free Software Foundation; either version 3, or (at your option)
27 // This library is distributed in the hope that it will be useful,
28 // but WITHOUT ANY WARRANTY; without even the implied warranty of
29 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30 // GNU General Public License for more details.
32 // Under Section 7 of GPL version 3, you are granted additional
33 // permissions described in the GCC Runtime Library Exception, version
34 // 3.1, as published by the Free Software Foundation.
36 // You should have received a copy of the GNU General Public License and
37 // a copy of the GCC Runtime Library Exception along with this program;
38 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
39 // <http://www.gnu.org/licenses/>.
42 * Copyright (c) 1996-1998
43 * Silicon Graphics Computer Systems, Inc.
45 * Permission to use, copy, modify, distribute and sell this software
46 * and its documentation for any purpose is hereby granted without fee,
47 * provided that the above copyright notice appear in all copies and
48 * that both that copyright notice and this permission notice appear
49 * in supporting documentation. Silicon Graphics makes no
50 * representations about the suitability of this software for any
51 * purpose. It is provided "as is" without express or implied warranty.
55 * Hewlett-Packard Company
57 * Permission to use, copy, modify, distribute and sell this software
58 * and its documentation for any purpose is hereby granted without fee,
59 * provided that the above copyright notice appear in all copies and
60 * that both that copyright notice and this permission notice appear
61 * in supporting documentation. Hewlett-Packard Company makes no
62 * representations about the suitability of this software for any
63 * purpose. It is provided "as is" without express or implied warranty.
66 #ifndef __INTERPKERNELHASHFUN_HXX__
67 #define __INTERPKERNELHASHFUN_HXX__
71 namespace INTERP_KERNEL
76 inline std::size_t __stl_hash_string(const char* __s)
78 unsigned long __h = 0;
81 return std::size_t(__h);
87 std::size_t operator()(const char* __s) const
88 { return __stl_hash_string(__s); }
92 struct hash<const char*>
94 std::size_t operator()(const char* __s) const
95 { return __stl_hash_string(__s); }
101 std::size_t operator()(char __x) const { return __x; }
105 struct hash<unsigned char>
107 std::size_t operator()(unsigned char __x) const { return __x; }
111 struct hash<signed char>
113 std::size_t operator()(unsigned char __x) const { return __x; }
119 std::size_t operator()(short __x) const { return __x; }
123 struct hash<unsigned short>
125 std::size_t operator()(unsigned short __x) const { return __x; }
131 std::size_t operator()(int __x) const { return __x; }
135 struct hash<unsigned int>
137 std::size_t operator()(unsigned int __x) const { return __x; }
143 std::size_t operator()(long __x) const { return __x; }
147 struct hash<unsigned long>
149 std::size_t operator()(unsigned long __x) const { return __x; }