fredrik.eriksson

Coffee and a keyboard

Boost 1.36.0

The 1.36.0 may not yet have been released but the code branch has been frozen so why wait with the release info.

New libraries

  • Accumulators: Framework for incremental calculation, and collection of statistical accumulators, from Eric Niebler.
  • Exception: A library for transporting of arbitrary data in exception objects, and transporting of exceptions between threads, from Emil Dotchevski.
  • Units: Zero-overhead dimensional analysis and unit/quantity manipulation and conversion, from Matthias Schabel and Steven Watanabe
  • Unordered: Unordered associative containers, from Daniel James.

Updated libraries

Assign

list_of() (and its variants) now has overloaded comparison operators. This allows you to write test code such as BOOST_CHECK_EQUAL( my_container, list_of(2)(3)(4)(5) );.

Foreach

New BOOST_REVERSE_FOREACH macro for iterating over a sequence in reverse.

Interprocess
  • Added anonymous shared memory for UNIX systems.
  • Fixed missing move semantics on managed memory classes.
  • Added copy_on_write and open_read_only options for shared memory and mapped file managed classes.
  • shared_ptr is movable and supports aliasing.
Intrusive
  • 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 avoid explicit use of try-catch blocks and be compilable with exceptions disabled.
Boost.Math
  • Added new non-central Chi-Square, Beta, F and T distributions.
  • Added Exponential Integral and Zeta special functions.
  • Added Rounding, Truncation, and Unit-in-the-last-place functions.
  • Added support for compile time powers of a runtime base.
  • Added a few SSE2 based optimisations for the Lanczos approximations.
PtrContainer

Support for a few more containers, and addition of insert iterators.

Spirit

Integrated the “Classic” Spirit V1.8.x code base with Spirit V2, “The

Thread
  • New generic lock and try_lock functions for locking multiple mutexes at once.
  • Rvalue reference support for move semantics where the compilers supports it.
  • A few bugs fixed and missing functions added (including the serious win32 condition variable bug).
  • scoped_try_lock types are now backwards-compatible with Boost 1.34.0 and previous releases.
  • Support for passing function arguments to the thread function by supplying additional arguments to the thread constructor.
  • Backwards-compatibility overloads added for timed_lock and timed_wait functions to allow use of xtime for timeouts.
Xpressive
  • skip() for specifying which parts of the input sequence to ignore when matching it against a regex.
  • regex_replace() accepts formatter objects and formatter expressions in addition to format strings.
  • Range-based regex_replace() algorithm.
  • Fix crash when semantic actions are placed in look-aheads, look-behinds or independent sub-expressions.