Commit Graph

150 Commits

Author SHA1 Message Date
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
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