|
|
@@ -0,0 +1,210 @@
|
|
|
+Boost 1.34.0, the latest version of peer-reviewed, portable C++
|
|
|
+libraries, has been released. This release brings five new libraries
|
|
|
+and extensive updates to existing libraries.
|
|
|
+
|
|
|
+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:
|
|
|
+ o Support for ptr_map<key,T> via the new function ptr_map_insert()
|
|
|
+ o Support for initialization of Pointer Containers when the containers
|
|
|
+ hold pointers to an abstract base class.
|
|
|
+ * Date_time library:
|
|
|
+ o 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:
|
|
|
+ o Internationalization, provided by class templates basic_path,
|
|
|
+ basic_filesystem_error, basic_directory_iterator
|
|
|
+ and basic_directory_entry.
|
|
|
+ o Simplification of the path interface by eliminating special constructors
|
|
|
+ to identify native formats.
|
|
|
+ o Rationalization of predicate function design, including the addition of
|
|
|
+ several new functions.
|
|
|
+ o Clearer specification by reference to POSIX, the ISO/IEEE Single Unix
|
|
|
+ Standard, with provisions for Windows and other operating systems.
|
|
|
+ o Preservation of existing user code whenever possible.
|
|
|
+ o More efficient directory iteration.
|
|
|
+ o 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
|
|
|
+ o Use declarations for standard classes, so that the library doesn't
|
|
|
+ need to include all of their headers
|
|
|
+ o Deprecated the <boost/functional/hash/*.hpp> headers.
|
|
|
+ o Add support for the BOOST_HASH_NO_EXTENSIONS macro, which disables
|
|
|
+ the extensions to TR1
|
|
|
+ o Minor improvements to the hash functions for floating point numbers.
|
|
|
+ * Graph Library:
|
|
|
+ o edmonds_maximum_cardinality_matching, from Aaron Windsor.
|
|
|
+ o lengauer_tarjan_dominator_tree, from JongSoo Park.
|
|
|
+ o compressed_sparse_row_graph, from Jeremiah Willcock and Douglas Gregor
|
|
|
+ of Indiana University.
|
|
|
+ o sorted_erdos_renyi_iterator, from Jeremiah Willcock
|
|
|
+ of Indiana University.
|
|
|
+ o biconnected_components now supports a visitor and named parameters,
|
|
|
+ from Janusz Piwowarski.
|
|
|
+ o adjacency_matrix now models the Bidirectional Graph concept.
|
|
|
+ o dijkstra_shortest_paths now calls vis.initialize_vertex for each
|
|
|
+ vertex during initialization.
|
|
|
+ o Note: the name of the compiled library for the GraphViz reader has
|
|
|
+ changed to boost_graph (from bgl-viz) to match Boost conventions.
|
|
|
+ o See the complete revision history for more information.
|
|
|
+ * 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:
|
|
|
+ o New random access indices.
|
|
|
+ o Non key-based indices feature new rearrange facilities.
|
|
|
+ o This version also includes a number of optimizations and usage
|
|
|
+ improvements. For a complete list of changes,
|
|
|
+ see the library release notes.
|
|
|
+ * Optional Library:
|
|
|
+ o boost::none_t and boost::none now added to Optional's documentation
|
|
|
+ o Relational operators now directly support arguments of type 'T'
|
|
|
+ and 'none_t'
|
|
|
+ o operator->() now also works with reference types.
|
|
|
+ o Helper functions make_optional(val), make_optional(cond,val)
|
|
|
+ and get_optional_value_or(opt,alternative_value) added.
|
|
|
+ o Constructor taking a boolean condition (as well as a value) added.
|
|
|
+ o Member function get_value_or(alternative_value) added.
|
|
|
+ o Incompatbility bug with mpl::apply<> fixed.
|
|
|
+ o Converting assignment bug with uninitialized lvalues fixed.
|
|
|
+ * Parameter Library:
|
|
|
+ o Every ArgumentPack is now a valid MPL Forward Sequence.
|
|
|
+ o Support for unnamed arguments (those whose keyword is deduced from
|
|
|
+ their types) is added.
|
|
|
+ o Support for named and unnamed template arguments is added.
|
|
|
+ o New overload generation macros solve the forwarding problem directly.
|
|
|
+ o See also the Python library changes, below.
|
|
|
+ * Pointer Container Library:
|
|
|
+ o Support for serialization via Boost.Serialization.
|
|
|
+ o 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.
|
|
|
+ o 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.
|
|
|
+ o transfer() now has weaker requirements s.t. one can transfer objects
|
|
|
+ from ptr_container<Derived> to ptr_container<Base>,
|
|
|
+ * Python Library:
|
|
|
+ o Boost.Python now automatically appends C++ signatures to docstrings.
|
|
|
+ The new docstring_options.hpp header is available to control the
|
|
|
+ content of docstrings.
|
|
|
+ o stl_input_iterator, for turning a Python iterable object into an STL
|
|
|
+ input iterator, from Eric Niebler.
|
|
|
+ o Support for void* conversions is added.
|
|
|
+ o Integrated support for wrapping C++ functions built with the
|
|
|
+ parameter library; keyword names are automatically known to
|
|
|
+ docsstrings.
|
|
|
+ o 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:
|
|
|
+ o Allocator support as proposed in N1851 (162 Kb PDF).
|
|
|
+ o pointer_cast and pointer_to_other utilities to allow
|
|
|
+ pointer-independent code, from Ion Gaztanaga.
|
|
|
+ * String Algorithm Library:
|
|
|
+ o lexicographical_compare
|
|
|
+ o join
|
|
|
+ o New comparison predicates is_less, is_not_greater.
|
|
|
+ o Negative indexes support (like Perl) in various algorihtms
|
|
|
+ (*_head/tail, *_nth).
|
|
|
+ * Wave Library:
|
|
|
+ o 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.
|
|
|
+ o Several new preprocessing hooks have been added. For a complete
|
|
|
+ description please refer to the related documentation page:
|
|
|
+ The Context Policy.
|
|
|
+ o Shared library (dll) support has been added for the generated Wave
|
|
|
+ libraries.
|
|
|
+ o The overall error handling has been improved. It is now possible to
|
|
|
+ recover and continue after an error or a warning was issued.
|
|
|
+ o Support for optional comment and/or full whitespace preservation
|
|
|
+ in the generated output stream has been added.
|
|
|
+ o The Wave library now performs automatic include guard detection to
|
|
|
+ avoid accessing header files more than once, if appropriate.
|
|
|
+ o 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.).
|
|
|
+ o The overall performance has been improved by upto 40-60%, depending
|
|
|
+ on the concrete files to process.
|
|
|
+ o 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).
|
|
|
+ o Optional support for #pragma message "..." has been added.
|
|
|
+ o 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++
|
|
|
+ o 3.2.x., 3.3.x, 3.4.x, 4.0.x, 4.1.x on Linux
|
|
|
+ o 4.1.x on Solaris
|
|
|
+ o 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.
|