166 Commits

Author SHA1 Message Date
Ion Gaztañaga
d0587af31d Add missing "import testing" 2025-12-11 15:23:46 +01:00
Ion Gaztañaga
e272812539 Use detail/workaround.hpp before checking the availability of "BOOST_INTRUSIVE_CONCEPTS_BASED_OVERLOADING" and remove duplicated "int main()" section 2025-12-08 21:54:53 +01:00
Ion Gaztañaga
410f7a631b Fixes #99 ("some intrusive containers are not trivially destructible when possible")
Enables conditional triviality with C++20 concepts, introducing defaulted destructors and constructors for hooks and
containers using `normal_link`.
2025-12-08 21:31:48 +01:00
Rene Rivera
924eccdf39 Add new ref to container_hash lib. 2024-04-29 12:48:37 -05:00
Rene Rivera
3e8cebd84f Add missing lib reference. 2024-04-25 22:38:47 -05:00
Rene Rivera
cb151fb499 Sync from upstream. 2024-04-20 15:33:03 -05:00
Ion Gaztañaga
09ab48ace6 Add negative subscript test to iterator 2024-04-15 08:58:32 +02:00
Rene Rivera
92ee13c123 Sync from upstream. 2024-03-23 15:41:41 -05:00
Ion Gaztañaga
6f57c7c3d1 Fixes #81 ("unordered_set rehash breaks insert_commit_data") 2024-03-23 18:05:54 +01:00
Rene Rivera
d7603079fc Make the library modular usable. 2024-03-11 08:38:17 -05:00
Ion Gaztañaga
e84e9b7b2e Use BOOST_INTRUSIVE_STATIC_ASSERT instead of BOOST_STATIC_ASSERT to reduce library level and weight. 2024-01-02 01:42:05 +01:00
Ion Gaztañaga
6464d0e083 Implement new hashing protocol now that Boost.ContainerHash requires C++11:
- Hashes trivially scalar types
- For the non scalar types calls unqualified hash_value activating ADL (boost::hash protocol)
- If ADL does not find a viable candidate, a boost::hash direct call is performed via a forward declaration, so that additional candidates are looked up if the user has included boost/container_hash/hash.hpp.

