joaquintides
0a000167b7
Feature/hash_is_avalanching ( #40 )
...
* added hash_is_avalanching
* launched CI after enabling GHA
* moved 1.89 entry from Change Log to Recent Changes
* segregated some tests into hash_is_avalanching_test3.cpp and gotten rid of Unordered dependency
* removed unneeded include
* stopped using external std::hash for testing
* typo
* removed left over include
* typo
* moved hash_is_avalanching from boost::container_hash to boost
* fixed specializations of boost::hash_is_avalanching
2025-05-28 12:05:10 +03:00
Peter Dimov
41746c0bdb
Cosmetic fixes
2023-10-12 20:19:57 +03:00
Peter Dimov
f8ecd66820
Move integrals to detail/hash_integral.hpp
2023-10-12 14:06:56 +03:00
Peter Dimov
565bac8d31
Remove C++03 workarounds
2023-10-12 13:57:41 +03:00
Peter Dimov
1958e96561
Add C++03 deprecation notice
2023-03-05 02:38:16 +02:00
Peter Dimov
8ce81c361d
Fix /RTCc violations because Unordered tests with it
2023-02-03 20:57:47 +02:00
Peter Dimov
c0c70e5b3e
Add support for tuple-like types. Refs #30 .
2022-11-28 16:59:35 +02:00
Peter Dimov
f2b2ef4ebe
Avoid warning 4100 under early MSVC
2022-11-28 01:59:32 +02:00
Peter Dimov
fe28cdbd1f
Add boost::hash_value for std::nullptr_t. Refs #29 .
2022-11-27 20:13:52 +02:00
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
16fb4cc749
Add is_described_class to hash_fwd.hpp; include it in hash.hpp
2022-10-28 03:32:18 +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
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
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
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
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
Peter Dimov
9348a89fb4
Fix msvc-14.1 errors caused by their unconstrained stdext::hash_value overload (!)
2021-10-17 00:09:20 +03:00
Peter Dimov
3f2612d36e
Update test/Jamfile, turn warnings-as-errors=on, fix g++ warning
2021-10-16 22:22:29 +03:00