Commit Graph
189 Commits
Author SHA1 Message Date
Christian Mazakas 2386188d69 Relocate macros needed by test suite into detail/fwd.hpp 2023-03-20 12:43:57 -07:00
Christian Mazakas 7d77f1d478 Add transparent insert() overloads to unordered_[flat]_set 2022-12-19 12:46:46 -08:00
Christian Mazakas 867e60113b Add SFINAE helpers to type_traits.hpp 2022-11-07 15:55:29 -08:00
Christian Mazakas 5e5addd82d Update how the required number of buckets is calculated to nest the max call 2022-10-27 08:17:10 -07:00
Christian Mazakas 05f9668597 Refactor transparent type traits into their own header so they can be shared with FOA impl 2022-10-10 14:18:11 -07:00
Christian Mazakas 9a9b8e0a7b Update rehashing implementation to better reflect STL conformance 2022-09-13 12:33:21 -07:00
Christian Mazakas 5ad86f559f Clean up implementation of recalculate_max_load() to avoid std::floor/std::ceil 2022-09-13 12:33:21 -07:00
Christian Mazakas dea6ce164c Remove erroneous unconditional call to reserve() from move_assign() when pocma is false 2022-09-12 13:16:45 -07:00
Christian Mazakas db9d9d1f77 Update implementation to support a default-constructible table and grouped_bucket_array 2022-08-30 15:20:31 -07:00
Christian Mazakas 6f342bf119 Set default_bucket_count to zero 2022-08-30 15:20:31 -07:00
Christian Mazakas f9eae4153f Update code to be valid when the internal buckets_ data member is moved-from 2022-08-18 09:04:53 -07:00
Christian Mazakas 91e78fd746 Add erase_node() function to table, creating an optimizer-friendly function 2022-07-25 11:35:23 -07:00
Christian Mazakas 90b2536a99 Relace usage of BOOST_FORCEINLINE with plain inline to prevent warnings from certain versions of msvc 2022-06-21 08:42:52 -07:00
Christian Mazakas f1481f0deb Remove dependency on Boost.Detail 2022-06-21 08:42:52 -07:00
Christian Mazakas b1a9cde690 Remove dependency on Boost.Iterator 2022-06-21 08:42:52 -07:00
Alexander Grund 707b40e8c2 Workaround Segfault of Clang 3.8
Clang 3.8 segfaults during name mangling of `make_index_seq`.
Hence replace it by using type aliases.
2022-06-09 11:04:20 +02:00
Christian Mazakas 613a997694 Fix -Wmaybe-unitialized warning in gcc-12 by laundering the result of reinterpret_cast<> in functions helper 2022-06-07 09:03:48 -07:00
Flamefire d0ac539d09 Fix compilation on Clang < 3.8
`val_alloc` is used in the other branch of the #ifdef too.
2022-06-03 11:07:49 +02:00
Peter Dimov 72fe06aa00 Remove unused include, removes dependency on Detail 2022-06-02 19:15:12 +03:00
Christian Mazakas 5a456eb295 Refactor internal implementation to use "fast closed-addressing" aka fca 2022-06-01 11:49:09 -07:00
Christian Mazakas c322cc5621 Implement erase_if() for Unordered via function template in detail namespace 2022-02-23 11:36:48 -08:00
Christian Mazakas aa96d87502 Fix shadowing warning in early versions of gcc 2022-02-11 11:33:46 -08:00
Peter Dimov 0794cfec9e Avoid -Wlong-long in mix64_policy 2022-02-09 07:13:27 +02:00
Peter Dimov 2f331b7a8b Update mix64_policy to use Fibonacci hashing 2022-01-19 04:11:08 +02:00
Peter Dimov d96d5335b4 Update mix32_policy to use Fibonacci hashing 2022-01-19 04:01:46 +02:00
Peter Dimov 2751b3515b Add bcount_log2_ to table, pass it to the policy 2022-01-19 02:33:37 +02:00
Peter Dimov bf86730a62 Add mix32_policy 2022-01-18 21:31:53 +02:00
Peter Dimov 98494420c5 Add a BOOST_ASSERT to mix64_policy to check that the bucket_count is a power of two 2022-01-18 20:52:05 +02:00
Peter Dimov 7717ff01a1 Use bit_ceil and bit_floor in mix64_policy 2022-01-18 20:40:23 +02:00
Peter Dimov d6576ed2f1 Remove the special case in pick_policy for integral types (refs #50) 2022-01-18 19:25:32 +02:00
Christian Mazakas 9c07cf60a6 Deprecate table::erase_key_unique() 2021-12-23 13:12:52 -08:00
Christian Mazakas ff4d25d454 Add transparent_non_iterable type trait for usage in erase() / extract() SFINAE 2021-12-21 09:27:00 -08:00
Christian Mazakas 85cb09ae6d Add erase_key_equiv_impl() member function 2021-12-21 09:27:00 -08:00
Christian Mazakas d8fe1a17cc Replace usage of compound is_transparent type trait with singular usage of are_transparent 2021-12-17 09:53:16 -08:00
Christian Mazakas 1db53ba155 Update internal table to allocate on construction and when rehashing 2021-12-15 09:42:44 -08:00
LeonineKing1199 089d2db104 Remove traits detection mechanism 2021-12-08 14:04:04 -08:00
LeonineKing1199 fefb6ad4c4 Remove unnecessary expression test mechanisms 2021-12-08 13:59:11 -08:00
LeonineKing1199 05b795bc14 Remove unnecessary macro for determining which allocator_traits implementation is being used 2021-12-08 10:06:01 -08:00
Peter Dimov ff3f5067c8 Merge pull request #56 from LeonineKing1199/feature/allocator-traits
Replace internal implementation of `allocation_traits` with Core's
2021-12-08 01:23:02 +02:00
LeonineKing1199 5b8289c05a Remove extraneous include of Boost.Container's allocator_traits 2021-12-07 10:49:39 -08:00
LeonineKing1199 a6b9fb285c Replace internal implementation of allocation_traits with Core's 2021-12-07 08:35:56 -08:00
LeonineKing1199 13cd5aa4ce Implement initial draft of heterogeneous extract() 2021-12-06 13:06:05 -08:00
LeonineKing1199 4a42c93897 Fix erroneous usage of table::hash() impl which implicitly copy-constructs the const_key_type 2021-12-03 10:07:57 -08:00
LeonineKing1199 12977a50bc Add hopefully helpful comment to the source 2021-12-03 08:41:42 -08:00
LeonineKing1199 f252480bee Add missing formatting 2021-12-02 15:44:02 -08:00
LeonineKing1199 c9df887c4c Add member function template erase_key_unique_impl for usage in heterogeneous lookups 2021-12-02 15:38:07 -08:00
LeonineKing1199 03edf7f4a8 Add member function template find_previous_node_impl so it can be used in heterogenous contexts 2021-12-02 15:30:17 -08:00
Peter Dimov 5e8b6a9e55 Add comment describing the origin of mix64_policy::apply_hash 2021-11-29 06:14:20 +02:00
LeonineKing1199 8ba710637a Remove detail::make_dependent in favor of an extra template parameter in is_transparetn 2021-11-22 13:29:41 -08:00
LeonineKing1199 59db6cf788 Add SFINAE to transparent count() overload in unordered_map 2021-11-22 11:16:04 -08:00