Ion Gaztañaga
d849f80ea5
Removed tabs.
2014-07-30 16:32:55 +02:00
Ion Gaztañaga
52af899129
Merge branch 'aix_fix' of https://github.com/ibmsoe/container into ibmsoe-aix_fix
2014-07-30 16:20:15 +02:00
Ion Gaztañaga
941eb27e1d
Updated and documented non-standard optimizations based on memset
2014-07-20 14:43:12 +02:00
Axel Ismirlian
960d649e99
Added missing AIX definition for sched.h (previously out of scope).
2014-07-16 15:48:12 -05:00
Ion Gaztañaga
819b365f5e
Fixed unqualified iterator_to_pointer & to_raw_pointer calls that were causing compilation problems due to ADL.
2014-06-16 00:23:19 +02:00
Ion Gaztañaga
4ea1e46fcd
Replaced several "addressof()" uses with the more correct "iterator_to_raw_pointer".
...
Updated changelist with bug #9637 .
2014-06-14 22:50:53 +02:00
Ion Gaztañaga
5afad7cd0c
Added optimization for types that can be value initialized with memset.
2014-06-14 12:41:58 +02:00
Ion Gaztañaga
ac7fb5a86b
Replaced incorrect "&*iterator" expressions (which fails with value_types with overloaded "operator&") with "iterator_to_raw_pointer" or "iterator_to_pointer" utilities.
2014-06-12 10:01:52 +02:00
Ion Gaztañaga
bf5c140180
Added missing "element_type" to the pseudo-pointer operator_arrow_proxy to be compatible with pointer_traits
2014-06-12 10:01:38 +02:00
Ion Gaztañaga
9ec026937b
Use pointer traits to obtain element_type in "to_raw_pointer"
2014-06-11 15:54:54 +02:00
Ion Gaztañaga
c2100f349e
Removed dead comment
2014-06-11 14:58:43 +02:00
Ion Gaztañaga
8c1bfe2881
Removed trailing whitespaces
2014-05-28 15:50:13 +02:00
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