Boost
Releases
arrow_drop_down
Prior Release (1.43.0)
April 13, 2013
Dependencies
There were 10 dependencies added (in 6 libraries) and 1 dependency removed (in 1 library) this release.
Platform File SHA256 Hash
Unix boost_1_43_0.tar.bz2 344f1....06120
boost_1_43_0.tar.gz 80aab....714e5
Windows boost_1_43_0.7z 6ce2e....e7830
boost_1_43_0.zip d92bd....5143b

Version 1.43.0

May 6th, 2010 12:00 GMT

Documentation

New Libraries

  • Functional/factory:
    • Function objects for dynamic and by-value construction, from Tobias Schwinger.
  • Functional/forward:
    • Function object adapters to address the forwarding problem, from Tobias Schwinger.

Major Updates

  • Range: Boost.Range has undergone extensive updates that it include all of the features from the recently reviewed Boost.RangeEx, from Neil Groves.
    • Range-based version of the full STL iterator based algorithms.
    • Range adaptors which can be combined with range-based algorithms for unprecedented expressiveness and efficiency.
    • New functions: irange, istream_range, join, combine.

Updated Libraries

  • Accumulators:
    • Avoid premature template evaluation in operator overload return types.
  • Array:
    • Added support for SunCC compiler.
    • Added 'fill' member function.
    • Changed exception code to use boost::throw_exception.
  • Asio:
    • Improved performance.
    • Reduced compile times.
    • Reduced the size of generated code.
    • Extended the guarantee that background threads don't call user code to all asynchronous operations (#3923).
    • Changed to use edge-triggered epoll on Linux.
    • Changed to use timerfd for dispatching timers on Linux, when available.
    • Changed to use one-shot notifications with kqueue on Mac OS X and BSD platforms.
    • Added a bitmask type ip::resolver_query_base::flags as per the TR2 proposal. This type prevents implicit conversion from int to flags, allowing the compiler to catch cases where users incorrectly pass a numeric port number as the service name.
    • Added #define NOMINMAX for all Windows compilers. Users can define BOOST_ASIO_NO_NOMINMAX to suppress this definition (#3901).
    • Fixed a bug where 0-byte asynchronous reads were incorrectly passing an error::eof result to the completion handler (#4023).
    • Changed the io_control() member functions to always call ioctl on the underlying descriptor when modifying blocking mode (#3307).
    • Changed the resolver implementation to longer require the typedefs InternetProtocol::resolver_query and InternetProtocol::resolver_iterator, as neither typedef is part of the documented InternetProtocol requirements. The corresponding typedefs in the ip::tcp, ip::udp and ip::icmp classes have been deprecated.
    • Fixed out-of-band handling for reactors not based on select().
    • Added new BOOST_ASIO_DISABLE_THREADS macro that allows Asio's threading support to be independently disabled.
    • Minor documentation improvements.
  • Fusion:
    • Added new macros for adapting or defining custom types. See the Changelog for details.
  • Iostreams:
  • Multi-index Containers:
  • Proto:
    • Minor change in behavior: non-const expression self-assignment creates an assign node. See Proto's Release Notes for details.
    • Minor change to recommended expression extension mechanism: use BOOST_PROTO_EXTENDS_USING_ASSIGN(). See Proto's Release Notes for details.
    • Fix error in invocation of callable monomorphic function objects in Proto transforms.
    • Fix misc const correctness issues, work around fusion bug.
    • Add non-const function call overloads to proto terminals.
    • Add a default constructor to proto::literal<>.
    • Do not use deprecated config macros.
    • Add proto::assert_matches() function and friends to <boost/proto/debug.hpp>.
    • functional::make_expr<> and functional::unpack_expr<> return const-qualified rvalues.
    • Add documentation for Expr and Domain concepts.
  • Random:
    • Put the implementation of random_device in a compiled lib, and added Windows support.
    • Rewrote the documentation using Quickbook/Doxygen/Boostbook and brought it up to date.
  • Spirit: Spirit V2.3, see the 'What's New' section for details.
  • Thread:
    • Uses boost::throw_exception for all exceptions except thread_interrupted
    • Added fix for issue 2742
    • Optimizations to mutex locks and call_once
  • Unordered:
    • erase_return_void is now quick_erase (#3966).
  • Uuid:
    • Split generators into separate files.
    • Fixed bug in basic_random_generator (#3971).
    • Updated documentation.
  • Wave: See the Changelog for details.
  • Xpressive:
    • Add missing include to <boost/xpressive/regex_error.hpp>.

Build System

  • When cross-compiling to GNU targets, static libraries are properly created. Previously, using such libraries resulted in Archive has no index error.
  • The naming of DLL and import libraries with gcc compiler on Windows, both mingw and cygwin, now matches default conventions of those environments. Previously, the naming scheme was the same as for other Windows compilers.

Updated Tools

  • Quickbook:
    • Unicode escape characters.
    • Support the UTF-8 byte order mark.
    • Disallow [ in simple markup. Fixes some errors with mismatched punctuation.
    • Add a command line flag (-D) to define macros at the command line.
    • Improved post-processor output.
    • Check that [section] and [endsect] tags are balanced in templates.

Compilers Tested

Boost's primary test compilers are:

  • OS X:
    • GCC 4.0.1 on Intel Leopard.
  • Linux:
    • GCC 4.4.1 on Ubuntu Linux.
    • GCC 4.4 on 64-bit Suse.
  • Windows:
    • Visual C++ 8.0 SP1 and 9.0 SP1 on Windows XP.
    • GCC 4.3.3, using Mingw
  • FreeBSD:
    • GCC 4.2.1, 32 and 64 bit.

Boost's additional test compilers include:

  • Linux:
    • Intel 10.1, 11.1 on 32 bit Red Hat Enterprise Linux.
    • Intel 10.1, 11.0, 11.1 on 64 bit Red Hat Enterprise Linux.
    • GCC 3.4.6, 4.2.4, 4.3.4, 4.4.3 on Red Hat Enterprise Linux.
    • GCC 4.3.4, 4.4.3 with C++0x extensions on Red Hat Enterprise Linux.
    • QLogic PathScale(TM) Compiler Suite: Version 3.2 on Red Hat Enterprise Linux.
  • OS X:
    • Intel C++ Compiler 10.1, 11.0, 11.1 on Leopard.
    • GCC 4.0.1 on Intel Leopard.
    • Clang from subversion.
  • Windows:
    • Visual C++ 8,0, 9,0 on 32-bit XP.
    • Visual C++ 9.0 using STLport 5.2 on XP and Windows Mobile 5.0.
    • Visual C++ 10.0 on XP.
    • Visual C++ 10.0 on 64-bit Windows 7.
    • Borland/Codegear C++ 5.9.3, 6.1.3 (2009), 6.2.1 (2010).
    • Intel C++ 11.1, with a Visual C++ 9.0 backend, on Vista 32-bit.
    • GCC 4.3.3 on Mingw.
    • GCC 4.4.3 on Mingw, with and without C++0x extensions.
    • GCC 4.5 on Mingw.
  • AIX:
    • IBM XL C/C++ Enterprise Edition, V10.1.0.0, on AIX Version 5.3.0.40.
  • FreeBSD:
    • GCC 4.2.1 on FreeBSD 7.2, 64 bit.
    • GCC 4.2.1 on FreeBSD 8.0, 32 bit.
  • Solaris:
    • Sun C++ 5.10 on Solaris 5.10.

Acknowledgements

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

Contributors

Daniel James
Daniel James
Contributor
Hartmut Kaiser
Hartmut Kaiser
Contributor
Beman Dawes
Beman Dawes
Contributor
Joel de Guzman
Joel de Guzman
Contributor
Thorsten Jørgen Ottosen
Thorsten Jørgen Ottosen
Contributor
Neil Groves
Neil Groves
Contributor
Tobias Schwinger
Tobias Schwinger
Contributor
Steven Watanabe
Steven Watanabe
Contributor
John Maddock
John Maddock
Contributor
Eric Niebler
Eric Niebler
Contributor
Christopher Schmidt
Contributor
Troy D. Straszheim
Troy D. Straszheim
Contributor
Robert Ramey
Robert Ramey
Contributor
Jürgen Hunold
Jürgen Hunold
Contributor
Christopher Kohlhoff
Christopher Kohlhoff
Contributor
Jens Maurer
Jens Maurer
Contributor
Jeremiah Willcock
Jeremiah Willcock
Contributor
Niels Dekker
Contributor
Michael A. Jackson
Michael A. Jackson
Contributor
Marshall Clow
Marshall Clow
Contributor
Vladimir Prus
Vladimir Prus
Contributor
Joaquin M. López Muñoz
Joaquin M. López Muñoz
Contributor
Andreas Huber
Contributor
Frank Mori Hess
Frank Mori Hess
Contributor
Gunter Winkler
Gunter Winkler
Contributor
Aleksey Gurtovoy
Contributor
Ralf W. Grosse-Kunstleve
Contributor
Andy Tompkins
Andy Tompkins
Contributor
Jan Gaspar
Contributor
Christian Henning
Christian Henning
Contributor
Douglas Gregor
Douglas Gregor
Contributor
Emil Dotchevski
Emil Dotchevski
Contributor
Andrey Semashev
Andrey Semashev
Contributor
Markus Schöpflin
Contributor
Matthias Troyer
Matthias Troyer
Contributor
Ben Hanson
Contributor
Dave Abrahams
Dave Abrahams
Contributor
Caleb Epstein
Contributor
Peter Dimov
Peter Dimov
Contributor
Nicola Musatti
Nicola Musatti
Contributor
K. Noel Belcourt
K. Noel Belcourt
Contributor
Anthony Williams
Contributor