Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Version 1.37.0

Version 1.37.0

November 3rd, 2008 12:00 GMT



New Libraries

  • Proto:
    • Expression template library and compiler construction toolkit for domain-specific embedded languages, from Eric Niebler.

Updated Libraries

  • Asio:
    • Enhanced CompletionCondition concept with the signature size_t CompletionCondition(error_code ec, size_t total), where the return value indicates the maximum number of bytes to be transferred on the next read or write operation. (The old CompletionCondition signature is still supported for backwards compatibility).
    • New windows::overlapped_ptr class to allow arbitrary overlapped I/O functions (such as TransmitFile) to be used with Asio.
    • On recent versions of Linux, an eventfd descriptor is now used (rather than a pipe) to interrupt a blocked select/epoll reactor.
    • Added const overloads of lowest_layer().
    • Synchronous read, write, accept and connect operations are now thread safe (meaning that it is now permitted to perform concurrent synchronous operations on an individual socket, if supported by the OS).
    • Reactor-based io_service implementations now use lazy initialisation to reduce the memory usage of an io_service object used only as a message queue.
  • Circular Buffer:
    • Added new methods is_linearized() and rotate(const_iterator).
    • Minor bug fixes and documentation updates.
  • Dynamic Bitset:
    • Constructor "do the right thing" dispatch, a la standard sequence containers (follows the proposed resolution of library issue 438, currently in the C++0x working paper).
    • Improvements to documentation, code examples and implementation.
  • Exception:
    • Support for non-RTTI builds.
    • Optimizations.
    • A new macro BOOST_THROW_EXCEPTION which can be used instead of boost::throw_exception when throwing, to automatically record information about the location of the throw in the exception object.
  • Hash:
  • Interprocess:
    • Added placement insertion (emplace(), emplace_back()...) methods to containers.
    • Containers can be used now in recursive types.
    • Minor bug fixes.
  • Intrusive:
    • 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.
    • Minor bug fixes.
  • Math.Special Functions: Improved accuracy and testing of the inverse hypergeometric functions.
  • Type Traits: Added better support for the Codegear compiler.
  • Unordered:
    • Rename overload of emplace with hint, to emplace_hint as specified in n2691.
    • Provide forwarding headers at <boost/unordered/unordered_map_fwd.hpp> and <boost/unordered/unordered_set_fwd.hpp>.
    • Move all of the implementation inside the boost/unordered directory.

Compilers Tested

Boost's primary test compilers are:

  • GCC 4.01 on Mac OS X 10.4.10 with both Intel and Power PC
  • GCC 4.2.4 on Ubuntu Linux 8.10
  • GCC 4.3.2 on Debian Sid
  • GCC 4.2.1 on HP-UX Integrity
  • HP C/aC++ B3910B A.06.17 on HP-UX 64-bit
  • Visual C++ 9.0 SP1, 8.0, and 7.1 SP1, all on Windows XP

Boost's additional test compilers include:

  • GCC 4.1.2 on NetBSD
  • HP aCC on OS: HP-UX B.11.31 U ia64 and HP-UX B.11.31 9000/800 RISC
  • IBM XL C/C++ Enterprise Edition for AIX, V10.1.0.0, on AIX Version
  • Intel 9.1, 10.0, and 10.1, on Mac OS X 10.4.10
  • Compaq C++ V7.1-006 for Compaq Tru64 Unix on an OSF1 V5.1 platform.
  • Sun C++ 5.7, 5.8, 5.9 and GCC 3.4.6 on Sun Solaris 5.10.
  • On Linux:
    • GCC 3.4.3, 4.0.1, 4.2.1, 4.2.4, 4.3.2.
    • GCC 4.3.2 with C++0x extensions.
    • GCC 4.1.1, 4.2.1 on 64 bit linux.
    • Intel C++ 8.1, 9.0, 9.1 and 10.0
    • QLogic PathScale(TM) Compiler Suite: Version 3.1
    • Sun Compiler 5.9, 5.10 with stdcxx
  • On Windows:
    • Several testers using Visual C++ 7.1, 8.0, 9.0 and 10.0
    • Visual C++ 7.1 with Apache C++ Standard Library 4.2.x branch.
    • Visual C++ 8.0 with STLport 5.1
    • Visual C++ 8.0 with STLport 5.1 cross-compiling for Windows Mobile 5.0 Pocket PC SDK (ARMV4I).
    • Intel 10.1, with Visual C++ 9 backend.
    • Borland 5.9.3 and 6.10.0
    • 64 bit Intel 10.1, with Visual C++ 9 backend.
    • 64 bit Visual C++ 9.0.
    • 64-bit Visual C++ 9.0 with Apache C++ Standard Library 4.2.x branch.
    • Comeau C++ beta 2, with Visual C++ 9 backend.


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