Commit Graph
64 Commits
Author SHA1 Message Date
Ion Gaztañaga a67982bd07 Fixes #9955 (Using memcpy with overlapped buffers in vector) 2014-04-26 13:14:36 +02:00
Ion Gaztañaga 9b25c7134e * Fixed BOOST_CONTAINER_NOEXCEPT_IF(allocator_traits_type::propagate_on_container_move_assignment) missing ::value
* Optimized insert_equal(ordered_range_t,...) and insert_unique(ordered_unique_range_t, ...) for elements to be inserted in the end.

* Added range insertion overload (non-standard extension) to vector taking the number of elements to avoid reiterations with std::distance.
2014-04-23 23:18:18 +02:00
Ion Gaztañaga 71b99683b9 Reverted a (premature) optimization that can lead to out of bound write. 2014-04-21 22:52:06 +02:00
Ion Gaztañaga 5013f3fd69 Fixes #9931 ("flat_map::insert(ordered_unique_range_t...) fails with move_iterators") 2014-04-21 21:23:24 +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 bffd6c036c Fixes #9915.
Uses intrusive is_convertible in MSVC compilers.
Removes some throw conditions in the documentation produced by the allocator copy constructor (as the standard requires no-throw guarantee for those).
2014-04-17 00:06:59 +02:00
Ion Gaztañaga a4c0188173 Divided set benchmark in several smaller benchmark files 2014-02-06 11:13:22 +01: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 d3eb21000b Derived flat_set from flat_tree to avoid redefining almost all functions and minimize instantiation of multiple function in debug mode. 2014-01-03 14:52:13 +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 b1d4ef3a2e Fixes #9338
[SVN r86748]
2013-11-18 09:32:44 +00: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 5b9b2c26dc Implemented 2x grow factor for vector capacity
[SVN r85996]
2013-09-29 11:36:06 +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
Stephen Kelly 59b2793df7 Remove obsolete MSVC check from pragma guard
git grep -h -B1 "^#\s*pragma once" | grep -v pragma | sort | uniq

is now clean.

[SVN r85952]
2013-09-26 13:02:51 +00:00
Ion Gaztañaga 3e945acc9b Fixes #9092
[SVN r85612]
2013-09-08 18:58:21 +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 4e92a024fb Fixes #8473
[SVN r85168]
2013-07-29 21:33:20 +00:00
Ion Gaztañaga b1503a139e Fixes #8892.
[SVN r85167]
2013-07-29 21:32:23 +00:00
Ion Gaztañaga f7accef426 Trivial fix for empty ranges in node_alloc_holder
[SVN r84900]
2013-06-24 19:10:07 +00:00
Vicente J. Botet Escriba a40fd4d49d Container: fix minor warning.
[SVN r83984]
2013-04-20 14:04:00 +00:00
Ion Gaztañaga 9f25104101 Added missing <cstring> for ::memcpy
[SVN r83460]
2013-03-16 14:22:59 +00:00
Ion Gaztañaga ff57d9287e Marked vector iterator and boost::interprocess::offset_ptr as contiguous storage iterators to speed up insertion in vector with trivially copyable types.
[SVN r83416]
2013-03-13 16:14:17 +00:00
Ion Gaztañaga 6acbbb6f9b Vector performance improvements: dispatching to memcpy when possible.
[SVN r83271]
2013-03-03 12:26:48 +00:00
Ion Gaztañaga 9b0a73fc32 Add experimental option to define "vector::iterator" as "pointer"
[SVN r83140]
2013-02-24 20:34:15 +00:00
Ion Gaztañaga 0896d04ddf Additional vector speed improvements, added basic benchmark against varray
[SVN r83126]
2013-02-24 13:13:36 +00:00
Ion Gaztañaga f309f82a8f Added experimental static_vector first sketch
[SVN r83036]
2013-02-19 21:35:46 +00:00
Ion Gaztañaga e93994fb72 Added uninitialized_default_alloc as current code didn't use allocator_traits
[SVN r82889]
2013-02-14 19:43:13 +00:00
Ion Gaztañaga d3a350d56f vector performance optimization: simplified allocator holder, constructors rewritten to avoid unnecessary initializations.
[SVN r82846]
2013-02-12 21:26:21 +00:00
Ion Gaztañaga 92183ce9aa Removed unused variable warnings
[SVN r82433]
2013-01-10 20:03:39 +00:00
Ion Gaztañaga 99c8d5d9d7 Fixes #7227
[SVN r82429]
2013-01-10 10:55:50 +00:00
Ion Gaztañaga 71e9c48f32 Added missing <algorithm> include for std::swap
[SVN r82252]
2012-12-28 23:53:43 +00:00
Marshall Clow 9cfc51f19c Removed usage of deprecated macros in Boost.Container
[SVN r81572]
2012-11-26 18:56:20 +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
Marshall Clow 22e74d279c Remove usage of deprecated macros
[SVN r81447]
2012-11-20 23:06:46 +00:00
Jeffrey Lee Hellrung, Jr. 546a3f0f12 refs #7531 (variable shadowing in container and intrusive)
[SVN r81050]
2012-10-23 12:56:01 +00:00
Ion Gaztañaga b480cc235f More Doxygen documentation improvements
[SVN r80795]
2012-09-30 20:38:04 +00:00
Ion Gaztañaga 42ea3ca8c7 Bug #7439
[SVN r80743]
2012-09-28 21:07:02 +00:00
Ion Gaztañaga ac05be5947 Reordered sequence container types and functions to improve Doxygen documentation
[SVN r80686]
2012-09-24 10:27:02 +00:00
Ion Gaztañaga 1582b2086d Corrected strict aliasing error in multiallocation_chain
[SVN r80514]
2012-09-13 18:54:58 +00:00
Ion Gaztañaga 22a18c25fb Reduced template code bloat making stable_vector's index independent from value_type.
[SVN r80478]
2012-09-09 21:47:32 +00:00
Ion Gaztañaga a8d20305dc Improved type safety and strict aliasing
[SVN r80404]
2012-09-05 09:28:24 +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