Ion Gaztañaga
f540b83ccd
* Implemented merge operations for associative containers.
...
* Update tree-based containers to changes done in Intrusive internal utilities in order to fix Trac 12432.
2016-09-03 00:03:42 +02:00
Ion Gaztañaga
9f9fdeaa9a
Adapt to Intrusive change that removed unneeded template parameters to tree_value_compare.
2016-08-29 16:53:17 +02:00
Ion Gaztañaga
4298d1984b
* Add missing extract() and insert(node_type) funtion to associative containers.
...
* Simplify select1st
2016-08-29 00:06:57 +02:00
Ion Gaztañaga
1467c51a4e
Implemented missing try_emplace member for maps.
2016-08-26 01:47:32 +02:00
Ion Gaztañaga
2d6f781a2f
Implemented "insert_or_assign" for map-like containers.
2016-08-18 20:29:04 +02:00
Ion Gaztañaga
225e2da77e
Revised noexcept expressions of default and move constructors in all containers.
2016-08-01 23:49:51 +02:00
Ion Gaztañaga
a7158c7975
Fixed Trac #12014 : "boost::container::set can not insert const (ref) range"
2016-02-24 10:13:07 +01:00
Ion Gaztañaga
75f7c8fa73
Introduced BOOST_CONTAINER_FORCEINLINE so that mandatory inlining can be disabled selectively
2015-12-24 10:22:38 +01:00
Ion Gaztañaga
a3262c0ae7
Fix for Trac #11820 ("compiler error when using operator[] of map")
2015-12-24 01:14:10 +01:00
Ion Gaztañaga
c4505003c7
Minimize ifdef-ed code for BOOST_MOVE_HELPERS_RETURN_SFINAE_BROKEN
2015-10-17 10:17:30 +02:00
Ion Gaztañaga
1d5c367d62
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:56 +02:00
Ion Gaztañaga
7764e05444
Changes to support GCC 3.4
2015-10-12 18:51:08 +02:00
Ion Gaztañaga
85b2ed509b
Added debug assertions via BOOST_ASSERT to check preconditions in several members. All checks are O(1)
2015-09-18 14:39:17 +02:00
Ion Gaztañaga
e198da5946
Use Intrusive's tree_value_compare class instead of duplicating code
2015-06-04 11:42:47 +02:00
Ion Gaztañaga
6477543f3b
Updated to new meta-functions reused from Intrusive/Move
2015-04-14 15:21:46 +02:00
Ion Gaztañaga
c2ea5da716
Fix move constructors with unequal allocators and move/copy assignment of tree.
2015-02-26 00:22:23 +01:00
Ion Gaztañaga
10d027aa9c
Include boost/config.hpp before testinG BOOST_HAS_PRAGMA_ONCE.
2015-02-02 15:26:53 +01:00
Ion Gaztañaga
b786c8f716
Replaced BOOST_CONTIANER_NOEXCEPT with BOOST_NOEXCEPT
2015-01-28 22:11:00 +01:00
Ion Gaztañaga
dbafd61d4d
updated move assignments and swap operations to "N4258: Cleaning-up noexcept in the Library, Rev 3" with some customizations.
2015-01-19 00:18:44 +01:00
Ion Gaztañaga
a322203a89
Replaced _MSC_VER with BOOST_HAS_PRAGMA_ONCE before #pragma once.
2015-01-10 12:50:17 +01:00
Ion Gaztañaga
360957a797
Massive dependency reduction. Removed dependency on several boost libraries and standard C++ headers.
2015-01-02 19:34:21 +01:00
Ion Gaztañaga
7971dc6602
Refactored uses of <iterator> and <algorithm> to avoid dependencies where possible.
2014-11-26 07:08:06 +01:00
Ion Gaztañaga
d514c1ab66
Refactored comparison functors to reuse compare_functors.hpp classes
2014-11-23 10:07:12 +01:00
Ion Gaztañaga
6f1f162cb3
- Added nth and index_of.
...
- Used BOOST_MOVE_BASE
2014-11-01 20:03:25 +01:00
Ion Gaztañaga
6d034733bd
Added missing #pragma once
2014-10-13 23:26:01 +02:00
Ion Gaztañaga
3af96e0801
Implements N3644.
...
- Avoid deriving from std::iterator_traits as iterators become too fat.
- Use intrusive's reverse_iterator some std::reverse_iterator-s don't value initialize base.
2014-09-24 16:09:56 +02:00
mikael
59b46cd338
Fixes a small issue that prevented the use of iterators of containers of incomplete types. Added iterators of incomp-types to unit-tests.
2014-09-21 19:46:58 -04:00
Ion Gaztañaga
3025cc41b6
Replace "boost/move/utility.hpp" with "boost/move/utility_core.hpp" to minimize dependencies.
2014-09-17 23:36:23 +02:00
Ion Gaztañaga
f213f55f20
Includes: Updated detail/xxx.hpp includes to core/xxx.hpp, added some missing move/traits.hpp and removed some unused ones.
2014-09-17 21:49:47 +02:00
Ion Gaztañaga
8c1bfe2881
Removed trailing whitespaces
2014-05-28 15:50:13 +02:00
Ion Gaztañaga
0b720f82b4
Fixed #9916 : "Allocator propagation incorrect in the assignment operator of most".
...
Fixed #9932 : "Missing assignment operator from related static_vector".
Added missing details from issue #9915
2014-04-21 13:59:49 +02:00
Ion Gaztañaga
a4b839628a
Implemented unique associative containers' equal_range using lower_bound_range which is more efficient with heavy comparison functions.
...
Updated benchmark to avoid measuring redundant operations in searches.
2014-01-20 13:20:02 +01:00
Ion Gaztañaga
abc50c7275
Improved unique associative container count function. Improved also flat_xxx's equal_range.
2014-01-19 19:18:57 +01:00
Ion Gaztañaga
a93e23f22a
Inherit set/multiset/map/multimap from tree to avoid redundant instantiations in debug mode and simplify maintenance.
2014-01-05 22:36:01 +01:00
Ion Gaztañaga
01486761a6
Added support for configurable tree-based associative containers. In addition to RB trees, AVL, Scapegoat and Splay trees are experimentally supported.
2014-01-03 13:26:57 +01:00
Ion Gaztañaga
95e6ba9839
Extracted key_node_compare from tree to tidy a bit the implementation and ease maintenance.
2013-12-24 18:58:01 +01:00
Ion Gaztañaga
ed0704797d
Refactored tree cloners into a single standalone class to avoid unnecessary instantiations and simplify maintenance.
2013-12-24 12:58:28 +01:00
Ion Gaztañaga
41c2056ec6
- Modified relational operators to be friend inline definitions. This allows compilation checking when instantiating classes, avoids predeclarations and results in less verbose code.
...
- First to make associative containers' tree implementation configurable.
2013-12-23 23:34:28 +01:00
Ion Gaztañaga
f2947c115e
Changes during Git migration:
...
- Added Extended Allocator support for Boost.Container.
- Improved Doxygen generated reference
- Fixed ticket #9338 ("VS2005 compiler errors in swap() definition after including container/memory_util.hpp")
2013-12-23 10:47:20 +01:00
Ion Gaztañaga
62227ae741
Fixed typo causing errors in clang builds.
...
[SVN r86045]
2013-09-30 04:47:29 +00:00
Ion Gaztañaga
14f092ab00
Default initialization for vector-like containers
...
Complexity guarantees for associative container constructors and ordered input ranges
Added benchmark for associative containers
Fixes #9166
[SVN r85964]
2013-09-26 18:05:25 +00:00
Ion Gaztañaga
3d249fa728
Implemented SCARY iterators for all containers
...
[SVN r85308]
2013-08-11 21:36:19 +00:00
Ion Gaztañaga
b1503a139e
Fixes #8892 .
...
[SVN r85167]
2013-07-29 21:32:23 +00:00
Ion Gaztañaga
bc5c91bb79
* Improved vector's insertion performance.
...
* Changed again experimental multiallocation interface for better performance (still experimental).
* Added no exception support for those willing to disable exceptions in their compilers.
* Fixed GCC -Wshadow warnings.
* Replaced deprecated BOOST_NO_XXXX with newer BOOST_NO_CXX11_XXX macros.
[SVN r81518]
2012-11-24 21:08:18 +00:00
Ion Gaztañaga
b480cc235f
More Doxygen documentation improvements
...
[SVN r80795]
2012-09-30 20:38:04 +00:00
Ion Gaztañaga
3c256c2282
Implemented LWG Issue #149 (range insertion now returns an iterator) & cleaned up insertion code in most containers
...
[SVN r80348]
2012-09-01 11:01:03 +00:00
Ion Gaztañaga
a9eb3dad27
Ticket #7114:Destructor not called when using emplace()
...
[SVN r79422]
2012-07-11 17:34:44 +00:00
Ion Gaztañaga
9460e03224
Trailing whitespaces
...
[SVN r78518]
2012-05-20 10:02:49 +00:00
Ion Gaztañaga
ffde790ae0
Updated scoped allocator support
...
[SVN r77911]
2012-04-11 06:26:20 +00:00
Ion Gaztañaga
c5bdec851e
Experimental scoped_allocator support
...
[SVN r77480]
2012-03-22 18:46:55 +00:00