18 Commits

Author SHA1 Message Date
joaquintides
cd9a592f00
Fixed std::initializer_list assignment issues for open-addressing containers (#277)
* fixed #276

* used range insert, stylistic this->

* assigned non-empty std::initializer_lists
2024-09-02 18:56:13 +02:00
joaquintides
f734e399e3
Feature/concurrent node containers (#271)
* added concurrent node containers

* removed spurious typename

* added missing includes

* avoided unused param warning

* worked around Clang bug

* s/{}/() to work around GCC4.8 problems with aggregate initialization

* used /bigobj for cfoa/visit_tests.cpp

* suppressed localized maybe-uninitialized warnings

* fixed comments

* added /bigobj to cfoa/insert_tests.cpp

* instrumented double exact comparison to spot a spurious error

* fixed pedantic error

* refactored byte_span machinery

* compromised on sub-epsilon equality for doubles that should be identical

* documented boost::concurrent_node_(map|set)

* added concurrent_node_set

* added missing AlternativeType

* tested empty node insertion

* tested node_handle allocator management

* added nonassignable_allocator and node_handle_allocator_swap_tests

* fixed warning disabling

* silenced spurious GCC warning

* broadened scope of previous pragma

* broadened even more

* worked around spurious constexpr-related msvc-14.0 bug
https://godbolt.org/z/v78545Ebf

* added workaround back

* replaced previous workaround with built-in one

* added workaround back on top of built-in solution (which doesn't work 100% of the time)
2024-08-25 18:34:58 +02:00
Braden Ganetsky
67c5cdb3a6
Optimize emplace() for exactly a value_type or init_type argument (#227)
* Add structs to count special member functions

* Add failing emplace tests, that will pass after making the optimization

* Optimize emplace() to not allocate when we already have a value_type or init_type

* Fix newly failing cfoa tests
2023-12-31 18:56:14 +01:00
joaquintides
6b65c8f230
fixed assignment bug with POCXA, fancy, unequal allocators (#214) 2023-09-26 20:08:13 +02:00
joaquintides
44582ecbb9 removed unused typedefs 2023-09-16 10:18:36 +02:00
joaquintides
8d2a5c25ea tested boost::concurrent_flat_set 2023-09-16 10:15:05 +02:00
Christian Mazakas
1dc1962b8c Update cfoa's assign tests to cover fancy and plain pointers for flat_map<-> concurrent interop 2023-09-15 09:50:33 -07:00
Christian Mazakas
4918bb6b7e Add tests for interop assignment 2023-08-11 12:35:44 -07:00
Peter Dimov
6bcf457b46 Use boost::compat::latch 2023-06-26 10:32:52 +03:00
Christian Mazakas
c51c06492a Update iterator range insert to use emplace() vs insert() to avoid copies in certain cases 2023-06-15 22:15:57 -07:00
Christian Mazakas
c90b72a643 Squelch gcc self-move warning for version 13 2023-05-09 14:00:14 -07:00
Christian Mazakas
081932221f Attempt to fix flaky assign_tests 2023-04-28 13:42:28 -07:00
Christian Mazakas
135c9586af Add fuzzy test mixing copy-assignment with insertion 2023-04-27 15:23:21 -07:00
Christian Mazakas
187fd3e71e Implement initializer_list assignment 2023-04-27 12:00:42 -07:00
Christian Mazakas
0959df1896 Flesh out move assignment tests 2023-04-27 09:30:49 -07:00
Christian Mazakas
212c6a1e4d Add prototype of move assignment 2023-04-26 12:54:04 -07:00
Christian Mazakas
2b612ed120 Flesh out assign_tests 2023-04-25 13:14:08 -07:00
Christian Mazakas
26ab9ff584 Add prototype copy assignment operator 2023-04-21 15:56:22 -07:00