Christian Mazakas
|
e8715ffb96
|
Update internal foa table implementation to use to_address when Allocators use fancy pointers
|
2022-09-26 15:16:52 -07:00 |
|
Christian Mazakas
|
5d34b137a3
|
Fix shadowing warnings in foa.hpp
|
2022-09-26 11:40:47 -07:00 |
|
Christian Mazakas
|
ad352a6703
|
Fix cast warning in mark_overflow()
|
2022-09-26 10:27:22 -07:00 |
|
Christian Mazakas
|
7d69d18473
|
Initial commit of foa.hpp
|
2022-09-26 10:12:05 -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
|
a31e894411
|
Update implementation to use erase_node() where applicable
|
2022-07-25 11:35:38 -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
|
7746518c0a
|
Remove conditional usage of #pragma once from fca.hpp and prime_fmod.hpp, reorder config.hpp inclusion to come last
|
2022-06-30 13:07:11 -07:00 |
|
Christian Mazakas
|
c8a98e27e0
|
Add boost:: namespace qualification to uint64_t and uint32_t for prime_fmod.hpp
|
2022-06-30 13:07:11 -07:00 |
|
Christian Mazakas
|
3df902af23
|
Pull prime_fmod_size into its own dedicated header, update #include list for fca.hpp and prime_fmod_test.hpp
|
2022-06-30 13:07:11 -07:00 |
|
joaquintides
|
fb733483c6
|
made fast_modulo universally available in 64 bits and never used in 32 bits
|
2022-06-26 19:13:54 +02:00 |
|
joaquintides
|
2670bb149d
|
added Peter Dimov's portable implementation of get_remainder
|
2022-06-25 17:35:43 +02:00 |
|
Peter Dimov
|
08e0fee141
|
Enable fastmod on clang-cl and other pretenders such as Intel
|
2022-06-25 01:44:14 +03:00 |
|
Peter Dimov
|
31cffd8412
|
Fix reversed condition
|
2022-06-25 01:06:15 +03:00 |
|
Peter Dimov
|
0f71fe28a2
|
Fix typos; do not undefine macros needed for tests
|
2022-06-25 01:04:22 +03: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 |
|
Christian Mazakas
|
0106ed3d91
|
Rename functions used to efficiently calculate modulo, update associated comments
|
2022-06-03 09:28:17 -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
|
712d20079a
|
Fix alignment_of include
|
2022-06-02 21:46:07 +03: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
|
ad639ffb61
|
Lower version of dinkumware check as msvc-12.0 supports piecewise construction
|
2022-06-01 11:49:09 -07:00 |
|
Peter Dimov
|
0d3ece98c1
|
Merge pull request #106 from cmazakas/missing-nodiscard
Add missing `[[nodiscard]]` qualifiers as outlined by C++20
|
2022-02-24 18:00:00 +02:00 |
|
Christian Mazakas
|
3d952d3c0f
|
Add missing [[nodiscard]] qualifiers as outlined by C++20
|
2022-02-23 14:26:28 -08: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 |
|
Christian Mazakas
|
e2b6865938
|
Fix C4800 warnings in msvc by manually comparing pointers to 0
|
2022-02-10 08:37:53 -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
|
97734fd895
|
Implement unordered_multiset::contains()
|
2022-01-13 12:51:50 -08:00 |
|
Christian Mazakas
|
f5d470c531
|
Implement unordered_set::contains()
|
2022-01-13 08:03:54 -08:00 |
|
Christian Mazakas
|
ad8a11bb49
|
Implement unordered_multimap::contains()
|
2022-01-12 12:57:27 -08:00 |
|
Christian Mazakas
|
a26e1c0f41
|
Implement unordered_map::contains()
|
2022-01-12 10:36:40 -08:00 |
|
Christian Mazakas
|
1c459e6ee6
|
Implement heterogeneous extract() for multiset
|
2022-01-05 08:14:58 -08:00 |
|
Christian Mazakas
|
abc7327116
|
Implement heterogeneous extract() for set
|
2022-01-04 11:50:20 -08:00 |
|