Release Notes

| Home | Libraries | People | FAQ | More

## Release Notes

### Boost 1.61 Release

- `boost::container::small_vector` supports more constructors and assignments.
- Fixed bugs:
  - Trac #11820 : "compiler error when using operator[ of map"].
  - Trac #11856 : "pool_resource.cpp error: declaration changes meaning".
  - Trac #11866 : "small_vector does not have range constructor".
  - Trac #11867 : "small_vector should have constructor and assignment operator taking other small_vector".
  - Trac #11912 : "flat_map use of vector::priv_forward_range_insert_expand_backwards may cause move with same source".
  - Trac #11957 : "static_vector::max_size() is higher than the capacity".
  - Trac #12014 : "boost::container::set can not insert const (ref) range".
  - GitHub #33: Make sure std::string constructor is available.

### Boost 1.60 Release

- 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:
  - Trac #11627: "small_vector<T,n>::swap() appears to be broken".
  - Trac #11628: "small_vector<int,n> iterates over elements in destructor".
  - Trac #11697: "Wrong initialization order in tuple copy-constructor".
  - Trac #11698: "Missing return statement in static_storage_allocator".
  - GitHub #29: Doc fixes for flap_map complexity requirements.
  - GitHub #31: DL_SIZE_IMPL also dereference addr.

### Boost 1.59 Release

- GitHub #26: Fix bug in stable_vector::capacity(). Thanks to timsong-cpp/Arindam Mukerjee.
- GitHub #27: fix stable_vector's index_of's doxygen comment. Thanks to kariya-mitsuru.
- Trac #11380: "Container library std forward declarations incorrect in std_fwd.hpp on libc++ with gcc".
- Trac #11388: "boost::container::list::emplace_back broken on Visual Studio 2010".
- Trac #11339: "VC12 LNK2005 error with boost::container::adaptive_pool".

### Boost 1.58 Release

- 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:
  - Trac #9931: "flat_map::insert(ordered_unique_range_t...) fails with move_iterators" (reopened).
  - Trac #11076: "Unqualified calls to memmove/memcpy in container/detail/copy_move_algo.hpp".
  - Trac #10790 ("long long errors from container").
  - Trac #10808 ("compare equal operator of vector is broken").
  - Trac #10930 ("container std_fwd.hpp neglects custom std namespaces").
  - Trac #11139 ("boost::container::vector<std::shared_ptr<const T>...>::const_iterator allows changing dereferenced elements").
- 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>`.

### Boost 1.57 Release

- Added support for `initializer_list`. Contributed by Robert Matusewicz.
- Fixed double destruction bugs in vector and backward expansion capable allocators.
- Fixed bugs:
  - Trac #10263 ("AIX 6.1 bug with sched_yield() function out of scope").
  - GitHub #16: Fix iterators of incomplete type containers. Thanks to Mikael Persson.

### Boost 1.56 Release

- Added DlMalloc-based Extended Allocators.
- Improved configurability of tree-based ordered associative containers. AVL, Scapegoat and Splay trees are now available to implement `set`, `multiset`, `map` and `multimap`.
- Fixed bugs:
  - #9338: "VS2005 compiler errors in swap() definition after including container/memory_util.hpp".
  - #9637: "Boost.Container vector::resize() performance issue".
  - #9648: "string construction optimization - char_traits::copy could be used ...".
  - #9801: "I can no longer create and iterator_range from a stable_vector".
  - #9915: "Documentation issues regarding vector constructors and resize methods - value/default initialization".
  - #9916: "Allocator propagation incorrect in the assignment operator of most".
  - #9931: "flat_map::insert(ordered_unique_range_t...) fails with move_iterators".
  - #9955: "Using memcpy with overlapped buffers in vector".

### Boost 1.55 Release

- Implemented SCARY iterators.
- Fixed bugs #8269, #8473, #8892, #9009, #9064, #9092, #9108, #9166.
- Added `default initialization` insertion functions to vector-like containers with new overloads taking `default_init_t` as an argument instead of `const value_type &`.

### Boost 1.54 Release

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

### Boost 1.53 Release

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

### Boost 1.52 Release

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

### Boost 1.51 Release

- Fixed bugs #6763, #6803, #7114, #7103. #7123,

### Boost 1.50 Release

- Added Scoped Allocator Model support.
- Fixed bugs #6606, #6533, #6536, #6566, #6575,

### Boost 1.49 Release

- Fixed bugs #6540, #6499, #6336, #6335, #6287, #6205, #4383.
- Added `allocator_traits` support for both C++11 and C++03 compilers through an internal `allocator_traits` clone.

### Boost 1.48 Release

- First release. Container code from Boost.Interprocess was deleted and redirected to Boost.Container via using directives.