Ion Gaztañaga
6d034733bd
Added missing #pragma once
2014-10-13 23:26:01 +02:00
Ion Gaztañaga
cc699e956f
Updated due to Intrusive detail changes.
2014-10-10 18:23:19 +02:00
Ion Gaztañaga
5d6123152c
Removed unneeded includes. Refactores std forward declarations
2014-10-04 09:05:04 +02:00
Ion Gaztañaga
d19b012d53
Reduced include dependencies:
...
- Replaced boost/move/move.hpp with boost/move/utility_core.hpp
- Replaces <new> with placement_new.hpp
- Removed some unneeded std includes.
2014-09-26 08:12:40 +02:00
Ion Gaztañaga
3af96e0801
Implements N3644.
...
- Avoid deriving from std::iterator_traits as iterators become too fat.
- Use intrusive's reverse_iterator some std::reverse_iterator-s don't value initialize base.
2014-09-24 16:09:56 +02:00
Ion Gaztañaga
be9837fd54
Fix multiple destructor bug, pointer was not incremented in ~scoped_destructor_n()
2014-09-23 16:58:38 +02:00
Ion Gaztañaga
f5e678fc70
Remove warning of unused variable.
2014-09-22 22:31:34 +02:00
mikael
59b46cd338
Fixes a small issue that prevented the use of iterators of containers of incomplete types. Added iterators of incomp-types to unit-tests.
2014-09-21 19:46:58 -04:00
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