-
devector
's insertion
logic has been reimplemented to move elements to the center of the devector
if an insertion at one end has no free capacity but there is free capacity
on the other end. Current implementation keeps reallocating memory when
only inserting at one end and poping from the other, provoking very high
memory usage. The new strategy is based on the article Double-ended
vector - is it useful? by Lars Greger Nordland Hagen.
-
The library now compiles without warnings with GCC's -Wcast-align=strict
-
Fixed bugs/issues:
-
Added [[no-discard]] attribute in all containers to catch bugs related
to unused return values.
-
Replaced default standard exception classes with Boost.Container own
classes, reducing considerably the included files overhead. Example:
in MSVC 19
boost/container/vector.hpp
preprocessed file size reduces
from 1,5MB to 930KB. If you still want to use standard exception classes,
you can define BOOST_CONTAINER_USE_STD_EXCEPTIONS
before using any Boost.Container class.
-
Fixed bugs/issues:
-
New
devector
container.
-
Fixed bugs/issues:
-
Removed support for already deprecated GCC < 4.3 and MSVC < 9.0
(Visual 2008) compilers.
-
Default allocator parameter changed form
new_allocator<T>
to void
to reduce symbol lenghts.
-
Fixed bugs:
-
vector can now have options, using
vector_options
.
The growth factor and the stored size type can be specified.
-
Improved range insertion in flat_[multimap/set]
containers overall complexity is reduced to O(NlogN).
-
Fixed bugs:
-
flat_[multimap/set] can now work as container adaptors,
as proposed in P0429R1.
The allocator argument is checked for size() and
empty() members. If so, the argument is interpreted
as the required underlying container. This means that static_vector,
stable_vector and small_vector
can be used now with flat associative containers.
-
Fixed bugs:
-
Implemented
extract_sequence
,
adopt_sequence
functions
for flat_[multi]map/set associative containers.
-
Fixed bugs:
-
Implemented Polymorphic
Memory Resources.
-
Add more BOOST_ASSERT checks to test preconditions in some operations
(like
pop_back
, pop_front
, back
,
front
, etc.)
-
Added C++11
back
/front
operations to basic_string
.
-
Fixed bugs:
-
Experimental
small_vector
container.
-
Massive dependency reorganization. Now Boost.Container
depends on very basic utilities like Boost.Core and Boost.Intrusive.
Preprocessed code size have decreased considerably and compilation times
have improved.
-
Added
nth
and index_of
functions to containers with
random-access iterators (except basic_string
).
-
Added C++17's
allocator_traits<Allocator>::is_always_equal
.
-
Updated containers to implement new constructors as specified in 2210.
Missing allocator-extended constructor for allocator-aware containers.
-
Fixed bugs:
-
Source Breaking:
scoped_allocator_adaptor
's
propagate_on_container_copy_assignment
,
propagate_on_container_move_assignment
and propagate_on_container_swap
are no longer ::boost::integral_constant<bool, true/false>
types. The dependency reorganization
needed to break with those classes to avoid MPL dependencies, and interoperability
with std::integral_constant
was not guaranteed.
Code assumming boost::true_type/boost::false_type
on this will not compile. As a workaround, use the guaranteed internal
::value
constant: ::boost::integral_constant<bool, scoped_allocator_adaptor<Allocator>::propagate_on_container_move_assignment::value>
.
-
Added support for
initializer_list
.
Contributed by Robert Matusewicz.
-
Fixed double destruction bugs in vector and backward expansion capable
allocators.
-
Fixed bugs:
-
Added experimental
static_vector
class, based on Andrew Hundt's and Adam Wulkiewicz's high performance
varray
class.
-
Speed improvements in
vector
constructors/copy/move/swap, dispatching to memcpy when possible.
-
Support for
BOOST_NO_EXCEPTIONS
#7227.
-
Fixed bugs #7921,
#7969,
#8118,
#8294,
#8553,
#8724.
-
Fixed bug #7650.
-
Improved
vector
's insertion
performance.
-
Changed again experimental multiallocation interface for better performance
(still experimental).
-
Added no exception support for those willing to disable exceptions in
their compilers.
-
Fixed GCC -Wshadow warnings.
-
Replaced deprecated BOOST_NO_XXXX with newer BOOST_NO_CXX11_XXX macros.
-
Improved
stable_vector
's
template code bloat and type safety.
-
Changed typedefs and reordered functions of sequence containers to improve
doxygen documentation.
-
Fixed bugs #6615,
#7139,
#7215,
#7232,
#7269,
#7439.
-
Implemented LWG Issue #149 (range insertion now returns an iterator)
& cleaned up insertion code in most containers
-
Corrected aliasing errors.
-
First release. Container code from Boost.Interprocess
was deleted and redirected to Boost.Container
via using directives.