| Home | Libraries | People | FAQ | More

## Release Notes

### Boost 1.70 Release

- Fixed bugs:
  - GitHub Pull #33: Fix compilation in case if key is void*, again
  - GitHub Issue #34: -Wdeprecated-copy on gcc9
  - GitHub Issue #35: key_of_value on treap_set seems to be broken in 1.69
  - GitHub Issue #38: treap: Same type for priority and key comparison leads to ambiguous base class error
  - GitHub Pull #39: Fix -Wextra-semi clang warnings

### Boost 1.67 Release

- Fixed bugs:
  - GitHub Issues #29: Uninitialized variable warning pointer_plus_bits.hpp

### Boost 1.65 Release

- Fixed bugs:
  - Boost Trac #12894: Allow non std::size_t size_type
  - Boost Trac #12698: base64 iterators can't be used with iterator_advance
  - GitHub Pull #23: Conditionally replace deprecated/removed C++98 std::random_shuffle by...
  - GitHub Pull #24: Adds support for MSVC ARM64 target

### Boost 1.64 Release

- Fixed bugs:
  - Boost Trac #12745: key_nodeptr_comp broken if the key type is void*
  - Boost Trac #12761: intrusive::set::swap doesn't swap the comparison function*

### Boost 1.63 Release

- Fixed bugs:
  - Boost Trac #12556: member_value_traits.hpp has a missing #include

### Boost 1.62 Release

- Fixed bugs:
  - Boost Trac #11476: has_member_function_callable_with.hpp is massively broken with BOOST_NO_CXX11_DECLTYPE
  - Boost Trac #11994: Support intrusive container key extractors that return the key by value
  - Boost Trac #12184: clang -Wdocumentation warning
  - Boost Trac #12190: Intrusive List + Flat Map combination crashes
  - Boost Trac #12229: intrusive::unordered_set<T>::rehash() broken
  - Boost Trac #12245: bstree uses a shared static size_traits for constant_time_size<false>
  - Boost Trac #12432: Forced KeyOfValue creation when using custom compare on insert_check
- Implemented `merge` functions in ordered associative containers.
- Officially documented `root()` function for tree-based containers.

### Boost 1.61 Release

- Fixed bugs:
  - Boost Trac #11832: clang-cl + boost intrusive = miscompile
  - Boost Trac #11865: Intrusive list explicit ctor error with Clang 3.6 (C++11/14)
  - Boost Trac #11992: Add an overload of insert_check taking a key_type
  - GitHub Pull #19: ebo_functor_holder: compile fix for copy constructor

### Boost 1.60 Release

- Advanced lookup and insertions in ordered associative containers now support comparison functions that are not required to offer the same strict weak ordering as `key_compare`, the container must be partitioned in regards to the passed comparison object.
- Fixed bugs:
  - Boost Trac #11701: Regression in boost::intrusive::set::equal_range
  - Boost Trac #11765: sgtree.hpp:830: bad if test ?

### Boost 1.59 Release

- Implemented map and multimap-like interfaces.
- Refactored hashtable containers to reduce template instantiations.
- Fixed bugs:
  - Boost Trac #11222: intrusive/pointer_traits.hpp fails to compile with C++98

### Boost 1.58 Release

- Reduced compile-time dependencies, headers, and the use of Boost.Preprocessor, specially for hooks and iterators.
- Fixed bugs:
  - Boost Trac #6720: intrusive::unordered_set::clear_and_dispose does not compile on VC11 Beta when passed a stateless lambda
  - Boost Trac #10771: remove_if is broken for slist
  - Boost Trac #10853: problem with detection of const_cast_from
  - Boost Trac #10987: bug in any_xxx_node_traits, returning by reference

### Boost 1.57 Release

- Experimental version of node checkers, contributed by Matei David. Many thanks!
- Implemented N3644: Null Forward Iterators from C++14.
- Fixed bugs:
  - GitHub Pull #12: Fix MSVC14 warning C4456: declaration of 'x_parent_right' hides previous local declaration
  - Boost Trac #10520: Conversion warning in intrusive/detail/utilities.hpp
  - Boost Trac #10469: Erasing from intrusive unordered_multiset with optimize_multikey goes into an infinite loop

### Boost 1.56 Release

