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
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