Boost
Releases
arrow_drop_down
Prior Release (1.38.0)
Platform File SHA256 Hash
Unix boost_1_38_0.tar.bz2 3ee3a....16066
boost_1_38_0.tar.gz ff8c3....843af
Windows boost_1_38_0.7z b2eee....7ad57
boost_1_38_0.zip 3897f....ff4e7

Version 1.38.0

February 8th, 2009 12:00 GMT

Documentation

New Libraries

  • Flyweight:
    • Design pattern to manage large quantities of highly redundant objects, from Joaquín M López Muñoz.
  • ScopeExit:
    • Execute arbitrary code at scope exit, from Alexander Nasonov.
  • Swap:
    • Enhanced generic swap function, from Joseph Gauterin.

Updated Libraries

  • Accumulators:
    • Add rolling_sum, rolling_count and rolling_mean accumulators.
  • Any:
    • Use a by-value argument for operator= (#2311).
  • Asio:
    • Improved compatibility with some Windows firewall software.
    • Ensured arguments to windows::overlapped_ptr::complete() are correctly passed to the completion handler (#2614).
    • Fixed a link problem and multicast failure on QNX (#2504, #2530).
    • Fixed a compile error in SSL support on MinGW / g++ 3.4.5.
    • Drop back to using a pipe for notification if eventfd is not available at runtime on Linux (#2683).
    • Various minor bug and documentation fixes (#2534, #2541, #2607, #2617, #2619)
  • Config:
    • Add new macros BOOST_NO_STD_UNORDERED and BOOST_NO_INITIALIZER_LISTS.
    • Added Codegear compiler support.
    • Added Dragonfly to the BSD family of configs.
    • Updated MSVC's binary ABI settings to match compiler default when doing 64-bit builds.
    • Recognise latest compilers from MS and Intel.
  • Date_Time:
    • Added support for formatting and reading time durations longer than 24 hours with new formatter: %0.
    • Removed the testfrmwk.hpp file from the public include directory.
    • Fixed several bugs and compile errors.
    • For full details see the change history
  • Exception:
  • Filesystem:
  • Graph:
    • Added a new algorithms for Travelling Salesman Problem approximation (metric_tsp_approx) and resource-constrained Shortest Paths (r_c_shortest_paths).
    • Support for named vertices in adjacency_list.
    • A number of bugfixes ( #416, #1622, #1700, #2209, #2392, #2460, and #2550)
  • Hash:
    • boost/functional/detail/container_fwd.hpp has been moved to boost/detail/container_fwd.hpp. The current location is deprecated.
    • For more detail, see the library changelog.
  • Interprocess:
    • Updated documentation to show rvalue-references functions instead of emulation functions.
    • More non-copyable classes are now movable.
    • Move-constructor and assignments now leave moved object in default-constructed state instead of just swapping contents.
    • Several bugfixes (#2391, #2431, #1390, #2570, #2528).
  • Intrusive:
    • 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.
  • Lexical Cast:
    • Changed to work without RTTI when BOOST_NO_TYPEID is defined (#1220).
  • Math:
    • Added Johan Råde's optimised floating point classification routines.
    • Fixed code so that it compiles in GCC's -pedantic mode (bug report #1451).
  • Multi-index Containers: Some redundant type definitions have been deprecated. Consult the library release notes for further information.
  • Proto:
    • Fix problem with SFINAE of binary operators (Bug 2407).
    • Fix proto::call transform for callable transforms with >3 arguments.
    • result_of::value changed behavior for array-by-value terminals.
    • unpack_expr requires only Forward Sequences rather than Random Access Sequences.
    • Deprecate legacy undocumented BOOST_PROTO_DEFINE_(VARARG_)FUNCTION_TEMPLATE macros.
    • Add BOOST_PROTO_REPEAT and BOOST_PROTO_LOCAL_ITERATE macros to help with repetitive code generation
    • Support for nullary expressions with tag types other than proto::tag::terminal
    • Allow 0- and 1-argument variants of proto::or_ and proto::and_
  • Regex:
    • Breaking change: empty expressions, and empty alternatives are now allowed when using the Perl regular expression syntax. This change has been added for Perl compatibility, when the new syntax_option_type no_empty_expressions is set then the old behaviour is preserved and empty expressions are prohibited. This is issue #1081.
    • Added support for Perl style ${n} expressions in format strings (issue #2556).
    • Added support for accessing the location of sub-expressions within the regular expression string (issue #2269).
    • Fixed compiler compatibility issues #2244, #2514, and #2458.
  • Thread:
    • No longer catches unhandled exceptions in threads as this debuggers couldn't identify the cause of unhandled exceptions in threads. An unhandled exception will still cause the application to terminate.
  • TR1:
    • Added support for the TR1 math functions and the unordered containers.
  • Type Traits:
    • Added support for Codegear intrinsics.
    • Minor tweaks to warning suppression and alignment_of code.
  • Unordered:
    • Use boost::swap.
    • Use a larger prime number list for selecting the number of buckets.
    • Use aligned storage to store the types.
    • Add support for C++0x initializer lists where they're available.
    • For more detail, see the library changelog.
  • Xpressive:
    • basic_regex gets nested syntax_option_flags and value_type typedef, for compatibility with std::basic_regex
    • Ported to Proto v4; Proto v2 at boost/xpressive/proto has been removed.
    • regex_error inherits from boost::exception

Other Changes

  • Experimental support for building Boost with CMake has been introduced in this version. For more details see the wiki, Discussion is taking place on the Boost-cmake mailing list.
  • Fixed subversion properties for several files. Most notably, unix shell scripts should always have unix line endings, even in the windows packages.

Compilers Tested

Boost's primary test compilers are:

  • OS X:
    • GCC 4.0.1 on Intel OS X 10.4.10, 10.5.2
    • GCC 4.0.1 on PowerPC OS X 10.4.9
  • Linux:
    • GCC 4.3.2 on Ubuntu Linux.
    • GCC 4.3.3 on Debian "unstable".
  • HP-UX:
    • GCC 4.2.1 on HP-UX 64-bit.
    • HP C/aC++ B3910B A.06.17 on HP-UX 64-bit.
  • Windows:
    • Visual C++ 7.1 SP1, 8.0 SP1 and 9.0 SP1 on Windows XP.

Boost's additional test compilers include:

  • Linux:
    • GCC 4.1.1, 4.2.1 on 64-bit Red Hat Enterprise Linux
    • GCC 4.1.2 on 64-bit Redhat Server 5.1
    • GCC 3.4.3, GCC 4.0.1, GCC 4.2.4 and GCC 4.3.2 on Red Hat Enterprise Linux
    • GCC 4.3.2 with C++0x extensions
    • GCC 4.2.1 on OpenSuSE Linux
    • pgCC 8.0-0a 64-bit target on Red Hat Enterprise Linux
    • QLogic PathScale(TM) Compiler Suite: Version 3.1 on Red Hat Enterprise Linux
  • OS X:
    • Intel 9.1, 10.0 on OS X 10.4.10
    • Intel 10.1, 11.0 on OS X 10.5.2
  • Windows:
    • Visual C++ 9.0 on Vista EE 64-bit.
    • Visual C++ 9.0 express on Vista 32-bit.
    • Visual C++ 9.0 on XP 32-bit.
    • Visual C++ 8.0, using STLport, on XP and Windows Mobile 5.0
    • Visual C++ 7.1, using STLport, on XP
    • Borland 5.9.3
    • Borland 6.1.0
    • Intel C++ 11.0, with a Visual C++ 9.0 backend, on XP 32-bit.
    • Intel C++ 11.0, with a Visual C++ 9.0 backend, on Vista 64-bit.
    • Comeau 4.3.10.1 beta 2, with a Visual C++ 9.0 backend.
    • GCC 3.4.4, on Cygwin
  • AIX:
    • IBM XL C/C++ Enterprise Edition for AIX, V10.1.0.0, on AIX Version 5.3.0.40
  • FreeBSD:
    • GCC 4.2.1 on FreeBSD 7.
  • NetBSD:
    • GCC 4.1.2 on NetBSD 4.0/i386 and NetBSD 4.0/amd64.
  • QNX:
    • QNX Software Development Platform 6.4.0 x86
  • Solaris:
    • Sun C++ 5.7, 5.8, 5.9 on Solaris 5.10
    • GCC 3.4.6 on Solaris 5.10

Acknowledgements

Beman Dawes, Eric Niebler, Rene Rivera, and Daniel James managed this release. Thanks to Vicente Botet for helping compile these release notes.

Dependencies

There were 8 dependencies added (in 6 libraries) and 2 dependencies removed (in 2 libraries) this release.

Contributors

Daniel James
Daniel James
Contributor
Beman Dawes
Beman Dawes
Contributor
Troy D. Straszheim
Troy D. Straszheim
Contributor
Niels Dekker
Contributor
Joseph Gauterin
Contributor
Eric Niebler
Eric Niebler
Contributor
John Maddock
John Maddock
Contributor
Ion Gaztañaga
Ion Gaztañaga
Contributor
Boris Gubenko
Contributor
nobody
Contributor
Michael A. Jackson
Michael A. Jackson
Contributor
Emil Dotchevski
Emil Dotchevski
Contributor
Andrey Semashev
Andrey Semashev
Contributor
Hartmut Kaiser
Hartmut Kaiser
Contributor
Andreas Huber
Contributor
Dave Abrahams
Dave Abrahams
Contributor
Andrew Sutton
Andrew Sutton
Contributor
Nicola Musatti
Nicola Musatti
Contributor
Rene Rivera
Rene Rivera
Contributor
Steven Watanabe
Steven Watanabe
Contributor
Jürgen Hunold
Jürgen Hunold
Contributor
Robert Ramey
Robert Ramey
Contributor
Marshall Clow
Marshall Clow
Contributor
Joaquin M. López Muñoz
Joaquin M. López Muñoz
Contributor
Jeremiah Willcock
Jeremiah Willcock
Contributor
Joel de Guzman
Joel de Guzman
Contributor
Christopher Kohlhoff
Christopher Kohlhoff
Contributor
Alexander Nasonov
Alexander Nasonov
Contributor
Jan Gaspar
Contributor
Anthony Williams
Contributor
Stephan Diederich
Stephan Diederich
Contributor
Matthias Troyer
Matthias Troyer
Contributor
Gennaro Prota
Contributor
Markus Schöpflin
Contributor