What's new in 1.33.0

  • New libraries

    five new libraries add streams, hash objects, named parameters, polymorphic containers, and a C99/C++ preprocessor.

  • Performance improvements

    graph algorithms and signals run faster; dijkstra now O(V log V) with relaxed heap.

  • Dependencies

    regex gains optional Unicode via ICU; Boost.Python now supports Embedded VC++ 4 and GCC‑3.3 on macOS.

  • Security & reliability

    serialization of variants and shared pointers hardened; any_cast now directly accesses held values.

  • Developer experience

    ref_list_of, cref_list_of, bind comparisons, front(), back(), operator[] and enhanced option parsing improve ergonomics.

Platform File SHA256 Hash
Unix
boost_1_33_0.tar.bz2
boost_1_33_0.tar.gz
Windows
boost_1_33_0.zip
Release notes version 1.33.0

Version 1.33.0

August 11th, 2005 12:00 GMT

New Libraries

  • Iostreams Library:
    • Framework for defining streams, stream buffers and i/o filters, from Jonathan Turkanis.
  • Functional/Hash Library:
    • A TR1 hash function object that can be extended to hash user defined types, from Daniel James.
  • Parameter Library:
    • Write functions that accept arguments by name: especially useful when a function has more than one argument with a useful default value, since named arguments can be passed in any order.
  • Pointer Container Library:
    • Containers for storing heap-allocated polymorphic objects to ease OO-programming, from Thorsten Ottosen.
  • Wave:
    • Standards conformant implementation of the mandated C99/C++ preprocessor functionality packed behind an easy to use iterator interface, from Hartmut Kaiser.

Updated Libraries

  • Any Library: any_cast has been enhanced to allow direct access to any's held value.
  • Assignment Library: Support for Pointer Container Library and new efficient functions ref_list_of() and cref_list_of() for generating anonymous ranges.
  • Bind Library: Bind expressions now support comparisons and negation. Example: bind(&X::name, _1) < bind(&X::name, _2).
  • Date-Time Library:
  • Graph Library: Introduced several new algorithms and improved existing algorithms:
  • Multi-index Containers Library:
  • Program Options Library:
    • Option descriptions are now printed with word wrapping.
    • Command line parser can bypass unregistered options, instread of throwing.
    • Removed support for "implicit" (optional) values.
    • New customization method 'command_line_parser::extra_style_parser'. Unlike 'additional_parser', allows the user to parse several tokens and return a vector of options, not just a single option.
    • Work with disabled exceptions.
  • Property Map Library: Introduced the dynamic properties class, which provides dynamically-typed access to a set of property maps.
  • Boost.Python:
    • Added support for docstrings on nonstatic properties.
    • We now export the client-provided docstrings for init<optional<> > and XXX_FUNCTION_OVERLOADS() for only the last overload.
    • Support for Embedded VC++ 4 and GCC-3.3 on MacOS added
    • Introduced better support for rvalue from-python conversions of shared_ptr.
    • Support for exposing vector<T*> with the indexing suite.
    • updated visual studio project build file.
    • Added search feature to the index page.
  • Random Number Library: Improved initialization for mersenne_twister, algorithm by Makoto Matsumoto and Takuji Nishimura, implemented for Boost by Jens Maurer.

    Note: All test vectors for mersenne_twisters constructed or seeded without parameters or with a single unsigned int parameter become invalid.

  • Range Library: Minor addition of convenience functions to iterator range like front(), back() and operator[]().
  • Regex Library:
    • Rewritten front end parser now supports (?imsx-imsx) constructs, plus lookbehind assertions and conditional expressions.
    • Thin wrapper classes improve integration with MFC/ATL code.
    • Full (optional) Unicode support via the ICU library. Refer to the regex history page for more information on these and other small changes.
  • Serialization Library:
    • DLL version.
    • Auto-linking.
    • Serialization of variants.
    • Improved serialization of shared pointers.
  • Signals Library: added slot blocking/unblocking, from Frantz Maerten. Huge improvements to signal invocation performance from Robert Zeh.

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 3.x on Mac OS X.
  • Borland C++ 5.6.4 on Windows.
  • GNU C++ 2.95.3 (with and without STLport), 3.2.x., 3.3.x, 3.4.x, 4.0.x on Windows, Linux and Solaris.
  • Intel C++ 8.1, 9.0 on Windows, Linux.
  • Metrowerks CodeWarrior 8.3, 9.4, 9.5 on Mac OS X and Windows.
  • Microsoft Visual C++ 6.0 (sp5, with and without STLport), 7.0, 7.1, 8.0 beta. Note: due to intermittent problems with Visual C++ 8.0 beta, and the presence of a variety of pre-release compiler builds, we are unable to guarantee compatibility until the final compiler is released.

Acknowledgements

[]Douglas Gregor managed this release.

A great number of people contributed their time and expertise to make this release possible. Special thanks go to Aleksey Gurtovoy and Misha Bergal, who managed to keep the regression testing system working throughout the release process; David Abrahams, Beman Dawes, Aleksey Gurtovoy, Rene Rivera and Jonathan Turkanis for greatly improving the quality of this release; Rene Rivera for the new Boost web page design; and Zoltan "cad" Juhasz for the new Boost logo.

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