- Improved Doxygen generated reference and updated and fixed forward-declaration header.
- ABI breaking: Fixed ABI regression introduced in Boost 1.55 version, mainly noticeable on MSVC compilers.
- Source breaking: Removed previously deprecated `xxx_dont_splay` functions from splay containers, `splay_set_base_hook` and `splay_set_member_hook`from splay containers and `bool splay = true` extra parameter in `splaytree_algorithms` functions.
- Fixed bugs:
  - #8468: Compile error on visual studio 2010/2012 using vector with custom allocator and aligned types
  - #9332: "has_member_function_callable_with.hpp compile error on msvc-12.0".
  - #9650: "intrusive list with stateful value traits".
  - #9746: Modern Sun CC compiler detects error in intrusive library header
  - #9940: bad bug in intrusive list with safe_link (or auto_unlink) hooks
  - #9948: remove use of const_cast in intrusive containers
  - #9949: clear header node hooks upon intrusive container destruction
  - #9961: tests for hooks not derived frorm generic_hook
- Optimized tree rebalancing code to avoid redundant assignments.
- Added 64 bit prime values for `suggested_upper_bucket_count`/`suggested_lower_bucket_count` in 64 bit platforms.
- Deleted workarounds for old SUN_CC compilers, those are now unsupported as modern SunPro compilers are standard-corforming enough.

### Boost 1.55 Release

- Source breaking: Deprecated `xxx_dont_splay` functions from splay containers. Deprecated `splay_set_base_hook` and `splay_set_member_hook`from splay containers, use `bs_set_base_hook` or `bs_set_member_hook` instead. Both will be removed in Boost 1.56.
- ABI breaking: Hash containers' end iterator was implemented pointing to one-past the end of the bucket array (see #8698) causing severe bugs when values to be inserted where allocated next to the bucket array. End iterator implementation was changed to point to the beginning of the bucket array.
- Big refactoring in order to reduce template and debug symbol bloat. Test object files have been slashed to half in MSVC compilers in Debug mode. Toolchains without Identical COMDAT Folding (ICF) should notice size improvements.
- Implemented SCARY iterators.

### Boost 1.54 Release

- Added `BOOST_NO_EXCEPTIONS` support (bug #7849).

### Boost 1.53 Release

- Fixed bugs #7174, #7529, #7815.
- Fixed GCC -Wshadow warnings.
- Added missing `explicit` keyword in several intrusive container constructors.
- Replaced deprecated BOOST_NO_XXXX with newer BOOST_NO_CXX11_XXX macros.
- Small documentation fixes.

### Boost 1.51 Release

- Fixed bugs #6841, #6907, #6922, #7033,
- Added `bounded_range` function to trees.

### Boost 1.49 Release

- Fixed bugs #6347, #6223, #6153.

### Boost 1.48 Release

- Fixed bugs #4797, #5165, #5183, #5191.

### Boost 1.46 Release

- Fixed bug #4980,

### Boost 1.45 Release

- Added `function_hook` option.
- Fixed bugs #2611, #3288, #3304, #3489, #3668, #3688, #3698, #3706, #3721. #3729, #3746, #3781, #3840, #3849, #3339, #3419, #3431, #4021.

### Boost 1.40 Release

- Code cleanup in bstree_algorithms.hpp and avl_tree_algorithms.hpp
- Fixed bug #3164.

### Boost 1.39 Release

- Optimized `list::merge` and `slist::merge`
- `list::sort` and `slist::sort` are now stable.
- Fixed bugs #2689, #2755, #2786, #2807, #2810, #2862.

### Boost 1.38 Release

- New treap-based containers: treap, treap_set, treap_multiset.
- Corrected compilation bug for Windows-based 64 bit compilers.
- Corrected exception-safety bugs in container constructors.
- Updated documentation to show rvalue-references functions instead of emulation functions.

### Boost 1.37 Release

- Intrusive now takes advantage of compilers with variadic templates.
- `clone_from` functions now copy predicates and hash functions of associative containers.
- Added incremental hashing to unordered containers via `incremental<>` option.
- Update some function parameters from `iterator` to `const_iterator` in containers to keep up with the draft of the next standard.
- Added an option to specify include files for intrusive configurable assertion macros.

### Boost 1.36 Release

- Added `linear<>` and `cache_last<>` options to singly linked lists.
- Added `optimize_multikey<>` option to unordered container hooks.
- Optimized unordered containers when `store_hash` option is used in the hook.
- Implementation changed to be exception agnostic so that it can be used in environments without exceptions.
- Added `container_from_iterator` function to tree-based containers.