235 Commits
Author SHA1 Message Date
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 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 d70f8667e1 Add unlink_after_and_dispose and detach_and_dispose functions 2022-05-04 22:52:15 +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 87081669c3 Avoid -Wshadow warning 2021-12-27 00:45:36 +01: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 bc8d455437 Rename iterator_next with unsigned distance to iterator_unext 2021-10-18 17:31:00 +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
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 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 c03b16b269 fast_log2: silence unused variable warning. 2021-03-14 08:15:33 +01: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 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 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
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
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
Ion Gaztañaga 215ef2617e Fix #34 ("-Wdeprecated-copy on gcc9) 2019-03-05 11:26:29 +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
Andrey Semashev f847bd57bf Converted tabs to spaces. 2018-12-14 19:00:50 +03:00
Andrey Semashev 01d575bed4 Fix compilation in case if key is void*, again.
This commit fixes a compilation error with gcc 8.2 about ambiguous function
calls in tree_value_compare when the user specifies a key that has type void*.
The fix take approach similar to https://github.com/boostorg/intrusive/pull/21.
2018-12-14 18:46:28 +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 d94fbc76cc Add customized return type for tree_value_compare 2018-09-15 00:58:43 +02:00