Boost
Releases
arrow_drop_down
Prior Release (1.34.0)
April 13, 2013
Platform File SHA256 Hash
Unix boost_1_34_0.tar.bz2 455cb....5efd2
boost_1_34_0.tar.gz d7875....56c8d
Windows boost_1_34_0.zip 3f712....f03fb

Version 1.34.0

May 12th, 2007 12:00 GMT

Documentation

New Libraries

  • Foreach Library:
    • BOOST_FOREACH macro for easily iterating over the elements of a sequence, from Eric Niebler.
  • Statechart Library:
    • Arbitrarily complex finite state machines can be implemented in easily readable and maintainable C++ code, from Andreas Huber.
  • TR1 Library:
    • An implementation of the C++ Technical Report on Standard Library Extensions, from John Maddock. This library does not itself implement the TR1 components, rather it's a thin wrapper that will include your standard library's TR1 implementation (if it has one), otherwise it will include the Boost Library equivalents, and import them into namespace std::tr1. Highlights include: Reference Wrappers, Smart Pointers, result_of, Function Object Binders, Polymorphic function wrappers, Type Traits, Random Number Generators and Distributions, Tuples, Fixed Size Array, Hash Function Objects, Regular Expressions, and Complex Number Additional Algorithms.
  • Typeof Library:
    • Typeof operator emulation, from Arkadiy Vertleyb and Peder Holt.
  • Xpressive Library:
    • Regular expressions that can be written as strings or as expression templates, and that can refer to each other and themselves recursively with the power of context-free grammars, from Eric Niebler.

