Commit Graph
223 Commits
Author SHA1 Message Date
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
Ion Gaztañaga 1e4b94b32a Add iterator_arrow_result utility 2015-04-14 14:55:39 +02:00
Ion Gaztañaga 1614d58b74 hashtable_node: change pointer and references types from raw to those specified in value_traits. 2015-04-14 14:54:53 +02:00
Ion Gaztañaga dd385e0ec5 -> Use new Boost.Move meta utilities to avoid compilation errors in old compilers.
-> Implement equality operators as friend functions to make code clearer.
2015-04-12 12:56:04 +02:00
Ion Gaztañaga 1231ddd0e1 Fix error in reverse_iterator::operator[] 2015-04-04 22:53:28 +02:00
Ion Gaztañaga 4f20e7279d Add new clone_from overload to implement move semantics 2015-02-26 00:02:24 +01:00
Ion Gaztañaga b5fd69e628 Add support for GCC versioned std namespaces 2015-02-26 00:00:58 +01:00
Ion Gaztañaga b9aa032d98 any_xxx_node_traits must return pointers by value to avoid aliasing problems, as done long time ago with other traits. 2015-02-02 17:12:18 +01:00
Ion Gaztañaga 667ec0bdfc Make sure boost/config.hpp is included before pragma once. 2015-02-01 23:15:14 +01:00
Ion Gaztañaga ccd980d1f4 Additional checks for red-black trees, make sure root is black and the number of black nodes is equal in the left and right subtrees. 2015-02-01 23:14:27 +01:00
Ion Gaztañaga 10cb0bd206 Fixed "pointed to by pos" with "pointed to by i" 2015-01-19 22:34:52 +01:00
Ion Gaztañaga 2b714f7e04 Remove redundant "struct" keyword 2015-01-14 15:46:54 +01:00
Ion Gaztañaga a55b2d824d Replaced _MSC_VER with BOOST_HAS_PRAGMA_ONCE before #pragma once. 2015-01-10 12:49:46 +01:00
Ion Gaztañaga 7b87a5e7da Removed unused preprocessor.hpp file. 2015-01-08 15:33:19 +01:00
Adam Romanek 07599bd731 Replaced raw rethrow statements with BOOST_RETHROW 2015-01-07 13:45:07 +01:00
Ion Gaztañaga 974bb7b14d Avoid instantiating iterator tags in iterator_advance and iterator_distance, to allow iterators that forward declare tags and avoid including <iterator> 2015-01-04 02:15:44 +01:00
Ion Gaztañaga 614ce1b155 Reduced include dependencies 2015-01-02 18:41:20 +01:00
Ion Gaztañaga 757475e59c Removed trailing spaces. 2015-01-02 18:40:20 +01:00
Ion Gaztañaga 12ee566796 Workaround for bugs #10771 and #6720. 2014-12-17 15:45:05 +01:00
Ion Gaztañaga 281629b94e Fixed wrong comment in bounded_range when lower and upper are equal. 2014-12-15 17:49:05 +01:00
Ion Gaztañaga 50f9f57f6c Documented pointer_traits according to Trac #10853 proposal 2014-12-15 17:39:04 +01:00
Ion Gaztañaga a4f0c0c7b3 Reduced compile-time dependencies, headers, and the use of Boost.Preprocessor, specially for hooks and iterators. 2014-12-08 15:48:08 +01:00
Ion Gaztañaga adda517544 Use of boost::adl_move_swap.
Replaced <algorithm> with <functional> where needed
Added basic equal/lexicographical compare algorithms to avoid complex <algorithm> include and ADL problems in some compilers
2014-11-26 19:32:12 +01:00
Ion Gaztañaga 55a3c8b9a5 Simplified iterator_category expression so that old compilers can parse it. 2014-11-26 07:01:49 +01:00
Ion Gaztañaga 913f903d16 Avoid including <iterator>, use intrusive's own version to avoid ADL clashes and minimize some dependencies. 2014-11-25 18:43:16 +01:00
Ion Gaztañaga 0d86ca5d80 Use of boost::long_long_type to avoid warnings. 2014-11-25 18:39:07 +01:00
Ion Gaztañaga 2c13d5c7d9 Renamed get_less with get_compare 2014-11-09 14:15:14 +01:00
Ion Gaztañaga 446f87f932 Added missing non-const overloads to operator() 2014-11-09 14:14:24 +01:00
Ion Gaztañaga 2839598e85 get_header_holder_type used internally to shorten symbol length. 2014-11-01 19:59:03 +01:00
Ion Gaztañaga 960c85587f Changed default_tag 2014-11-01 19:57:24 +01:00
Ion Gaztañaga 3eff274cb3 Fixed tab spaces 2014-11-01 19:52:03 +01:00
Ion Gaztañaga e957ece332 Removed newline 2014-11-01 19:51:42 +01:00
Ion Gaztañaga 803262ffc8 Added go_left, go_right_, go_parent and bool conversion to tree iterator 2014-11-01 19:51:22 +01:00
Ion Gaztañaga b9ce8b4ac6 More documentation macros 2014-11-01 19:50:49 +01:00
Ion Gaztañaga 414ca9f338 Break options.hpp dependencies, now hooks don't depend on heavy meta-machinery. 2014-10-18 17:02:23 +02:00
Ion Gaztañaga e926491606 Added #pragma once to headers 2014-10-13 22:30:28 +02:00