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
Ion Gaztañaga
a4180b9e9f
Remove GCC's -Wconversion warnings
2021-10-06 00:08:18 +02:00
Jarosław Pelczar
7f35d14d83
list_iterator: Fix declaration of node shadowing member
...
When code is compiled with -Wshadow (outside GCC's "system" include
paths), the compiler will complain:
warning: declaration of ‘node’ shadows a member of ‘boost::intrusive::list_iterator<ValueTraits, IsConst>’
Signed-off-by: Jarosław Pelczar <jarek@jpelczar.com >
2021-08-16 10:36:33 +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
300ffd2363
unintended whitespace change
2021-05-13 23:30:19 +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
a633906847
Fixes #59 ("Add noexcept support to the library").
2021-04-19 11:17:48 +02:00
Ion Gaztañaga
1cec79608f
Fixes #60 ("Licensing question for math.hpp"). Removes questioned, SO-based code since it was just an alternative version for non-MSVC/non-GCC compatible compilers.
2021-04-18 14:10:53 +02:00
Ion Gaztañaga
8bb619caf7
Fix indentation
2021-04-18 14:04:53 +02:00
Ion Gaztañaga
8a4c55a56d
Merge pull request #57 from ecatmur/patch-1
...
UB: comparing unrelated pointers
2021-04-18 14:00:00 +02:00
Ion Gaztañaga
c03b16b269
fast_log2: silence unused variable warning.
2021-03-14 08:15:33 +01:00
Ed Catmur
39f7315a42
UB: comparing unrelated pointers
...
detected by gcc10 asan:
==13==ERROR: AddressSanitizer: invalid-pointer-pair: 0x612000031cc8 0x61d0000000d0
#0 0x18f3270 in boost::intrusive::bucket_plus_vtraits<...>::priv_get_bucket_num_no_hash_store(boost::intrusive::slist_iterator<boost::intrusive::trivial_value_traits<boost::intrusive::slist_node_traits<void*>, (boost::intrusive::link_mode_type)0>, false>, boost::move_detail::bool_<false>) libs/intrusive/include/boost/intrusive/hashtable.hpp:935
#1 0x18f3270 in boost::intrusive::hashtable_impl<...>::priv_get_bucket_num_hash_dispatch(boost::intrusive::slist_iterator<boost::intrusive::trivial_value_traits<boost::intrusive::slist_node_traits<void*>, (boost::intrusive::link_mode_type)0>, false>, boost::move_detail::bool_<false>) libs/intrusive/include/boost/intrusive/hashtable.hpp:3509
#2 0x18f3270 in boost::intrusive::hashtable_impl<...>::priv_get_bucket_num(boost::intrusive::slist_iterator<boost::intrusive::trivial_value_traits<boost::intrusive::slist_node_traits<void*>, (boost::intrusive::link_mode_type)0>, false>) /home/edward.catmur/packages/boost/1.75.0-maven6/libs/intrusive/include/boost/intrusive/hashtable.hpp:3500
#3 0x18f3270 in boost::move_detail::disable_if_convertible<...>::type boost::intrusive::hashtable_impl<...>::erase_and_dispose<...>(...) libs/intrusive/include/boost/intrusive/hashtable.hpp:2360
2021-02-15 10:42:25 +00:00
Ion Gaztañaga
5c5f596d12
twin: Add constructor from two objects
2021-01-15 20:43:59 +01:00
Ion Gaztañaga
f65f864f0e
Include <stdlib.h> for _rotl in MSVC
2021-01-15 18:03:44 +01:00
Ion Gaztañaga
547c964381
- Reduced compile-time dependencies:
...
- linear_slist_algorithms use a simple node_ptr instead of std::pair on return.
- list/slist use operator </operator == instead of std::equal_to/std::less.
2021-01-05 10:09:38 +01:00
Ion Gaztañaga
c3ac8668ae
Introduce a simplified hash_combine to avoid pulling STL dependencies from container_hash/hash.hpp for extremely simple cases.
2021-01-05 00:05:17 +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
4d144d75da
Fixes #54 : ("set.rbegin() looks like O(log(N))")
2020-11-13 22:55:55 +01:00
Ion Gaztañaga
cb3752dbb1
Use custom placement to avoid warning/errors when using -fno-exceptions.
2020-10-22 01:11:05 +02:00
Ion Gaztañaga
77af03117e
Merge pull request #48 from stellarscience/patch-1
...
MSVC "assignment within conditional" warning fix
2020-10-19 13:32:22 +02:00
Ion Gaztañaga
8879091c66
Merge pull request #49 from SiggyBar/develop
...
Fix empty control statement warnings.
2020-10-19 13:26:17 +02:00
Ion Gaztañaga
fc05116510
Merge pull request #51 from camolezi/patch-1
...
Add missing include
2020-08-31 23:22:57 +02:00
Ion Gaztañaga
d61acfb8cd
Fixes #52 : ("Invalid casting in BOOST_INTRUSIVE_BSR_INTRINSIC")
2020-08-31 23:15:19 +02:00
Lucas Camolezi
efb10791ca
Add missing include
...
This patch makes the header able to be built standalone, making possible C++ clang modules builds.
2020-08-26 17:24:41 -03:00
SiggyBar
92d6e58bb7
Fix empty control statement warnings
...
This change replaces code like this:
if(safemode_or_autounlink)
BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(node_algorithms::unique(to_insert));
with:
BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(!safemode_or_autounlink || node_algorithms::unique(to_insert));
The reason for this change is that the first form generates
a warning for Visual C++ 14.1 in builds without asserts:
warning C4390: ';': empty controlled statement found; is this the intent?
Before this change the code was using a mix of the two forms
when invoking the BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT()
and BOOST_INTRUSIVE_INVARIANT_ASSERT() macros. Now it
consistently uses the second form.
2020-02-07 10:46:55 +01:00
Conrad Poelman
b45a3b7cdd
MSVC "assignment within conditional" warning fix
...
The latest MSVC 2019 issues a warning on this line. This change performs the assignment prior to the conditional.
2020-01-25 16:07:29 -05:00
Ion Gaztañaga
d8761780b0
Fixes #46 : ("UB due to union based type punning")
2020-01-16 16:10:03 +01:00
Ion Gaztañaga
c66d25859b
Add some missing forceinlines
2020-01-16 16:09:11 +01:00
Ion Gaztañaga
3b5001f22f
Fixes #42 ("Documentation does not describe treap priority_of_value changes")
2019-06-09 01:01:49 +02:00
Andrey Semashev
5852698f7a
Disable variadic templates for MSVC-12 to avoid ICEs.
...
Fixes https://github.com/boostorg/intrusive/issues/44 .
2019-05-26 19:55:43 +03:00
Ion Gaztañaga
2af47857f4
Update changelog with #43
...
Fix BOOST_INTRUSIVE_VARIADIC_TEMPLATES detection
2019-05-10 23:50:53 +02:00
Jeff Snyder
b795de217b
Allow void as an option with BOOST_INTRUSIVE_VARIADIC_TEMPLATES enabled
2019-05-09 05:17:28 +01:00
Ion Gaztañaga
215ef2617e
Fix #34 ("-Wdeprecated-copy on gcc9)
2019-03-05 11:26:29 +01:00
Marcel Raad
4a254f5ebf
Fix -Wextra-semi clang warnings
...
Remove superfluous semicola.
2019-02-25 10:55:25 +01:00
Ion Gaztañaga
9137a38982
Fixes #38
2019-02-12 23:20:49 +01: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
911774278a
Declare more BOOST_INTRUSIVE_FORCEINLINE functions in tree and list containers.
2019-02-11 10:49:55 +01:00
Ion Gaztañaga
962eed5edb
Rollback to previous tree_value_compare SFINAE, as enable_if imported from movelib now defaults to a sfinae-friendly type
2019-01-03 01:17:50 +01:00
Ion Gaztañaga
015fdaf9c5
Add missing BOOST_INTRUSIVE_FORCEINLINE
2019-01-03 01:17:01 +01:00
Ion Gaztañaga
558a204832
Add null-pointer checks
2019-01-03 01:16:46 +01:00
Ion Gaztañaga
c6298131cb
Use voider to adapt "sqrt2_pow_max" to the new enable_if default type
2019-01-03 01:16:26 +01:00
Ion Gaztañaga
98e5f0ee09
Import "voider" from movelib
2019-01-03 01:14:53 +01:00