Boost logo

Boost :

From: Atry (pop.atry_at_[hidden])
Date: 2007-05-12 21:39:58


Thomas Witt 写道:
> 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.
>
> http://www.boost.org
>
> 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.
>
>
It is Sunday now :(


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk