Commit Graph

23 Commits

Author SHA1 Message Date
joaquintides 88f984e890 added interoperability with C++20 ranges (#355)
* added from_range ctors and insert_range
* worked around GCC 10-11 bug when piping a temporary range
* added insert_range_(or|and)_[c]visit
* typo
* tried to avoid MinGW32 compilation OOM in cfoa/insert_tests.cpp
* s/<debug-symbols>off/<cxxflags>-g0
* tested CTAD deduction guides
* typo
* updated docs
* Justified std::from_range_t detection trick
* reduced parallel build jobs in MINGW32 to try to avoid OOM during compilation
* tried to avoid compilation OOM by tweaking GC
* relaxed GCC parameters somewhat
* applied same changes to test/CMakeLists.txt
* fixed CMake syntax error
* fixed GCC commandline syntax error
2026-06-17 09:00:00 +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 8d2a5c25ea tested boost::concurrent_flat_set 2023-09-16 10:15:05 +02:00
Christian Mazakas ce076782fd Add tests for interop constructors 2023-08-11 12:35:44 -07: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 1e92d9f545 Refactor stateful_allocator to test helpers 2023-04-21 13:33:18 -07:00
Christian Mazakas 2cf72093b1 Update test to spin until the container is non-empty 2023-04-21 10:44:06 -07:00
Christian Mazakas 88d4d64edf Add last remaining constructors 2023-04-21 10:33:21 -07:00
Christian Mazakas 80d7203d78 Add more iterator constructor overloads 2023-04-20 15:35:04 -07:00
Christian Mazakas e08f9f11a1 Add more constructors 2023-04-20 12:58:29 -07:00
Christian Mazakas c304284773 Update tests to use condition variables for work synchronization instead of sleeps 2023-04-20 12:58:29 -07:00
Christian Mazakas c704788718 Fix flaky test by starting insertion thread earlier 2023-04-20 09:25:33 -07:00
Christian Mazakas 7812b26d3a Add allocator aware move constructors 2023-04-19 15:18:53 -07:00
Christian Mazakas b3c0368ab5 Clean up typedef names to avoid conflicts 2023-04-19 09:35:47 -07:00
Christian Mazakas 37edc392a5 Add allocator-aware copy constructor 2023-04-19 09:35:38 -07:00
Christian Mazakas fb403bc233 Add explicit allocator constructor 2023-04-18 15:36:12 -07:00
Christian Mazakas 910b8de697 Add iterator range + allocator constructor, continue to clean up constructor_tests 2023-04-18 15:11:53 -07:00
Christian Mazakas 3aff995ae0 Clean up constructor_tests 2023-04-18 13:38:24 -07:00
Christian Mazakas a9ad06139e Add move constructor 2023-04-18 12:00:08 -07:00
Christian Mazakas 6bf0e93a41 Remove size check as the insertion thread may not have started by the time the check happens 2023-04-13 13:30:56 -07:00
Christian Mazakas ecd4a82ed5 Add test for select_on_container_copy_construction Allocator requirement 2023-04-12 13:58:01 -07:00
Christian Mazakas d9b62d24dc Begin work on constructors 2023-04-12 12:22:59 -07:00