This maintains a high level of compatibility with boost::hash but making Boost.Intrusive independent from Boost.ContainerHash, so that different C++ standard levels can be used and users using different hash functions don't need direct and indirect dependencies brought by Boost.ContainerHash.
2024-01-01 00:02:45 +01:00
Ion Gaztañaga
8b4297b1db Use custom hash functions as Boost.ContainerHash requires C++11. 2023-12-31 23:45:45 +01:00
Ion Gaztañaga
88c2790410 Add missing <iosfwd> to implement operator<< 2023-12-31 20:25:08 +01:00
Ion Gaztañaga
cfc6b4e510 Add workaround for MSVC 14-0 bad code generation in slist_test 2023-05-04 23:12:23 +02:00
Ion Gaztañaga
f2afafa6bb Reduce instantiation explosion in tests reducing combinations, so that regression testing is manageable in time 2023-05-04 18:19:24 +02:00
Ion Gaztañaga
64b7cb317d DIsable "-Warray-bounds" for GCC-12 due to false positives 2023-05-02 00:09:51 +02:00
Ion Gaztañaga
cbea247ee1 Fixes #80 ("<functional> might not be included soon enough when building treap_multiset_test.cpp") 2023-04-20 20:15:35 +02:00
Ion Gaztañaga
27c00ae498 Fixes #75 ("Bug: Rehashing an empty unordered_set with cache_begin set to true hits an assert") 2022-06-25 18:32:27 +02:00
Ion Gaztañaga
05bb58091e Add experimental fastmod_buckets option 2022-06-13 00:42:58 +02:00
Ion Gaztañaga
3c5c8cec3f Rewritten hash semi-intrusive containers to improve compilation times and runtime performance. Added experimental "linear_buckets" option. 2022-05-04 23:36:34 +02:00
Ion Gaztañaga
01b4f6264c Take all pointers by value to avoid aliasing issues in release mode 2021-12-29 14:02:03 +01:00
Ion Gaztañaga
56291fafe4 Make file names shorter due to MinGW problems 2021-12-29 14:01:18 +01:00
Ion Gaztañaga
22049ac0bd Add BOOST_OVERRIDE to silence -Wsuggest-override warnings. 2021-12-27 14:37:42 +01:00
Ion Gaztañaga
2eeee6cb4c Support GCC's -Wconversion -Wfloat-conversion -Warith-conversion -Wsign-conversion warnings. 2021-10-16 15:56:54 +02:00
Ion Gaztañaga
a4180b9e9f Remove GCC's -Wconversion warnings 2021-10-06 00:08:18 +02:00
Ion Gaztañaga
79d2a6df4b Put swap tests inside generic associative container tests so that they are executed for every tree type. 2021-06-20 02:01:20 +02:00
Ion Gaztañaga
edb8f9e6fd Merge branch 'bugfix/node-swap' of https://github.com/dmsteck/intrusive into dmsteck-bugfix/node-swap 2021-06-19 20:49:07 +02:00
Ion Gaztañaga
cbc81b9417 Fixes #63 ("nop splice removes element") 2021-06-19 19:39:40 +02:00
Daniel Steck
8551b3958d C++03 2021-05-13 23:39:26 +01:00
Daniel Steck
8a652bd355 C++03 and (C) 2021-05-13 23:28:33 +01:00
Daniel Steck
d4e76658a1 initial commit 2021-05-13 23:21:05 +01:00
Ion Gaztañaga
9c73691528 Update lightweight_test.hpp and hash.hpp references to the actual boost components. 2021-01-02 13:38:52 +01:00
Ion Gaztañaga
338bfb9072 Added a test for set that uses void* as a key. 2019-06-08 23:32:29 +02:00
Ion Gaztañaga
3618260489 fix GitHub Issue #35 ("key_of_value on treap_set seems to be broken in 1.69") 2019-02-12 00:23:56 +01:00
Ion Gaztañaga
cac7bd1b1e With movelib's update, test no longer needed. 2019-01-03 01:21:03 +01:00
Andrey Semashev
f266cbb8b2 Added a test for set that uses void* as a key. 2018-12-14 18:50:38 +03:00
Ion Gaztañaga
2ab3421b17 In functions that modify data structures, take pointers by value instead of by reference, to avoid aliasing issues. 2018-09-27 10:14:16 +02:00
Ion Gaztañaga
99326f50fb Fix clang 6.0 warnings in tests: unused members, suspicious return types 2018-09-18 14:26:31 +02:00
Ion Gaztañaga
4f9e77acfe Use intrusive's type traits instead of container's traits 2017-11-07 00:46:44 +01:00
Ion Gaztañaga
db14782f0f Boost Trac #12698
GitHub Pull #23
GitHub Pull #24
2017-06-08 14:02:21 +02:00
Ion Gaztañaga
018a39c433 Use directly boost::movelib::pointer_element/to_raw_pointer 2017-04-07 16:05:44 +02:00
Ion Gaztañaga
db15ff6c08 Allow non std::size_t size_type. 2017-04-06 23:32:39 +02:00
Ion Gaztañaga
ba5ecb7196 Fix test bug: Same bucket array was being used for two containers. 2016-11-12 21:17:00 +01:00
Ion Gaztañaga
b0baf7dd14 Fix error in test with bucket_ptr. 2016-11-12 19:04:17 +01:00
Ion Gaztañaga
116272067b Fix error in nonhook_node due to missing copy-constructor and assignment implementstion 2016-11-12 19:03:59 +01:00
Ion Gaztañaga
6d38384e36 Document root()/croot() functions in tree-based containers, and add a test case for them. 2016-09-03 13:28:44 +02:00
Ion Gaztañaga
9ac060a6ae Fixed Trac #12432 ("Forced KeyOfValue creation when using custom compare on insert_check") 2016-09-03 00:01:55 +02:00
Ion Gaztañaga
d5b81dc59a Add missing includes. 2016-09-03 00:01:02 +02:00
Ion Gaztañaga
36fb49abc9 Fix sg_[multi]set not working when merging from a set with a different comparison.
Update testcase to test merging from a different comparison.
2016-09-01 18:55:56 +02:00