What's new in 1.45.0

  • Performance improvements

    Fixed vector reallocation slowdown when many active deadline_timer objects, improving timer scalability.

  • Dependencies

    Added 8 new dependencies across 5 libraries and removed one deprecated Boost.System dependency.

  • Security & reliability

    Fixed numerous bugs including timer misfires, const‑correctness, and platform‑specific failures, enhancing overall stability.

  • Developer experience

    Introduced BOOST_NO_VARIADIC_MACROS and BOOST_NO_NUMERIC_LIMITS_LOWEST macros and added move‑semantic support for interprocess objects.

Release notes version 1.45.0

Version 1.45.0

November 19th, 2010 16:00 GMT

Documentation

Updated Libraries

  • Asio:
    • Fixed a problem on kqueue-based platforms where a deadline_timer may never fire if the io_service is running in a background thread (#4568).
    • Fixed a const-correctness issue that prevented valid uses of has_service<> from compiling (#4638).
    • Fixed MinGW cross-compilation (#4491).
    • Removed dependency on deprecated Boost.System functions (#4672).
    • Ensured close()/closesocket() failures are correctly propagated (#4573).
    • Added a check for errors returned by InitializeCriticalSectionAndSpinCount (#4574).
    • Added support for hardware flow control on QNX (#4625).
    • Always use pselect() on HP-UX, if it is available (#4578).
    • Ensured handler arguments are passed as lvalues (#4744).
    • Fixed Windows build when thread support is disabled (#4680).
    • Fixed a Windows-specific problem where deadline_timer objects with expiry times set more than 5 minutes in the future may never expire (#4745).
    • Fixed the resolver backend on BSD platforms so that an empty service name resolves to port number 0, as per the documentation (#4690).
    • Fixed read operations so that they do not accept buffer sequences of type const_buffers_1 (#4746).
    • Redefined Protocol and id to avoid clashing with Objective-C++ keywords (#4191).
    • Fixed a vector reallocation performance issue that can occur when there are many active deadline_timer objects (#4780).
    • Fixed the kqueue backend so that it compiles on NetBSD (#4662).
    • Fixed the socket io_control() implementation on 64-bit Mac OS X and BSD platforms (#4782).
    • Fixed a Windows-specific problem where failures from accept() are incorrectly treated as successes (#4859).
    • Deprecated the separate compilation header <boost/asio/impl/src.cpp> in favour of <boost/asio/impl/src.hpp> (#4560).
  • Config:
    • Added new defect macros, BOOST_NO_VARIADIC_MACROS and BOOST_NO_NUMERIC_LIMITS_LOWEST.
    • Minor fixes (#4670, #4563, #4474, #4508).
  • Flyweight:
    • Fixed a hanging problem with intermodule_holder in Win32 platforms related to a Boost.Interprocess issue described at ticket #4606.
    • Removed an internal assertion incompatible with program termination via std::exit.
  • Foreach:
    • Fix ambiguitiy by making auto_any constructor explicit.
  • Fusion:
    • Added BOOST_FUSION_ADAPT_ADT, BOOST_FUSION_ADAPT_TPL_ADT, BOOST_FUSION_ADAPT_ASSOC_ADT and BOOST_FUSION_ADAPT_ASSOC_TPL_ADT.
  • Graph:
    • Added Stoer-Wagner min-cut algorithm contributed by Daniel Trebbien.
    • Added implicit graph (implicit_graph) and A* (astar_maze) examples contributed by W. P. McNeill.
    • Added bundled property support for graph properties.
    • Fixed bugs #4556, #4622, #4631, #4715, #4753, #4758 and #4793 plus others not in Trac.
    • Fixed documentation bugs #4731 and #4737.
  • Interprocess:
  • Math:
    • Added inverse gamma distribution and inverse chi_square and scaled inverse chi_square.
    • Added warnings about potential ambiguity with std random library in distribution and function names.
    • Editorial revision of documentation, and added FAQ.
  • Meta State Machine:
  • MultiArray:
    • Fixes for bugs #3581, #3820, #3989, #4032, plus other bugs not in Trac.
    • Added new examples and test cases.
  • Proto:
    • Knock down value of proto::N, fixes bug #4602,
    • Support non-rtti compilers
    • Fix bug with proto::matches, array types and the wildcard pattern.
    • Make Proto work on MSVC with the /clr option
    • Add const-qualified overloads of proto::eval
  • Spirit: Spirit V2.4.1, see the 'What's New' section for details.
  • TypeTraits:
    • Added new traits add_rvalue_reference, add_lvalue_reference and common_type.
    • Minor fixes to is_signed, is_unsigned and is_virtual_base_of.
  • uBLAS:
    • Tickets closed:
    • Mixed types operation are possible and new tests added (like matrix<complex>+matrix<double>),
    • New features:
      • a new size<> operator is available. For example size<1>(A+B) give the number of rows of the sum of matrices A and B,
  • Unordered:
    • Fix inserting from iterators which return by copy from operator* in boost::unordered_map and boost::unordered_set.
  • Wave:
  • Xpressive:
    • xpressive::as handles wide-char sub_match objects, fixes bug #4496

Updated Tools

  • Boostbook:
    • Fix syntax highlighter for comments at the end of code blocks.
  • Quickbook:
    • Fix command line macros.
    • Nested code snippets.
    • Nested documentation info comments.
    • Revert xml escaping document info, it broke some documentation files (will now be in 1.6).
    • Some other small tweaks. See the change log for more info.

Compilers Tested

Boost's primary test compilers are:

  • Linux:
    • GCC: 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.4.5, 4.5.1.
    • GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.0.
    • Intel: 10.1, 11.0, 11.1
    • Pathscale: 3.2.
  • OS X:
    • GCC: 4.0.1, 4.2.1, 4.4
    • GCC, C++0x mode: 4.4.
    • Intel: 11.1
  • Windows:
    • Visual C++: 7.1, 8.0, 9.0 and 10.0.
    • GCC, mingw: 4.3.3.
  • FreeBSD:
    • GCC: 4.2.1, 32 bit.
    • GCC: 4.2.1, 64 bit.

Boost's additional test compilers include:

  • Linux:
    • GCC: 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.4.5, 4.5.0, 4.6.0 (dev version).
    • GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.0.
    • Intel: 10.1, 11.0, 11.1.
    • pgCC 10.1.
    • PathScale: 3.2.
    • Clang from subversion.
  • OS X:
    • Intel C++ Compiler: 10.1, 11.0, 11.1.
    • GCC: 4.0.1, 4.2.1, 4.4.4
    • GCC, C++0x mode: 4.4.4
    • Clang from subversion.
  • Windows:
    • Borland: 5.9.3, 6.1.3 (2009), 6.2.1 (2010), 6.3.0
    • GCC, mingw: 4.3.3, 4.4.5, 4.5.1
    • GCC, mingw, C++0x mode: 4.5.1
    • Visual C++: 7.1, 8.0, 9.0, 10.0
  • AIX:
    • IBM XL C/C++ Enterprise Edition, V11.1.0.0.
  • FreeBSD:
    • GCC 4.2.1, 64 bit.
  • Solaris:
    • Sun C++: 5.10.

Acknowledgements

Beman Dawes, Eric Niebler, Rene Rivera, Daniel James and Vladimir Prus managed this release.

All Contributors


Join the Boost Developers Mailing List

Get the latest on releases, features, security patches, fixes and all major announcements.
Want to fix bugs, review code, maintain libraries, and propose new features?
Read our contributors guide and join the Boost community.

Boost is publicly released three times a year in April, August, and December. Each release has updates to existing libraries, and any new libraries that have passed the rigorous acceptance process.

Decorative illustration