Commit Graph
68 Commits
Author SHA1 Message Date
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
Peter Dimov 3cf502b34c Add generic hash_value functions for ranges to hash.hpp, remove those from extensions.hpp 2021-10-16 22:12:31 +03:00