Commit Graph
379 Commits
Author SHA1 Message Date
Ion Gaztañaga b9b83bd9e6 Fixes #86 ("Invalid UTF-8 character in comment") 2024-07-18 12:51:56 +02:00
Ion Gaztañaga 0baa42f328 Support different types in algo_pred_equal and algo_pred_less 2024-07-15 12:52:35 +02:00
Ion Gaztañaga 19e4af346e Add forceinline to pointer_traits operations 2024-05-23 22:32:22 +02:00
Ion Gaztañaga 5cf744c4b3 Use pointer_traits casting functions instead of reference/ptr conversions casts 2024-05-23 22:31:41 +02:00
Ion Gaztañaga 6f57c7c3d1 Fixes #81 ("unordered_set rehash breaks insert_commit_data") 2024-03-23 18:05:54 +01:00
Ion Gaztañaga e997641e7d Fix typo in BOOST_INTRUSIVE_STATIC_ASSERT 2024-01-02 17:10:42 +01: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 a15334305d Use more traits from Boost.Move. 2023-12-31 23:41:58 +01:00
Ion Gaztañaga c977acd66a Use value_equal instead of std::equal_to like other containers (e.g. slist) 2023-12-31 20:27:02 +01:00
tomerv ea070dc30f Fix minor documentation error 2023-10-28 23:35:43 +03: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 fc46064c29 Fix UB when downcasting null pointers, use pointer_trait' specialized function 2023-05-02 22:42:29 +02:00
Ion Gaztañaga ff11320469 Reduce the usage of BOOST_INTRUSIVE_FORCEINLINE due to unwanted side effects in some compilers 2023-05-02 01:30:31 +02:00
Ion Gaztañaga aec1f8a15e Disable forceinline with Clang, see https://github.com/llvm/llvm-project/issues/62202 2023-04-18 22:23:12 +02:00
Ion Gaztañaga 1014e97fb2 Simplify intrusive dependencies dropping Boost.Core 2023-02-01 21:35:40 +01:00
Ion Gaztañaga e4ec3fb937 Add missing boost/assert.hpp or boost/static_assert.hpp 2023-01-18 22:28:56 +01:00
Ion Gaztañaga 4a1f695906 Fixes #77 ("Suppress unused variable warnings on node_count (clang 15)") 2022-12-11 00:29:53 +01:00
Ion Gaztañaga 825aedad55 Improve "modfunc" performance
Fixes #79 ("boost/intrusive/hashtable.hpp: build failure (undeclared indentifier)")
2022-11-07 00:16:44 +01:00
Ion Gaztañaga 7c9bb4d540 Add constant value to the main struct in BOOST_INTRUSIVE_OPTION_CONSTANT 2022-10-01 18:23:37 +02:00
Ion Gaztañaga e41303a26b Disable forceinline with MinGw, as it has bugs 2022-08-24 14:30:23 +02:00
Ion Gaztañaga c0377800b2 Fix -Wshadow warnings in GCC renaming "node" arguments with "n". 2022-08-23 07:58:45 +02:00
Ion Gaztañaga bf072b5f24 Add make_iterator_advance make_iterator_uadvance 2022-08-21 02:21:04 +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 466ff07d15 Add operator! 2022-06-13 00:41:49 +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 d376c8b453 Added BOOST_INTRUSIVE_FORCEINLINE to constructor 2022-05-04 23:34:47 +02:00
Ion Gaztañaga 8be3b54d35 Add some BOOST_INTRUSIVE_FORCEINLINE to trivial functions, and take advantage of new algorithms like end_node and detach_and_dispose 2022-05-04 23:34:19 +02:00
Ion Gaztañaga ba298c775e Add BOOST_INTRUSIVE_FORCEINLINE to some trivial functions 2022-05-04 23:16:16 +02:00
Ion Gaztañaga 482c0cfe83 Add pointer specialization for value_less 2022-05-04 22:55:51 +02:00
Ion Gaztañaga 1d6576e6d5 Add simple constructor for stateless slist_iterator 2022-05-04 22:55:24 +02:00
Ion Gaztañaga dbde900bf9 Add end_node, is_empty, is_sentinel, set_sentinel, transfer_after and detach_and_dispose functions 2022-05-04 22:54:38 +02:00
Ion Gaztañaga d70f8667e1 Add unlink_after_and_dispose and detach_and_dispose functions 2022-05-04 22:52:15 +02:00
Ion Gaztañaga f8d3650131 Add is_empty function 2022-05-04 22:51:06 +02:00
Ion Gaztañaga 06d74a1709 Inject new Boost.Move iterator functions. 2022-01-12 00:58:41 +01:00
Ion Gaztañaga afe294063b Remove some forceinline attributes that might be counter-productive and add noexcept to others. 2022-01-04 00:34:33 +01:00
Ion Gaztañaga 64743a7158 Increase minimum version for forceinline usage in MSVC as bad code generation was detected in some cases 2022-01-04 00:23:58 +01:00
Ion Gaztañaga af99d7be6a Activate BOOST_MOVE_FORCEINLINE with GCC > 5, since some code generation problems were detected in tests executed under MingW. 2022-01-02 00:27:28 +01:00
Ion Gaztañaga 0be2758375 Convert boost::iterator traversal tags into std tags to avoid unneeded overloads that confuse some older compilers like MSVC 12 2021-12-30 23:08:53 +01: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 691154b887 Changes to support -Wcast-align=strict 2021-12-28 15:09:07 +01:00
Ion Gaztañaga 65353e038b Fix -Wshadow warnings 2021-12-27 14:37:12 +01:00
Ion Gaztañaga 87081669c3 Avoid -Wshadow warning 2021-12-27 00:45:36 +01:00
Tim Blechmann d5b9a4eac0 list: fix remove / remove_and_dispose
`value_equal` is a simple wrapper to `operator==`, but does not bind the
argument to a predicate
2021-12-22 22:57:32 +08:00
Ion Gaztañaga ac7dfda17a Merge pull request #66 from jarekpelczar/develop
list_iterator: Fix declaration of node shadowing member
2021-11-17 15:54:08 +01:00
Ion Gaztañaga 5c4d116b82 Support Clang's -Wconversion -Wfloat-conversion -Wsign-conversion with -Werror 2021-10-20 00:17:13 +02:00
Ion Gaztañaga bc8d455437 Rename iterator_next with unsigned distance to iterator_unext 2021-10-18 17:31:00 +02:00
Ion Gaztañaga bd15948a5d Fix wrong #include <cstddef> place. 2021-10-18 17:17:41 +02:00
Ion Gaztañaga 2eeee6cb4c Support GCC's -Wconversion -Wfloat-conversion -Warith-conversion -Wsign-conversion warnings. 2021-10-16 15:56:54 +02:00