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