Commit Graph

1277 Commits

Author SHA1 Message Date
Christian Mazakas
b1d43d3ca5 Update FOA containers to require nothrow swappability of Hash, KeyEqual members and ensure that throwing assertions uphold strong guarantee 2022-12-13 13:53:29 -08:00
joaquintides
91eddbabe8 restricted memcpy to allocators known to not have fancy construct() 2022-12-13 09:35:28 -08:00
joaquintides
5eda445db0 optimized try_emplace and extended it for future use in boost::unordered_flat_set heterogeneous insert 2022-12-11 18:49:21 +01:00
Christian Mazakas
63f07daa88 Merge pull request #172 from boostorg/feature/foa_fast_copy
feature/foa fast copy
2022-12-09 10:05:54 -08:00
Peter Dimov
7040c57750 Add mulx_mix 2022-12-08 21:43:57 +02:00
Christian Mazakas
d036994237 Merge pull request #165 from cmazakas/fix/msvc-rtc
Add msvc RTC to select test targets
2022-11-28 09:09:14 -08:00
Peter Dimov
0398afae9b Add BOOST_FORCEINLINE to unordered_flat_set::contains, unordered_flat_map::contains. Refs #168. 2022-11-25 18:01:39 +02:00
Peter Dimov
79dc3bb6d4 Add BOOST_FORCEINLINE to unordered_flat_set::count, unordered_flat_map::count 2022-11-25 17:57:06 +02:00
Peter Dimov
879de5fab8 Add BOOST_FORCEINLINE to unordered_flat_map::operator[] 2022-11-25 17:50:05 +02:00
Christian Mazakas
53a897008a Add conditional masking to silence msvc RTC failures 2022-11-22 10:26:08 -08:00
Christian Mazakas
5aff5b943f Fix Missing CTAD (#169)
* Update deduction tests to include missing guides for set

* Add missing deduction guides for set
2022-11-22 16:39:39 +01:00
Christian Mazakas
2102031b93 Implement deduction guides for unordered_flat_set 2022-11-07 15:55:29 -08:00
Christian Mazakas
5b92827b68 Implement deduction guides for unordered_flat_map 2022-11-07 15:55:29 -08:00
Christian Mazakas
e2f4303319 Add FOA-specific default bucket count for CTAD purposes 2022-11-07 15:55:29 -08:00
Christian Mazakas
fd48672fd1 Implement deduction guides for unordered_[multi]set 2022-11-07 15:55:29 -08:00
Christian Mazakas
530437c21b Implement deduction guides for unordered_[multi]map 2022-11-07 15:55:29 -08:00
Christian Mazakas
867e60113b Add SFINAE helpers to type_traits.hpp 2022-11-07 15:55:29 -08:00
joaquintides
1d99854979 worked around missing std::is_trivially_copy_constructible in GCC<=4.9 2022-11-07 17:41:47 +01:00
joaquintides
5a4071d4f0 silenced bogus CGG warning 2022-11-07 13:47:43 +01:00
joaquintides
c30e93544d implemented copy_elements_from with fast branch, introduced for_all_elements_while 2022-11-07 12:31:26 +01:00
Christian Mazakas
4310809025 Implement missing constructors outlined by LWG issue 2713 (#160)
* Harden initializer_list constructor tests

* Add tests for constructors as specified in LWG issue 2713

* Add missing constructors to unordered_flat_map

* Add missing constructors to unordered_flat_set

* Add missing constructors to unordered_[multi]map

* Add missing constructors to unordered_[multi]set
2022-11-05 13:08:29 +01:00
Peter Dimov
3b592a3dd4 Merge branch 'feature/hash-is-avalanching-test-03' into develop 2022-10-30 21:13:29 +02:00
Peter Dimov
097f4fac0b Merge branch 'feature/drone' into develop 2022-10-30 19:28:10 +02:00
joaquintides
5327fec080 Feature/foa anti drift (#153)
* added first draft of anti-drift

* stylistic

* adjusted hysteresis factor in unchecked_emplace_with_rehash

* added public max_load

* adjusted hysteresis factor
2022-10-30 17:06:03 +01:00
Peter Dimov
8f02e43ba4 Work around -Wconversion on GCC 5 2022-10-30 17:41:44 +02:00
Peter Dimov
d0fc14b8c5 Remove C++11 constructs from hash_traits.hpp 2022-10-30 13:40:20 +02: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
joaquintides
5e639a97a4 passed BOOST_UNORDERED_ASSUME a true boolean 2022-10-26 10:39:34 +02:00
joaquintides
fb315252b3 added missing BOOST_FORCEINLINE 2022-10-25 19:53:18 +02:00
joaquintides
d12ed06c3d removed #ifdef'd out code 2022-10-25 19:53:03 +02:00
joaquintides
49fc08b934 refactored emplace_impl to improve inlining 2022-10-25 19:48:19 +02:00
Christian Mazakas
4f0edf9013 Decorate containers with more BOOST_FORCEINLINE 2022-10-25 09:01:38 -07:00
joaquintides
2afd1c5c9a copied Neon group15::is_sentinel from foa_unordered_rc.hpp
(possible performance impact)
2022-10-25 14:45:38 +02:00
joaquintides
e29bf7a4a0 reverted 2022-10-25 14:31:27 +02:00
joaquintides
7db310f6d2 reverted 0b575dc983 (may affect performance) 2022-10-25 11:48:41 +02:00
Christian Mazakas
955dab4637 Add missing init_type overloads for insert(hint) 2022-10-24 11:17:05 -07:00
Christian Mazakas
375d7157b6 Add tests for missing typedefs in flat containers 2022-10-24 09:54:57 -07:00
joaquintides
d8f226d429 reverted "Push up partial refactor for older msvc"
This reverts commit 627ffe4ed7.
2022-10-22 12:28:04 +02:00
Christian Mazakas
627ffe4ed7 Push up partial refactor for older msvc 2022-10-21 15:38:19 -07:00
Christian Mazakas
e0b680ac29 Update insert(Iterator, Iterator) overloads to use emplace internally instead of insert()'ing 2022-10-21 11:24:34 -07:00
joaquintides
2aa62c63c1 stylistic 2022-10-21 10:46:22 +02:00
joaquintides
c9d1b6009e stylistic 2022-10-21 10:02:49 +02:00
joaquintides
1d553447a0 refactored insert overloads 2022-10-21 10:01:51 +02:00
Christian Mazakas
fe32f153a2 Add draft of insert(init_type&&) for unordered_flat_map 2022-10-20 14:59:33 -07:00
Christian Mazakas
59f4da0a47 Add init_type public typedefs 2022-10-20 14:58:38 -07:00
joaquintides
99ad45ed77 removed spurious consts 2022-10-20 20:02:55 +02:00
joaquintides
d93875a65e refactored value_from and insert overloads 2022-10-20 19:48:17 +02:00
Christian Mazakas
c1d5902911 Remove unnecessary value_type conversion by expanding overloads for value_from() 2022-10-20 08:43:42 -07:00
joaquintides
2f048ea6ac s/=/== 2022-10-19 17:50:21 +02:00
joaquintides
f3353c9be3 made sure source values are destroyed on copy-based rehash 2022-10-19 17:42:59 +02:00