-
-
- 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
-
-
-
- May 14, 2007 - BoostCon'07 starts today
- The long anticipated BoostCon'07 finally starts today. Promising to be the
- main face-to-face event for all things Boost, BoostCon'07 opens the door to
- your C++ future.
- May 12, 2007 - Version 1.34.0
- 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, Rene Rivera for general build and installation
- support and Greg D. for answering countless
- questions.
- |
-
-