The Boost web site provides free peer-reviewed portable C++ source libraries.
The emphasis is on libraries which work well with the C++ Standard Library.
The libraries are intended to be widely useful, and are
in regular use by thousands of programmers across a
broad spectrum of applications.
goal is to establish "existing practice" and provide reference implementations
so that Boost libraries are suitable for eventual standardization.
Boost libraries will be included in the
C++ Standards Committee's upcoming
C++ Standard Library Technical Report as a
step toward becoming part of a future C++ Standard.
Although Boost was begun by members of the C++ Standards Committee Library
Working Group, participation has expanded to include thousands
programmers from the C++ community at large.
If you are interested in participating in Boost, please join
our main developers mailing list. Discussions
are highly technical, and list members are encouraged to participate in formal
reviews of proposed libraries. There is also a
users mailing list,
project specific lists.
Both the main Boost developers list and the users list are also accessible as
January 26, 2004 - Version 1.31.0
A unified Boost Software License has been
developed and will gradually replace the individual licenses for most Boost libraries.
The new license offers better legal protection for both users and developers,
and should speed user's legal reviews of Boost libraries. Dave Abrahams led the
Boost effort to develop better licensing. The legal team was led by
Diane Cabell, Director, Clinical Programs,
Berkman Center for Internet & Society, Harvard Law School.
Devin Smith, attorney, Nixon
Peabody LLP, wrote the Boost License. Eva Chan, Harvard Law School,
contributed analysis of issues and drafts of various legal documents.
Please Note: Many of the Boost
libraries are still using earlier
licenses, though all conform to the Boost
License Requirements. After this
release we will begin an effort to
move toward uniform use of the new
Build and Installation
Started procedures ease download and
installation, from Rene Rivera and others.
Improved support for libraries requiring
compilation, from John Maddock and others.
inclusion of function template overloads, from Jaakko Järvi, Jeremiah
Willcock, and Andrew Lumsdaine. This is an important new technique
which exploits the SFINAE
Variant Library: Safe, generic,
stack-based discriminated union container, from Eric Friedman and Itay
Compose: This library has been
deprecated and will be removed in a future release. Use Bind or Lambda instead.
Date Time Library: A whole
host of bug fixes, new features, and documentation
improvements. See Date Time
Change History for details.
Filesystem Library: Several
added functions, including improved checking for directory and file name
Iterator Library: Major
version upgrade, with interface as proposed for the C++ library TR,
including an improved
iterator_adaptor design plus
several new components, from David Abrahams, Jeremy Siek, and
MultiArray: The multi_array class
template now provides an element-preserving resize operation as well as default
construction (see the reference
manual for more information).
- Python Library:
- Support for Python 2.3 and Intel C++ on Linux
- Container Indexing
- injected constructors and wrapped function objects.
- wrapping static data members.
- Improved keyword arguments
- Better error messages, including name demangling for GCC.
- Simpler build procedure.
- ...and more...
Random Number Library:
to match the C++ TR proposal,
from Jens Maurer.
Regex: Completely new matching
algorithm is now much faster than before, plus a selection of
new features and enhancements.
Starting from Spirit v1.8.0, ill conforming compilers will no longer be
supported. If you are still using one of these older compilers,
please use Spirit v1.6.x. See Spirit's Site
for more details.
- Multiple grammar start rules
- Multiple Scanner rules (no more scanner business woes)
- More dynamic parsers
- Predefined actors
- Numerous bug fixes and QOI stuff
- ...and more...
- Test Library:
For complete list of changes see Test Library
Free function template based test case
Custom exception translators support in execution monitor and register_exception_translator added for unit test framework
Added support for multi-module unit tests in automatic registration facility
Floating point comparison algorithm reworked (Is not backward compatible!!!)
Added support for custom users predicate returning both boolean result code and possibly error message
Documentation structure rework and update
- Expanded testing and fixes for non-conforming compilers.
- Web site hosting now provided by
August 19, 2003 - Version 1.30.2 (bugfix release)
Boost Consulting is now hosting
Boost CVS mirrors - see our download page.
Backported changes to the config system,
to better handle new compiler releases.
Bugs in regression reporting in subproject tests were fixed.
Tests are now run in the context of the user's PATH environment settings
toolsets now build static libraries with multithreading enabled, to be
compatible with the STLPort builds.
intel-win32 toolset now
correctly when intel is installed over msvc6.
Backported fixes from the main trunk which prevent errors building the
library in its default configuration.
Backported portability improvements for
Locale support for metrowerks (requiring a statically-linked runtime) is more
fixes from the main trunk.
rt to FINDLIBS in order to make the
function available (backport of a patch in CVS HEAD).
backported fixes in error log links generation.
August 12, 2003 - ALERT
Significant problems were found in the 1.30.1 release, so it has been withdrawn
from the website. These problems mostly take the form of missing files due to
an error by the release manager in using CVS to tag the release. We expect to
release Version 1.30.2 in a few days. Stay tuned.
Until then, you may want to get the
RC_1_30_0 branch (which, with
only very slight modification, will become version 1.30.2) from our
CVS repository or the CVS mirror
at Boost Consulting
August 4, 2003 - Version 1.30.1 (bugfix release)
Fixes were made to the following libraries:
library is now usable with gcc-2.95.2
Fixed. Using MSVC++6 (SP5), calling the assign action with a string value on
parsers using the file_iterator will not work.
Fixed: using assign semantic action in a grammar with a multi_pass iterator
adaptor applied to an std::istream_iterator resulted in a failure to compile
under msvc 7.0.
Fixed: There is a bug in the
function in "boost/spirit/utility/impl/chset/range_run.ipp".
Fixed: handling of trailing whitespace bug (ast_parse/pt_parse related)
Fixed: comment_p and end of data bug
Fixed: Most trailing space bug
Fixed: mismatch closure return type bug
Fixed a bug regarding threadsafety of Phoenix/Spirit closures.
The Boost Template Metaprogramming Library (MPL)'s
typeof implementation is now compatible with Metrowerks CodeWarrior Pro8.
Boost.Function: workaround for the
new Borland patch (version 0x564) and MSVC++ .NET 2003.
Boost.Format, and Boost.Regex have
been adjusted to avoid warnings with GCC-3.3, and Boost.Format also now works
with string types other than
now works on more platforms
Compatibility with the SunPro compiler
warning suppression for finicky compilers
fixed a crashing bug in the
facility when no keyword arguments were passed.
Improved conversion of NULL
shared_ptrs to Python.
March 19, 2003 - Version 1.30.0
added - Portable paths, iteration over directories, and other useful filesystem
operations, from Beman Dawes.
added - A discriminated-union wrapper for optional values, from Fernando
added - Extends the usual arithmetic functions to mathematical intervals, from
Guillaume Melquiond, Hervé Brönnimann and Sylvain Pion.
added - Template metaprogramming framework of compile-time algorithms,
sequences and metafunction classes, from Aleksey Gurtovoy.
added - An LL (unlimited lookahead) parser framework that represents parsers
directly as EBNF grammars in inlined C++ source code, complete with semantic
actions, ASTs and much more, from Joel de Guzman and team.
Smart Pointers Library - cast functions
are now spelled static_pointer_cast
added; shared_ptr::shared_ptr(), shared_ptr::reset(), weak_ptr::weak_ptr(),
weak_ptr::reset() no longer throw;
get_deleter added; weak_ptr::get() removed; make_shared is now spelled
weak_ptr::lock() ; intrusive_ptr
documentation added; some experimental undocumented shared_ptr features
have been removed; a page describing
some smart pointer programming techniques
has been added.
have been documented.
Date-Time Library - several fixes
and small additions including an interface change to partial_date. See
Date-Time Change History
for more details.
- added support for assignment to zero (to clear) and comparison against zero
(to check if empty).
- now takes advantage of named return value optimization (NRVO) when available,
from Daniel Frey.
Regression Tests - Much expanded,
plus a very nice summary
from Rene Rivera.
Test Library - introduced following new
For complete list of changes see Test Library
Automatic registration of unit tests
XML log format
XML report format
BOOST_CHECK_NO_THROW test tool
BOOST_BITWISE_CHECK test tool
Many fixes and enhancements to other libraries.
October 10, 2002 - Version 1.29.0
added - Dates, times, leap seconds, infinity, and more, from Jeff Garland.
Dynamic Bitset added - A
runtime sized version of the std::bitset
class from Jeremy Siek and Chuck Allison.
added - Type-safe 'printf-like' format operations, from Samuel Krempp.
Function Library: Major syntactic
changes have been made. Some old syntax and little-used features have been
deprecated (and will be removed shortly), and the syntax for the
class template has been greatly improved on conforming compilers. Please see
the compatibility note
for more information.
added - Multidimensional containers and adaptors for arrays of contiguous data,
from Ron Garcia.
Preprocessor Library: Major
upgrade, from Paul Mensonides.
- Version 2 is released, from Dave Abrahams and others. This is a major rewrite
which works on many more compilers and platforms, with a completely new
interface and lots of new features. Boost.Python v2 requires Python 2.2 or
added - Managed signals & slots callback implementation, from Doug Gregor.
Test Library: Major new version,
including full unit test capabilities, from Gennadiy Rozental.
uBLAS Library added - Basic
linear algebra for dense, packed and sparse matrices, from Joerg Walter and