golden hour
/usr/include/c++/4.8.2/tr1
⬆️ Go Up
Upload
File/Folder
Size
Actions
array
6.8 KB
Del
OK
bessel_function.tcc
21.6 KB
Del
OK
beta_function.tcc
5.47 KB
Del
OK
ccomplex
1.23 KB
Del
OK
cctype
1.38 KB
Del
OK
cfenv
1.96 KB
Del
OK
cfloat
1.35 KB
Del
OK
cinttypes
2.2 KB
Del
OK
climits
1.42 KB
Del
OK
cmath
36.55 KB
Del
OK
complex
12.04 KB
Del
OK
complex.h
1.23 KB
Del
OK
cstdarg
1.22 KB
Del
OK
cstdbool
1.31 KB
Del
OK
cstdint
2.56 KB
Del
OK
cstdio
1.44 KB
Del
OK
cstdlib
1.74 KB
Del
OK
ctgmath
1.22 KB
Del
OK
ctime
1.21 KB
Del
OK
ctype.h
1.18 KB
Del
OK
cwchar
1.67 KB
Del
OK
cwctype
1.42 KB
Del
OK
ell_integral.tcc
26.85 KB
Del
OK
exp_integral.tcc
15.41 KB
Del
OK
fenv.h
1.18 KB
Del
OK
float.h
1.18 KB
Del
OK
functional
69.15 KB
Del
OK
functional_hash.h
5.7 KB
Del
OK
gamma.tcc
13.97 KB
Del
OK
hashtable.h
40.56 KB
Del
OK
hashtable_policy.h
24.64 KB
Del
OK
hypergeometric.tcc
27.07 KB
Del
OK
inttypes.h
1.24 KB
Del
OK
legendre_function.tcc
10.32 KB
Del
OK
limits.h
1.19 KB
Del
OK
math.h
4.45 KB
Del
OK
memory
1.75 KB
Del
OK
modified_bessel_func.tcc
15.35 KB
Del
OK
poly_hermite.tcc
3.61 KB
Del
OK
poly_laguerre.tcc
11.08 KB
Del
OK
random
1.55 KB
Del
OK
random.h
71.48 KB
Del
OK
random.tcc
52.73 KB
Del
OK
regex
90.77 KB
Del
OK
riemann_zeta.tcc
13.34 KB
Del
OK
shared_ptr.h
31.91 KB
Del
OK
special_function_util.h
4.71 KB
Del
OK
stdarg.h
1.19 KB
Del
OK
stdbool.h
1.19 KB
Del
OK
stdint.h
1.19 KB
Del
OK
stdio.h
1.18 KB
Del
OK
stdlib.h
1.45 KB
Del
OK
tgmath.h
1.23 KB
Del
OK
tuple
11.83 KB
Del
OK
type_traits
18.57 KB
Del
OK
unordered_map
1.54 KB
Del
OK
unordered_map.h
9.98 KB
Del
OK
unordered_set
1.54 KB
Del
OK
unordered_set.h
9.32 KB
Del
OK
utility
3.15 KB
Del
OK
wchar.h
1.22 KB
Del
OK
wctype.h
1.23 KB
Del
OK
Edit: functional_hash.h
// TR1 functional_hash.h header -*- C++ -*- // Copyright (C) 2007-2013 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the // terms of the GNU General Public License as published by the // Free Software Foundation; either version 3, or (at your option) // any later version. // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // Under Section 7 of GPL version 3, you are granted additional // permissions described in the GCC Runtime Library Exception, version // 3.1, as published by the Free Software Foundation. // You should have received a copy of the GNU General Public License and // a copy of the GCC Runtime Library Exception along with this program; // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see // <http://www.gnu.org/licenses/>. /** @file tr1/functional_hash.h * This is an internal header file, included by other library headers. * Do not attempt to use it directly. @headername{tr1/functional} */ #ifndef _GLIBCXX_TR1_FUNCTIONAL_HASH_H #define _GLIBCXX_TR1_FUNCTIONAL_HASH_H 1 #pragma GCC system_header namespace std _GLIBCXX_VISIBILITY(default) { namespace tr1 { _GLIBCXX_BEGIN_NAMESPACE_VERSION /// Class template hash. // Declaration of default hash functor std::tr1::hash. The types for // which std::tr1::hash<T> is well-defined is in clause 6.3.3. of the PDTR. template<typename _Tp> struct hash : public std::unary_function<_Tp, size_t> { size_t operator()(_Tp __val) const; }; /// Partial specializations for pointer types. template<typename _Tp> struct hash<_Tp*> : public std::unary_function<_Tp*, size_t> { size_t operator()(_Tp* __p) const { return reinterpret_cast<size_t>(__p); } }; /// Explicit specializations for integer types. #define _TR1_hashtable_define_trivial_hash(_Tp) \ template<> \ inline size_t \ hash<_Tp>::operator()(_Tp __val) const \ { return static_cast<size_t>(__val); } _TR1_hashtable_define_trivial_hash(bool); _TR1_hashtable_define_trivial_hash(char); _TR1_hashtable_define_trivial_hash(signed char); _TR1_hashtable_define_trivial_hash(unsigned char); _TR1_hashtable_define_trivial_hash(wchar_t); _TR1_hashtable_define_trivial_hash(short); _TR1_hashtable_define_trivial_hash(int); _TR1_hashtable_define_trivial_hash(long); _TR1_hashtable_define_trivial_hash(long long); _TR1_hashtable_define_trivial_hash(unsigned short); _TR1_hashtable_define_trivial_hash(unsigned int); _TR1_hashtable_define_trivial_hash(unsigned long); _TR1_hashtable_define_trivial_hash(unsigned long long); #undef _TR1_hashtable_define_trivial_hash // Fowler / Noll / Vo (FNV) Hash (type FNV-1a) // (Used by the next specializations of std::tr1::hash.) /// Dummy generic implementation (for sizeof(size_t) != 4, 8). template<size_t> struct _Fnv_hash_base { template<typename _Tp> static size_t hash(const _Tp* __ptr, size_t __clength) { size_t __result = 0; const char* __cptr = reinterpret_cast<const char*>(__ptr); for (; __clength; --__clength) __result = (__result * 131) + *__cptr++; return __result; } }; template<> struct _Fnv_hash_base<4> { template<typename _Tp> static size_t hash(const _Tp* __ptr, size_t __clength) { size_t __result = static_cast<size_t>(2166136261UL); const char* __cptr = reinterpret_cast<const char*>(__ptr); for (; __clength; --__clength) { __result ^= static_cast<size_t>(*__cptr++); __result *= static_cast<size_t>(16777619UL); } return __result; } }; template<> struct _Fnv_hash_base<8> { template<typename _Tp> static size_t hash(const _Tp* __ptr, size_t __clength) { size_t __result = static_cast<size_t>(14695981039346656037ULL); const char* __cptr = reinterpret_cast<const char*>(__ptr); for (; __clength; --__clength) { __result ^= static_cast<size_t>(*__cptr++); __result *= static_cast<size_t>(1099511628211ULL); } return __result; } }; struct _Fnv_hash : public _Fnv_hash_base<sizeof(size_t)> { using _Fnv_hash_base<sizeof(size_t)>::hash; template<typename _Tp> static size_t hash(const _Tp& __val) { return hash(&__val, sizeof(__val)); } }; /// Explicit specializations for float. template<> inline size_t hash<float>::operator()(float __val) const { // 0 and -0 both hash to zero. return __val != 0.0f ? std::tr1::_Fnv_hash::hash(__val) : 0; } /// Explicit specializations for double. template<> inline size_t hash<double>::operator()(double __val) const { // 0 and -0 both hash to zero. return __val != 0.0 ? std::tr1::_Fnv_hash::hash(__val) : 0; } /// Explicit specializations for long double. template<> _GLIBCXX_PURE size_t hash<long double>::operator()(long double __val) const; /// Explicit specialization of member operator for non-builtin types. template<> _GLIBCXX_PURE size_t hash<string>::operator()(string) const; template<> _GLIBCXX_PURE size_t hash<const string&>::operator()(const string&) const; #ifdef _GLIBCXX_USE_WCHAR_T template<> _GLIBCXX_PURE size_t hash<wstring>::operator()(wstring) const; template<> _GLIBCXX_PURE size_t hash<const wstring&>::operator()(const wstring&) const; #endif _GLIBCXX_END_NAMESPACE_VERSION } } #endif // _GLIBCXX_TR1_FUNCTIONAL_HASH_H
Save