The C and C++ Include Header Files
/usr/include/c++/11/backward/hash_fun.h
$ cat -n /usr/include/c++/11/backward/hash_fun.h 1 // 'struct hash' from SGI -*- C++ -*- 2 3 // Copyright (C) 2001-2021 Free Software Foundation, Inc. 4 // 5 // This file is part of the GNU ISO C++ Library. This library is free 6 // software; you can redistribute it and/or modify it under the 7 // terms of the GNU General Public License as published by the 8 // Free Software Foundation; either version 3, or (at your option) 9 // any later version. 10 11 // This library is distributed in the hope that it will be useful, 12 // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 // GNU General Public License for more details. 15 16 // Under Section 7 of GPL version 3, you are granted additional 17 // permissions described in the GCC Runtime Library Exception, version 18 // 3.1, as published by the Free Software Foundation. 19 20 // You should have received a copy of the GNU General Public License and 21 // a copy of the GCC Runtime Library Exception along with this program; 22 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 23 //
. 24 25 /* 26 * Copyright (c) 1996-1998 27 * Silicon Graphics Computer Systems, Inc. 28 * 29 * Permission to use, copy, modify, distribute and sell this software 30 * and its documentation for any purpose is hereby granted without fee, 31 * provided that the above copyright notice appear in all copies and 32 * that both that copyright notice and this permission notice appear 33 * in supporting documentation. Silicon Graphics makes no 34 * representations about the suitability of this software for any 35 * purpose. It is provided "as is" without express or implied warranty. 36 * 37 * 38 * Copyright (c) 1994 39 * Hewlett-Packard Company 40 * 41 * Permission to use, copy, modify, distribute and sell this software 42 * and its documentation for any purpose is hereby granted without fee, 43 * provided that the above copyright notice appear in all copies and 44 * that both that copyright notice and this permission notice appear 45 * in supporting documentation. Hewlett-Packard Company makes no 46 * representations about the suitability of this software for any 47 * purpose. It is provided "as is" without express or implied warranty. 48 * 49 */ 50 51 /** @file backward/hash_fun.h 52 * This file is a GNU extension to the Standard C++ Library (possibly 53 * containing extensions from the HP/SGI STL subset). 54 */ 55 56 #ifndef _BACKWARD_HASH_FUN_H 57 #define _BACKWARD_HASH_FUN_H 1 58 59 #include
60 61 namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) 62 { 63 _GLIBCXX_BEGIN_NAMESPACE_VERSION 64 65 using std::size_t; 66 67 template
68 struct hash { }; 69 70 inline size_t 71 __stl_hash_string(const char* __s) 72 { 73 unsigned long __h = 0; 74 for ( ; *__s; ++__s) 75 __h = 5 * __h + *__s; 76 return size_t(__h); 77 } 78 79 template<> 80 struct hash
81 { 82 size_t 83 operator()(const char* __s) const 84 { return __stl_hash_string(__s); } 85 }; 86 87 template<> 88 struct hash
89 { 90 size_t 91 operator()(const char* __s) const 92 { return __stl_hash_string(__s); } 93 }; 94 95 template<> 96 struct hash
97 { 98 size_t 99 operator()(char __x) const 100 { return __x; } 101 }; 102 103 template<> 104 struct hash
105 { 106 size_t 107 operator()(unsigned char __x) const 108 { return __x; } 109 }; 110 111 template<> 112 struct hash
113 { 114 size_t 115 operator()(unsigned char __x) const 116 { return __x; } 117 }; 118 119 template<> 120 struct hash
121 { 122 size_t 123 operator()(short __x) const 124 { return __x; } 125 }; 126 127 template<> 128 struct hash
129 { 130 size_t 131 operator()(unsigned short __x) const 132 { return __x; } 133 }; 134 135 template<> 136 struct hash
137 { 138 size_t 139 operator()(int __x) const 140 { return __x; } 141 }; 142 143 template<> 144 struct hash
145 { 146 size_t 147 operator()(unsigned int __x) const 148 { return __x; } 149 }; 150 151 template<> 152 struct hash
153 { 154 size_t 155 operator()(long __x) const 156 { return __x; } 157 }; 158 159 template<> 160 struct hash
161 { 162 size_t 163 operator()(unsigned long __x) const 164 { return __x; } 165 }; 166 167 _GLIBCXX_END_NAMESPACE_VERSION 168 } // namespace 169 170 #endif
Contact us
|
About us
|
Term of use
|
Copyright © 2000-2024 MyWebUniversity.com ™