Ion Gaztañaga
3bbb0bbe0e
Fixed wrong BOOST_CONTAINER_VECTOR_ALLOC_STATS comments in vector_alloc_base, they should go to the derived vector class.
...
Fixed error in void assign(FwdIt first, FwdIt last) when fwd expansion occurs, capacity was not being updated.
Optimized erasure when the type has_trivial_destructor_after_move.
Simplified a bit backwards expansion code.
Optimized priv_uninitialized_construct_at_end calling memmove-aware functions instead of using a hand-written loop
2014-09-21 23:57:23 +02:00
Ion Gaztañaga
33c920d435
Removed unneeded includes.
2014-09-21 23:50:40 +02:00
Ion Gaztañaga
76fcab1a09
Use emplace instead or push_back in priv_insert_ordered_range
2014-09-20 17:30:09 +02:00
Ion Gaztañaga
27f99047a8
Documentaion macros in adaptive_pool
2014-09-20 17:29:26 +02:00
Ion Gaztañaga
d2bd31e4d0
Add new documentation macros and tested in vector.
2014-09-20 17:28:41 +02: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
5313086d54
Updated position insertion code.
...
Fixed backwards expansion calling too many destructors nd added more tests to detect similar errors.
2014-09-17 21:52:34 +02:00
Ion Gaztañaga
0ccf576872
Updated range insertion code for enhanced performance.
2014-09-17 21:51:38 +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
abc8f80ea6
Remove BOOST_MOVABLE_BUT_NOT_COPYABLE from basic_string_base as it comflicts with is_copy_constructible and other utilities that inspect the internal tag looking for noncopyable types.
2014-08-29 14:19:54 +02:00
Ion Gaztañaga
ff6e90a720
Removed incorrect deprecated function warning macros in MSVC compilers.
2014-08-29 12:54:45 +02:00
Robert Matusewicz
cbe191b5e3
add std::initializer_list support to flat_set and flat_multiset
2014-08-28 13:15:14 +02:00
Robert Matusewicz
e2b815c196
add std::initializer_list support for flat_map and flat_multimap
2014-08-28 13:15:10 +02:00
Robert Matusewicz
f8ebfa472a
Add std::initializer_list to the following containers:
...
* deque
* map
* multimap
* set
* multiset
* list
* slist
Tested on clant and g++
2014-08-27 17:34:25 +02:00
Robert Matusewicz
089edf9d35
add support for std::initializer_list to boost::container::static_vector
2014-08-19 20:23:14 +02:00
Robert Matusewicz
ac4dde2c6e
add std::initializer_list support for boost::container::vector
2014-08-15 20:25:16 +02:00
Ion Gaztañaga
dd01853881
Erased tab & removed unneeded clear() in assignment
2014-08-15 18:13:05 +02:00
Ion Gaztañaga
c03b2357ce
Erased tab & removed unneeded clear() in assignment
2014-08-15 18:12:18 +02:00
Ion Gaztañaga
a166923e83
Fixed documentation errors with "position", "pos", "hint" and "p" iterators indicating insertion/emplace position.
2014-08-15 17:20:57 +02:00
Robert Matusewicz
d0f8fe793c
add support for std::initialize_list in stable_vector constructor, operator=, assign and insert methods
2014-08-15 15:32:07 +02:00
Ion Gaztañaga
24cf58a0f0
Fixed wrong comment on required allocator type
2014-08-14 13:39:28 +02:00
Ion Gaztañaga
03582c4498
Workaround for MSVC compilers, that fail to properly handle template specializations with constness subtleties.
2014-08-03 22:08:59 +02:00
Ion Gaztañaga
fab3df0a04
Added emplace optimization specializations for compilers with rvalue references but without variadic templates (e.g. MSVC10&11)
2014-08-03 11:09:54 +02:00
Ion Gaztañaga
90be67e81f
Improved placement proxy to avoid temporary objects when constructing from values from the target type.
...
Added testcase based on Howard Hinnant's "Insert vs. Emplace" article.
2014-08-02 21:30:39 +02:00
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
9c582e906a
Documentation fixes:
...
* allocator_traits was not properly placed in namespace boost::container.qbk
* Fixed some typos
* Added "Known Issues" section with move emulation problems.
2014-06-13 10:49:09 +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
11721001a3
Removed unused Boost.MPL and Boost.Iterator includes.
2014-06-09 06:40:39 +02:00
Ion Gaztañaga
790a8798d4
Fixes Trac issue #9801 ("I can no longer create and iterator_range from a stable_vector")
2014-06-06 13:21:03 +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
ba596fc83c
Fixes #9648 , (string construction optimization)
2014-02-11 15:05:35 +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
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