Commit Graph
785 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
Christian Mazakas 53a897008a Add conditional masking to silence msvc RTC failures 2022-11-22 10:26:08 -08:00
Christian Mazakas e2f4303319 Add FOA-specific default bucket count for CTAD purposes 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
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
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 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
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
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
joaquintides 8a1562cc78 implemented strong exception guarantee on rehash and single insert/emplace 2022-10-19 15:46:57 +02:00
joaquintides 8e42367a62 stylistic 2022-10-18 19:33:52 +02:00
joaquintides d13a9dcaaf stylistic 2022-10-18 18:35:41 +02:00
joaquintides 64cb43ce32 protected against hash throwing in nosize_transfer_element 2022-10-18 17:42:22 +02:00
joaquintides c9340390b0 completed previous commit 2022-10-18 17:28:57 +02:00
joaquintides c76f44a8b3 hardened unchecked_rehash against exceptions thrown in the middle of value move construction 2022-10-18 16:18:05 +02:00
joaquintides 2290375515 replaced try blocks with scope guards 2022-10-18 16:14:29 +02:00
joaquintides a200af610f refactored table's allocator-extended copy tor 2022-10-18 15:41:33 +02:00
joaquintides 2cb1d2bdf0 removed duplicated call to destroy 2022-10-18 15:25:54 +02:00
joaquintides ac2bc8d615 made group initialization more straightforward 2022-10-18 12:17:40 +02:00
Christian Mazakas 27c386d47b Revert "used regular method for group resetting in clear"
This reverts commit eb5351b2c6.
2022-10-17 13:20:01 -07:00
Christian Mazakas cf6f4023bb Make sure mask is properly cleared during rehash cleanup 2022-10-17 13:19:57 -07:00
joaquintides 6e4e5ead03 made Neon group15 compatible with A32 2022-10-17 18:43:48 +02:00
joaquintides eb5351b2c6 used regular method for group resetting in clear 2022-10-17 18:21:41 +02:00
joaquintides 599dee204f micro-optimized table destruction 2022-10-17 18:00:15 +02:00
joaquintides 6b1d2f13da made clear reset overflow bytes 2022-10-17 17:51:43 +02:00
joaquintides b0f6bb128f micro-optimized group loops 2022-10-17 09:43:22 +02:00
joaquintides 0389e0bc16 reverted 2022-10-16 22:17:53 +02:00