Peter Dimov
|
f51f68fe93
|
Do not use the u8string and u8string_view typedefs, because char8_t availability does not guarantee their presence
|
2022-10-30 03:01:05 +02:00 |
|
Peter Dimov
|
0d2266decb
|
Specialize boost::unordered::hash_is_avalanching for hash<string> and hash<string_view>
|
2022-10-30 02:47:10 +03:00 |
|
Peter Dimov
|
018fc4e1fa
|
Add support for described classes to hash.hpp
|
2022-10-28 19:35:10 +03:00 |
|
Peter Dimov
|
7568176bfa
|
is_described_class should be false for unions
|
2022-10-28 18:42:07 +03:00 |
|
Peter Dimov
|
16fb4cc749
|
Add is_described_class to hash_fwd.hpp; include it in hash.hpp
|
2022-10-28 03:32:18 +03:00 |
|
Peter Dimov
|
0171246a61
|
Add is_described_class<T>
|
2022-10-28 01:47:27 +03:00 |
|
Peter Dimov
|
df1671d593
|
msvc-14.0 doesn't quite have expression SFINAE. Fixes #28.
|
2022-10-26 19:38:53 +03:00 |
|
Peter Dimov
|
e92eae9eb2
|
Treat char8_t and std::byte as char types in hash_range
|
2022-09-20 21:17:41 +03:00 |
|
Peter Dimov
|
8bb7d43646
|
Simplify hash_value for floating point
|
2022-09-20 15:01:45 +03:00 |
|
Peter Dimov
|
a426a1939f
|
Honor __FLOAT_WORD_ORDER__ for 128 bit long double
|
2022-09-20 14:52:19 +03:00 |
|
Peter Dimov
|
034b81594d
|
Update 128 bit long double hash_value
|
2022-09-20 14:49:37 +03:00 |
|
Peter Dimov
|
79fff9e1ea
|
Add is_contiguous_range_test2
|
2022-09-18 14:26:30 +03:00 |
|
Peter Dimov
|
b148e34818
|
Fix 64 bit hash_mix multiplier
|
2022-09-17 02:34:14 +03:00 |
|
Peter Dimov
|
e391cf6841
|
Change hash_detail::hash_range to take and return by value to avoid It=char* aliasing
|
2022-09-17 01:09:47 +03:00 |
|
Peter Dimov
|
f47772f6f4
|
Implement faster hash_range when value_type is char
|
2022-09-16 21:25:20 +03:00 |
|
Peter Dimov
|
4b5a1cf0f2
|
Update complex hashing to use hash_mix
|
2022-09-16 19:48:36 +03:00 |
|
Peter Dimov
|
3fe7bbdd6c
|
Update floating point hashing to use hash_mix
|
2022-09-16 19:23:07 +03:00 |
|
Peter Dimov
|
8adcaffcc2
|
Update integral hashing to use hash_mix
|
2022-09-16 19:16:45 +03:00 |
|
Peter Dimov
|
40ec854466
|
Add hash_mix, change hash_combine to use it
|
2022-09-16 18:57:21 +03:00 |
|
Peter Dimov
|
882192ea3a
|
Update workaround for Dinkumware stdext::hash_value
|
2022-09-16 01:56:24 +03:00 |
|
Peter Dimov
|
ce734b435e
|
Implement boost::hash_unordered_range
|
2022-09-15 18:00:04 +03:00 |
|
Peter Dimov
|
c399cf6a38
|
Add traits to hash_fwd.hpp
|
2022-09-13 20:10:35 +03:00 |
|
Peter Dimov
|
30c32bb3df
|
Move traits headers from container_hash/detail/ to container_hash/
|
2022-09-13 19:45:45 +03:00 |
|
Peter Dimov
|
d1b2640dff
|
Move type classification traits from namespace hash_detail to namespace container_hash
|
2022-09-13 19:37:15 +03:00 |
|
Peter Dimov
|
b0c9904414
|
Test _MSVC_STL_VERSION instead of BOOST_MSVC because clang-cl
|
2022-07-16 13:37:15 +03:00 |
|
Peter Dimov
|
5ba74cd3a9
|
Update hash_value for pointers to handle the case when uintptr_t is larger than size_t
|
2022-07-03 23:35:46 +03:00 |
|
Peter Dimov
|
c14d3a1e2b
|
Add a comment explaining why to_underlying isn't used in hash_value for enums
|
2022-07-03 21:08:14 +03:00 |
|
Peter Dimov
|
c28d0b813b
|
Directly cast to size_t all integrals no wider than size_t
|
2022-06-26 01:25:45 +03:00 |
|
Peter Dimov
|
b8d315fac5
|
Update is_range, disable -Wvariadic-macros for GCC
|
2022-06-03 20:14:07 +03:00 |
|
Peter Dimov
|
866bd60dd3
|
Reject ranges that have themselves as their value_type (e.g. filesystem::path)
|
2022-06-03 19:52:03 +03:00 |
|
Peter Dimov
|
e04ca1f442
|
Match floating point hash values in 32 bit mode
|
2022-05-30 02:35:00 +03:00 |
|
Peter Dimov
|
0eada2ae93
|
Revert hash_combine for floats
|
2022-05-30 02:26:12 +03:00 |
|
Peter Dimov
|
943ef0ab82
|
Avoid -Wconversion with is_signed and enums
|
2022-05-30 02:19:54 +03:00 |
|
Peter Dimov
|
14f8934bff
|
Revert integral hashing
|
2022-05-30 01:57:56 +03:00 |
|
Peter Dimov
|
f08204e29a
|
Revert hash_value for std::complex
|
2022-05-29 21:59:17 +03:00 |
|
Peter Dimov
|
2424ada9f9
|
Bias integral values so that small integers hash to themselves even when having a wide type
|
2021-10-17 19:03:15 +03:00 |
|
Peter Dimov
|
aaa1f441ac
|
GCC 32 bit under Windows has an 80 bit long double in 12 bytes, not 16
|
2021-10-17 16:17:44 +03:00 |
|
Peter Dimov
|
bb99a2b1ae
|
Leave detail/limits.hpp a stub; update test
|
2021-10-17 08:15:10 +03:00 |
|
Peter Dimov
|
f05e8840d2
|
Remove float support files
|
2021-10-17 08:14:35 +03:00 |
|
Peter Dimov
|
dff8843bb2
|
Remove unnecessary include
|
2021-10-17 07:52:03 +03:00 |
|
Peter Dimov
|
15ae39e176
|
Implement floating point hashing inline in hash.hpp
|
2021-10-17 07:47:34 +03:00 |
|
Peter Dimov
|
39e4a4f184
|
Switch to type_traits/enable_if to eliminate the Core dependency
|
2021-10-17 07:10:47 +03:00 |
|
Peter Dimov
|
88fbad7438
|
Remove Borland workarounds
|
2021-10-17 04:00:10 +03:00 |
|
Peter Dimov
|
0737c56fec
|
Move boost::hash into hash.hpp, delete specializations
|
2021-10-17 03:54:41 +03:00 |
|
Peter Dimov
|
2b9251069f
|
Move std::tuple support to detail/hash_tuple.hpp
|
2021-10-17 02:40:29 +03:00 |
|
Peter Dimov
|
a63c85007f
|
Move std::unique_ptr, std::shared_ptr support into hash.hpp
|
2021-10-17 02:14:19 +03:00 |
|
Peter Dimov
|
7a29dee42a
|
Move std::pair support into hash.hpp
|
2021-10-17 02:11:51 +03:00 |
|
Peter Dimov
|
a0a6fa0616
|
Move std::complex support to hash.hpp
|
2021-10-17 02:03:50 +03:00 |
|
Peter Dimov
|
24598bd45f
|
Take care of g++ warning on 4294967291
|
2021-10-17 00:47:28 +03:00 |
|
Peter Dimov
|
7f2a43226e
|
Take care of size_t -> int warnings under g++ 4.8
|
2021-10-17 00:31:08 +03:00 |
|