Commit Graph

163 Commits

Author SHA1 Message Date
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 4da327f7b1 Documented vector's weaker exception guarantees. 2014-04-16 14:44:15 +02:00
Ion Gaztañaga ba596fc83c Fixes #9648, (string construction optimization) 2014-02-11 15:05:35 +01:00
Ion Gaztañaga edc4e6da80 Reverted alloc_lib extension change. It breaks Windows builds. 2014-02-10 21:26:20 +01:00
Ion Gaztañaga 30431adf1e Changed extended allocator file extension from C to C++ as some toolsets (like clang) don't ignore C++ options when compiling C files. 2014-02-09 23:20:44 +01:00
Ion Gaztañaga 4f2d7944fa Corrected test_suite name 2014-02-06 11:53:36 +01: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 6d6656fcc1 Improved set test with search functions and added set<string> test to benchmark. 2014-01-19 18:35:40 +01:00
Ion Gaztañaga 2b804c880b Fix GCC warning about unused typedef in release mode. 2014-01-05 22:37:09 +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 3af1cdefe0 Inherit flat_set/flat_multiset from flat_tree to avoid code instantiation in debug mode and several trivial functions. Declarations still there for doxygen documentation. 2014-01-05 22:29:33 +01:00
Ion Gaztañaga 4872931d29 Documented template parameters. 2014-01-05 22:25:12 +01:00
Ion Gaztañaga 2b8f88b034 Documented template parameters 2014-01-03 14:52:56 +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 2489010881 Document comparison operators for non tree associative containers. 2014-01-03 12:43:03 +01:00
Ion Gaztañaga 4dc3df6b6b Use "insert_after" instead of "insert" to avoid unneeded checks. 2014-01-03 10:37:09 +01:00
Ion Gaztañaga fc8507b48c Some comments in the testcases separating test groups. 2013-12-26 13:10:54 +01:00
Ion Gaztañaga 9ac4ae6fdc Added a static assert to make sure that flat_[xxx]map::allocator_type::value_type is std::pair<Key, T>. Fixed some test cases failing to do that properly. 2013-12-24 19:00:52 +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 59c5ed7781 Fixed error in default_init_allocator, it should not construct objects, only allocate raw memory.
[SVN r85999]
2013-09-29 11:39:34 +00:00
Ion Gaztañaga 232e18956a Fixed error for test_allocator::max_size(), now returns std::size_t(-1)
[SVN r85998]
2013-09-29 11:38:47 +00:00
Ion Gaztañaga 3921e08520 Tagged vector_alloc_holder constructors that allocate but don't initialize memory to improve maintainability.
[SVN r85997]
2013-09-29 11:37:30 +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
Stephen Kelly eb4b320fed Container: Fix two pragma guards.
Fix typo in the MSC_VER macro check

[SVN r85923]
2013-09-25 21:17:34 +00:00
Ion Gaztañaga 1e4be891d0 Remove unused header.
[SVN r85687]
2013-09-15 19:47:36 +00:00
Ion Gaztañaga a7b88d804c Fixes #9009
[SVN r85660]
2013-09-12 22:00:51 +00:00
Ion Gaztañaga ed57e6e619 Fixes #9108
[SVN r85658]
2013-09-12 21:50:38 +00:00
Ion Gaztañaga 7d69794f7e Removed SGI copyright as after rewrites it is no longer applicable.
[SVN r85627]
2013-09-09 19:36:10 +00:00
Ion Gaztañaga 5a4073434b Removed SGI copyright as after rewrites it is no longer applicable.
[SVN r85625]
2013-09-09 19:26:50 +00:00
Ion Gaztañaga 3e945acc9b Fixes #9092
[SVN r85612]
2013-09-08 18:58:21 +00:00
Ion Gaztañaga 027c92fad3 Fixes #9064
[SVN r85537]
2013-08-31 21:49:26 +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 d91dc0059b Fixes #8269
[SVN r85297]
2013-08-10 22:58:27 +00:00
Ion Gaztañaga db9dfed107 Test update for #8892 + changelog updated.
[SVN r85169]
2013-07-29 21:40:30 +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