Welcome to Boost.org!
Boost provides free peer-reviewed portable C++
source libraries.
We emphasize libraries that work well with the C++
Standard Library. Boost libraries are intended to be
widely useful, and usable across a broad spectrum of
applications. The Boost license encourages
both commercial and non-commercial use.
We aim to establish "existing practice" and
provide reference implementations so that Boost
libraries are suitable for eventual standardization.
Ten Boost libraries are already included in the
C++
Standards Committee's Library Technical Report (
TR1) as a step toward becoming part of a future
C++ Standard. More Boost libraries are proposed for
the upcoming
TR2.
Getting
started: Boost works
on almost any modern operating system, including UNIX
and Windows variants. Follow the Getting Started Guide
to download and install Boost. Popular Linux and Unix
distributions such as Fedora, Debian, and NetBSD include pre-built
Boost packages. Boost may also already be available
on your organization's internal web
server.
Background: The Background Information
page has introductory material to help those
educating their organization about Boost.
Participation
Although Boost was begun by members of the C++
Standards Committee Library Working Group,
participation has expanded to include thousands of
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, and several project specific
lists.
Both the main Boost developers list and the users
list are also accessible as newsgroups.
Latest News
August 11, 2005 - Version 1.33.0
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
- 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) .
-
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:
- Experimental
Python bindings, from Doug Gregor and
Indiana University.
-
floyd warshall all pairs shortest
paths, from Lauren Foutz and Scott
Hill.
- astar
search, from Kristopher Beevers and
Jufeng Peng.
- fruchterman
reingold force directed layout, from
Doug Gregor and Indiana University.
-
biconnected components and
articulation points, from Jeremy
Siek, Janusz Piwowarski, and Doug Gregor.
-
sequential vertex coloring has
been updated, tested, and documented.
- gursoy
atun layout, from Jeremiah Willcock
and Doug Gregor of Indiana University.
- king
ordering, from D. Kevin McGrath of
Indiana University.
-
cuthill mckee ordering has been recast
as an invocation of breadth first
search and now supports graphs with
multiple components.
-
dijkstra shortest paths now uses a
relaxed heap [61]
as its priority queue, improving its complexity
to O(V log V) and improving real-world
performance for larger graphs.
read
graphviz now has a new, Spirit-based
parser that works for all graph types and
supports arbitrary properties on the graph,
from Ron Garcia. The old, Bison-based GraphViz
reader has been deprecated and will be removed
in a future Boost release. write
graphviz also supports dynamic
properties.
subgraph :
get_property now refers to the
subgraph property, not the root graph's
property.
- See the history
for additional changes and bug fixes.
-
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.
- 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_twister s 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 seialization 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.
|