Updated Libraries

  • Assign Library:
    • Support for ptr_map<key,T> via the new function ptr_map_insert()
    • Support for initialization of Pointer Containers when the containers hold pointers to an abstract base class.
  • Date_time library:
    • Support for new US/Canada timezone rules and other bug fixes. See Change History for details.
  • Filesystem Library: Major upgrade in preparation for submission to the C++ Standards Committee for TR2. Changes include:
    • Internationalization, provided by class templates basic_path, basic_filesystem_error, basic_directory_iterator, and basic_directory_entry.
    • Simplification of the path interface by eliminating special constructors to identify native formats.
    • Rationalization of predicate function design, including the addition of several new functions.
    • Clearer specification by reference to POSIX, the ISO/IEEE Single Unix Standard, with provisions for Windows and other operating systems.
    • Preservation of existing user code whenever possible.
    • More efficient directory iteration.
    • Addition of a recursive directory iterator.
  • Function Library: Boost.Function now implements a small buffer optimization, which can drastically improve the performance when copying or constructing Boost.Function objects storing small function objects. For instance, bind(&X:foo, &x, _1, _2) requires no heap allocation when placed into a Boost.Function object.
  • Functional/Hash Library:
    • Use declarations for standard classes, so that the library doesn't need to include all of their headers
    • Deprecated the <boost/functional/hash/*.hpp> headers.
    • Add support for the BOOST_HASH_NO_EXTENSIONS macro, which disables the extensions to TR1
    • Minor improvements to the hash functions for floating point numbers.
  • Graph Library:
  • MultiArray Library: Boost.MultiArray now by default provides range-checking for operator[]. Range checking can be disabled by defining the macro BOOST_DISABLE_ASSERTS before including multi_array.hpp. A bug in multi_array::resize() related to storage orders was fixed.
  • Multi-index Containers Library:
  • Optional Library:
    • boost::none_t and boost::none now added to Optional's documentation
    • Relational operators now directly support arguments of type 'T' and 'none_t'
    • operator->() now also works with reference types.
    • Helper functions make_optional(val), make_optional(cond,val) and get_optional_value_or(opt,alternative_value) added.
    • Constructor taking a boolean condition (as well as a value) added.
    • Member function get_value_or(alternative_value) added.
    • Incompatbility bug with mpl::apply<> fixed.
    • Converting assignment bug with uninitialized lvalues fixed.
  • Parameter Library:
    • Every ArgumentPack is now a valid MPL Forward Sequence.
    • Support for unnamed arguments (those whose keyword is deduced from their types) is added.
    • Support for named and unnamed template arguments is added.
    • New overload generation macros solve the forwarding problem directly.
    • See also the Python library changes, below.
  • Pointer Container Library:
    • Support for serialization via Boost.Serialization.
    • Exceptions can be disabled by defining the macro BOOST_PTR_CONTAINER_NO_EXCEPTIONS before including any header. This macro is defined by default if BOOST_NO_EXCEPTIONS is defined.
    • Additional std::auto_ptr<T> overloads added s.t. one can also pass std::auto_ptr<T> instead of only T* arguments to member functions.
    • transfer() now has weaker requirements s.t. one can transfer objects from ptr_container<Derived> to ptr_container<Base>,
  • Python Library:
    • Boost.Python now automatically appends C++ signatures to docstrings. The new docstring_options.hpp header is available to control the content of docstrings.
    • stl_input_iterator, for turning a Python iterable object into an STL input iterator, from Eric Niebler.
    • Support for void* conversions is added.
    • Integrated support for wrapping C++ functions built with the parameter library; keyword names are automatically known to docsstrings.
    • Enhancements to the API for better embedding support (boost::python::import(), boost::python::exec(), and boost::python::exec_file()).
  • Signals Library: More improvements to signal invocation performance from Robert Zeh.
  • Smart Pointers Library:
  • String Algorithm Library:
    • lexicographical_compare
    • join
    • New comparison predicates is_less, is_not_greater.
    • Negative indexes support (like Perl) in various algorihtms (*_head/tail, *_nth).
  • Wave Library:
    • Wave now correctly recognizes pp-number tokens as mandated by the C++ Standard, which are converted to C++ tokens right before they are returned from the library.
    • Several new preprocessing hooks have been added. For a complete description please refer to the related documentation page: The Context Policy.
    • Shared library (dll) support has been added for the generated Wave libraries.
    • The overall error handling has been improved. It is now possible to recover and continue after an error or a warning was issued.
    • Support for optional comment and/or full whitespace preservation in the generated output stream has been added.
    • The Wave library now performs automatic include guard detection to avoid accessing header files more than once, if appropriate.
    • Full interactive mode has been added to the Wave tool. Now the Wave tool can be used just like Python or Perl for instance to interactively try out your BOOST_PP macros. Additionally it is now possible to load and save the current state of an interactive session (macro tables et.al.).
    • The overall performance has been improved by upto 40-60%, depending on the concrete files to process.
    • Support for new pragmas has been added allowing to control certain library features from inside the preprocessed sources (partial output redirection, control of generated whitespace and #line directives).
    • Optional support for #pragma message "..." has been added.
    • This version also includes a number of bug fixes and usage improvements. For a complete list of changes, see the libraries change log.

Supported Compilers

Boost is tested on a wide range of compilers and platforms. Since Boost libraries rely on modern C++ features not available in all compilers, not all Boost libraries will work with every compiler. The following compilers and platforms have been extensively tested with Boost, although many other compilers and platforms will work as well. For more information, see the regression test results.

  • Apple GCC 4.0.1 on Mac OS X.
  • Borland C++ 5.8.2 on Windows.
  • GNU C++
    • 3.2.x., 3.3.x, 3.4.x, 4.0.x, 4.1.x on Linux
    • 4.1.x on Solaris
    • 3.4.x on Windows
  • HP aC++ A.06.14.
  • Intel C++ 9.1 on Windows, 9.0 on Linux.
  • Metrowerks CodeWarrior 9.4 on Windows.
  • Microsoft Visual C++ 6.0 (sp5, with and without STLport), 7.0, 7.1, 8.0. Note: Boost does not support the non-standard "Safe" C++ Library shipping with Visual C++ 8.0, which may result in many spurious warnings from Boost headers and other standards-conforming C++ code. To suppress these warnings, define the macro _SCL_SECURE_NO_DEPRECATE.
  • Sun Studio 11 on Solaris.

Acknowledgements

Thomas Witt managed this release.

A great number of people contributed their time and expertise to make this release possible. Special thanks go to Vladimir Prus for making Boost.Build version 2 a reality, David Abrahams for authoring a new getting started guide and Greg D. for answering countless questions.

Contributors

Daniel James
Daniel James
Contributor
John Maddock
John Maddock
Contributor
Hartmut Kaiser
Hartmut Kaiser
Contributor
Dave Abrahams
Dave Abrahams
Contributor
Douglas Gregor
Douglas Gregor
Contributor
nobody
Contributor
Vladimir Prus
Vladimir Prus
Contributor
Joaquin M. López Muñoz
Joaquin M. López Muñoz
Contributor
Robert Ramey
Robert Ramey
Contributor
Peter Dimov
Peter Dimov
Contributor
Gennadiy Rozental
Gennadiy Rozental
Contributor
Beman Dawes
Beman Dawes
Contributor
Rene Rivera
Rene Rivera
Contributor
Thorsten Jørgen Ottosen
Thorsten Jørgen Ottosen
Contributor
Jeff Garland
Jeff Garland
Contributor
Michael Stevens
Michael Stevens
Contributor
Pavol Droba
Contributor
Daniel Wallin
Contributor
Gennaro Prota
Contributor
Tobias Schwinger
Tobias Schwinger
Contributor
Roland Schwarz
Roland Schwarz
Contributor
Ronald Garcia
Ronald Garcia
Contributor
Ralf W. Grosse-Kunstleve
Contributor
Andreas Huber
Contributor
Aleksey Gurtovoy
Contributor
Jeremiah Willcock
Jeremiah Willcock
Contributor
Fernando Cacciola
Fernando Cacciola
Contributor
Jeremy Siek
Jeremy Siek
Contributor
Joel de Guzman
Joel de Guzman
Contributor
Anthony Williams
Contributor
Alisdair Meredith
Alisdair Meredith
Contributor
Markus Schöpflin
Contributor
Jonathan Turkanis
Jonathan Turkanis
Contributor
Daryle Walker
Daryle Walker
Contributor
Aaron Windsor
Aaron Windsor
Contributor
Stefan Seefeld
Stefan Seefeld
Contributor
Eric Niebler
Eric Niebler
Contributor
Nicola Musatti
Nicola Musatti
Contributor
Guillaume Melquiond
Guillaume Melquiond
Contributor
João Abecasis
João Abecasis
Contributor
Stefan Slapeta
Contributor
Dan Marsden
Dan Marsden
Contributor
Paul Mensonides
Paul Mensonides
Contributor
Martin Wille
Contributor
Jaakko Järvi
Contributor
Thomas Witt
Thomas Witt
Contributor
Jürgen Hunold
Jürgen Hunold
Contributor
Gottfried Ganßauge
Contributor
Alexander Nasonov
Alexander Nasonov
Contributor
Victor A. Wagner Jr.
Contributor
Larry Joe Evans
Contributor
Eric Friedman
Contributor
Jim Douglas
Jim Douglas
Contributor
Hervé Brönnimann
Hervé Brönnimann
Contributor
Caleb Epstein
Contributor
Marshall Clow
Marshall Clow
Contributor
Peder Holt
Peder Holt
Contributor