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
???, 2006 - Version 1.34.0
New Libraries
- Foreach Library:
BOOST_FOREACH macro for easily iterating over
the elements of a sequence, from Eric Niebler.
- 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.
- 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.
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.
- 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.
- 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 construction
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:
- Multi-index Containers Library:
- 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.
- Parameter Library:
- 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 warning was issued.
- Support for optional comment and/or full whitespace preservation in the generated output stream has been added.
- This version also includes a number of bug fixes and usage improvements. For a complete list of changes, see the library change log.
|