Andrey Semashev
b1da5c25b4
Fix compilation in case if key is void*
...
If key type is `void*`, wrong `operator()` is chosen because of the dummy argument that is used for SFINAE. As a result the key comparison adapter invokes the user's predicate with only one argument, which fails to compile.
Use a more distict type for SFINAE in the dummy arguments. Fixes ticket #12745 .
2017-01-14 15:33:01 +03:00
Ion Gaztañaga
1a6bbccf5d
Fixes Ticket #12556 : member_value_traits.hpp has a missing #include
2016-11-13 00:16:10 +01:00
Ion Gaztañaga
7853a74c01
Avoid forceinline in old compilers due to bugs
2016-11-12 19:03:16 +01:00
Ion Gaztañaga
5c9f2d04cb
Add missing forceinlines
2016-11-12 19:02:46 +01:00
Ion Gaztañaga
bbb4f724d0
More documentation fixes in tree-based containers, to make root() documentation available.
2016-09-03 16:43:49 +02: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
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
Ion Gaztañaga
b2498a0da4
Reduce simbol length using alog_types instead of algorithms directly in generic_hook.
2016-09-01 00:59:18 +02:00
Ion Gaztañaga
21a2107d9a
* Implemented merge operations in ordered associative containers
2016-08-31 23:42:14 +02:00
Ion Gaztañaga
310ddc3485
Removed unneeded template parameters to tree_value_compare to reduce symbol length.
2016-08-29 16:52:31 +02:00
Ion Gaztañaga
2de5382dbb
Simplify tree_value_compare overloads to avoid compilation errors in some old GCC versions.
2016-08-29 00:03:46 +02:00
Ion Gaztañaga
5a7892a859
Document is_linked behaviour for slists with option linear<true>, as mentioned in Trac ticket #10328 ("is_linked is broken for linear slist")
2016-08-04 23:44:01 +02:00
Ion Gaztañaga
68c46450de
Fixed Trac ticket #11476 ("has_member_function_callable_with.hpp is massively broken with BOOST_NO_CXX11_DECLTYPE")
2016-08-04 23:22:29 +02:00
Ion Gaztañaga
e9e3f92427
Apply BOOST_INTRUSIVE_FORCEINLINE to some trivial functions.
2016-07-31 22:47:48 +02:00
Ion Gaztañaga
4546ffba1d
As suggested in Trac #12229 ("intrusive::unordered_set<T>::rehash() broken) a new "full rehash" function is added to force rehashing of existing elements when keys are changed but the new keys respect some hash and equality invariants.
2016-07-31 14:11:49 +02:00
Ion Gaztañaga
4014562502
Fixes Trac #11994 : Support intrusive container key extractors that return the key by value
...
Change tests to return key by value.
2016-07-04 22:11:52 +02:00
Ion Gaztañaga
56e2e4345a
Fixed Trac #12184 ("clang -Wdocumentation warning")
2016-07-02 23:10:03 +02:00
Ion Gaztañaga
2d55c66475
Remove static instances for size_holder, as it provokes false positives in thread debugging tools and simplify size_traits usage, specially in swaps.
2016-07-02 22:34:41 +02:00
Ion Gaztañaga
cd14ffcf1f
Fixed Boost Trac #12190
2016-05-13 01:01:42 +02:00
Ion Gaztañaga
4cf38987a8
Fixes Boost Trac #11992 : "Add an overload of insert_check taking a key_type"
2016-03-01 21:22:28 +01:00
Ion Gaztañaga
1986349a22
Merge branch 'fixes/ebo_functor_holder_compile_fix' of https://github.com/timblechmann/intrusive into timblechmann-fixes/ebo_functor_holder_compile_fix
2016-02-26 23:20:56 +01:00
Ion Gaztañaga
1c59efae73
Fixes Boost Trac #11865 : "Intrusive list explicit ctor error with Clang 3.6 (C++11/14)"
2016-02-26 23:08:21 +01:00
Ion Gaztañaga
72976d34f6
Fixes Boost Trac #11832 : "clang-cl + boost intrusive = miscompile"
2016-02-26 20:46:58 +01:00
Ion Gaztañaga
6a9fa390ae
Introduced BOOST_INTRUSIVE_FORCEINLINE, disabled by default until it's more tested
2015-12-24 10:29:09 +01:00
Tim Blechmann
95a5a56bc0
ebo_functor_holder: compile fix for copy constructor
2015-12-17 23:49:01 +01:00
Ion Gaztañaga
259e4a939f
Fix Trac #11765 ("sgtree.hpp:830: bad if test?")
2015-10-31 00:53:10 +01:00
Ion Gaztañaga
7de667ed5e
Fix undefined behaviour with default casting implementations. Null pointers can't be dereferenced, so return a value constructed smart pointer in those cases.
2015-10-18 21:30:10 +02:00
Ion Gaztañaga
ea47994cc0
Minimize ifdef-ed code for BOOST_MOVE_HELPERS_RETURN_SFINAE_BROKEN
2015-10-17 10:18:51 +02:00
Ion Gaztañaga
a91afcbde4
Use BOOST_MOVE_HELPERS_RETURN_SFINAE_BROKEN as some compilers prefer return type SFINAE while others don't support it.
2015-10-17 09:39:34 +02:00
Ion Gaztañaga
e8f649d474
Added new asserts in rebalancing code
2015-10-17 00:14:46 +02:00
Ion Gaztañaga
2208226d2c
Use uinptr_t instead of size_t, only the former is guaranteed to be able to hold a pointer
2015-10-17 00:13:38 +02:00
Ion Gaztañaga
ff9a968958
Add some default constructor declarations, as GCC 3.4 seems to need them in is_constructible
2015-10-12 22:12:41 +02:00
Ion Gaztañaga
11280a0e29
Add support for GCC 3.4
2015-10-12 16:29:38 +02:00
Ion Gaztañaga
bba1782654
Fixes for advanced lookup and insertions documentation.
2015-10-08 11:11:29 +02:00
Ion Gaztañaga
b11720f527
Advanced lookup and insertions in ordered associative containers now support comparison functions that are not required to offer the same strict weak ordering as key_compare, the container must be partitioned in regards to the passed comparison object. This fixed Boost Trac #11701 ("Regression in boost::intrusive::set::equal_range")
2015-10-07 23:28:03 +02:00
Ion Gaztañaga
dda91f0e00
Return tree_iterator reference in tree traversal functions to allow easy chaining (e.g. i.go_parent().go_left().go_right())
2015-09-18 14:30:15 +02:00
Ion Gaztañaga
6fd1452c2b
Use newly refactored move/detail/std_fwd_xxx.hpp headers
2015-09-14 22:37:37 +02:00
Ion Gaztañaga
cc9f99fc78
Added sanity debug checks to insert_unique_commit
2015-09-07 18:27:29 +02:00
Ion Gaztañaga
7c36efbaa9
Added assignment and explicit copy constructor
2015-09-07 18:26:53 +02:00
Ion Gaztañaga
1e4a830323
Added move semantics to ebo_functor_holder
2015-09-07 18:25:36 +02:00
Ion Gaztañaga
79272de8ba
Added is_pow2/static_is_pow2/ceil_pow2/previous_or_equal_pow2
2015-09-07 18:25:08 +02:00
Ion Gaztañaga
0f2714b8e8
BOOST_INTRUSIVE_MSVC_ABI_PTR_TO_MEMBER was incorrectly undefined so no virtual inheritance was tested in compilers that theoretically support it.
2015-09-07 18:24:16 +02:00
Ion Gaztañaga
3587a6f470
Fix bug that could lead to uninitialized memory reads and rare errors when cloning
2015-06-09 14:24:00 +02:00
Ion Gaztañaga
ebf117f1ff
Support clang with gcc in std predeclarations
2015-06-09 14:22:57 +02:00
Ion Gaztañaga
51de75799b
- Implemented map and multimap-like interfaces.
...
- Refactored hashtable containers to reduce template instantiations.
2015-06-04 11:16:21 +02:00
Ion Gaztañaga
0b5ebe6cdd
Make some typedefs private instead of protected (these iterators are not designed to be base classes).
2015-04-14 14:58:11 +02:00
Ion Gaztañaga
9e326ac254
Use iterator_arrow_result to support raw pointers as iterators.
2015-04-14 14:57:33 +02:00
Ion Gaztañaga
eebabce934
Avoid inheritance
2015-04-14 14:56:38 +02:00
Ion Gaztañaga
bb95a6f8cf
Avoid unused variables warnings in release mode
2015-04-14 14:56:07 +02:00