Version 1.44.0
Version 1.44.0
August 13th, 2010 17:00 GMT
| Platform | File |
|---|---|
| unix | boost_1_44_0.tar.bz2 |
| boost_1_44_0.tar.gz | |
| windows | boost_1_44_0.7z |
| boost_1_44_0.zip |
New Libraries
-
Meta State Machine: High-performance expressive UML2 finite state machines, from Christophe Henry
-
Polygon: Booleans/clipping, resizing/offsetting and more for planar polygons with integral coordinates, from Lucanus Simonson.
Updated Libraries
-
Accumulators:
-
Correct miscellaneous documentation inaccuracies
-
-
Asio:
-
Reduced compile times. (Note that some programs may need to add additional
#includes, e.g. if the program usesboost::arraybut does not explicitly include<boost/array.hpp>.) -
Reduced the size of generated code.
-
Refactored
deadline_timerimplementation to improve performance. -
Improved multiprocessor scalability on Windows by using a dedicated hidden thread to wait for timers.
-
Improved performance of
asio::streambufwithasync_read()andasync_read_until(). These read operations now use the existing capacity of thestreambufwhen reading, rather than limiting the read to 512 bytes. -
Added optional separate compilation. To enable, add
#include <boost/asio/impl/src.cpp>to one source file in a program, then build the program withBOOST_ASIO_SEPARATE_COMPILATIONdefined in the project/compiler settings. Alternatively,BOOST_ASIO_DYN_LINKmay be defined to build a separately-compiled Asio as part of a shared library. -
Added new macro
BOOST_ASIO_DISABLE_FENCED_BLOCKto permit the disabling of memory fences around completion handlers, even if thread support is enabled. -
Reworked timeout examples to better illustrate typical use cases.
-
Ensured that handler arguments are passed as
consttypes. -
Fixed handling of very small but non-zero timeouts (#4205).
-
Fixed crash that occurred when an empty buffer sequence was passed to a composed read or write operation.
-
Implemented cancellation of
null_buffersoperations on Windows.
-
-
Filesystem:
-
Fix problems with symbol visibility for shared libraries.
-
Fix various minor problems.
-
Hash:
-
Option to prevent implicit casts when calling the hash function by defining the macro
BOOST_HASH_NO_IMPLICIT_CASTS, which can avoid some subtle problems. This might be activated by default in a future version.
-
-
Iostreams:
-
Several fixes for file descriptors class, including a breaking change to the constructors and
openmethods forfile_descriptor,file_descriptor_sourceandfile_descriptor_sink. See the documentation for details. The old methods are still available if you defineBOOST_IOSTREAMS_USE_DEPRECATED(#3323, #3517, #4335). -
Thanks to Steven Watanabe for almost all these fixes. For more detail see the release notes.
-
-
Math:
-
Fixed incorrect range and support for Rayleigh distribution.
-
-
MPL:
-
Make
mpl::stringwork withmpl::transform.
-
-
Proto:
-
Minor change in behavior: when using
proto::and_as a transform, apply all transforms but only return the result of applying the last. See Proto's Release Notes for details. -
Minor change in behavior:
proto::as_exprandproto::as_childno longer run objects that are already proto expressions through the expression domain's generator. See Proto's Release Notes for details. -
Minor change in behavior: Proto uses
proto::basic_exprinstead ofproto::exprwhen possible for better compile times. See Proto's Release Notes for details. -
Add support for sub-domains.
-
Introduce per-domain
as_exprandas_childcustomization points to allow for domain-specific customization of variable capture behavior. -
The
proto::_defaulttransform is also a grammar that matches the expressions the transform knows how to handle. -
Add
proto::_void, a no-op primitive transform that does nothing and returnsvoid. -
The
proto::pass_throughtransform doesn't strip expression wrappers, fixes #4175. -
Const-correctness fixes when invoking proto domains.
-
-
Spirit: Spirit V2.4, see the 'What's New' section for details.
-
System:
-
Change system_category and generic_category to functions, to conform to the C++0x FCD. This change may cause compile errors some user code; the fix is add "()" to references to system_category and generic_category, so that they become function calls.
-
Fix problems with symbol visibility for shared libraries.
-
-
Thread:
-
Fixes for other miscellaneous issues (remove warnings, support newer compilers, etc.)
-
TR1:
-
Fixed VC10 support.
-
std::tr1::result_ofalways uses the TR1 ResultOf protocol, even on compilers that support the C++0xdecltype-based implementation.
-
-
Type Traits:
-
Fixed ticket #3621.
-
uBLAS:
-
New assignment operators to feed in vectors and matrices in many nice ways (#4034). Thank you Nasos
-
New doxygen-based documentation
-
Enable arithmetic operators (+,-,*,/) to work between ublas containers of std::complex and integral types (#3649). Thank you Neal
-
Removed unused variables in functional.hpp (#4377). Thank you Marco
-
New matrix_indirect and vector_indirect views to access elements with a matrix or vector of indices
-
-
Utility:
-
Added a new template class,
boost::initialized<T>, in order to fix #3472. -
New version of
value_initialized<T>no longer callsmemsetwhen the compiler has implemented value-initialization completely (#3869). -
New template
boost::tr1_result_ofthat implements the TR1 ResultOf protocol even ifboost::result_ofuses the C++0xdecltype-based implementation.
-
-
Uuid:
-
Define
BOOST_UUID_NO_TYPE_TRAITSto remove the dependency on Boost.TypeTraits. -
Stream
operator<<handles left, internal, and right manipulators. -
Added
to_string,to_wstringto convert a uuid to a string. -
Fixed minor bugs in documentation.
-
-
Xpressive:
-
Replace non-portable
usingdeclarations withtypedefs innested_results. -
Support user-defined assertions with placeholders for non-local variables.
-
Updated tools
-
Boostbook:
-
Significantly faster.
-
Improved syntax highlighter.
-
-
Quickbook:
-
Use the cygwin 1.7 API for better path handling.
-
Improved boostbook generation.
-
Tweak the grammar to clean up some edge cases.
-
For more detail see the change log.
-
Compilers Tested
Boost's primary test compilers are:
-
OS X:
-
GCC 4.0.1 on Intel Leopard.
-
-
Linux:
-
GCC 4.4 on 64-bit Suse.
-
-
Windows:
-
Visual C++ 7.1 SP1, 8.0 SP1, 9.0 SP1 and 10.0.
-
GCC 4.3.3, using Mingw.
-
-
FreeBSD:
-
GCC 4.2.1, 32 and 64 bit.
-
Boost's additional test compilers include:
-
Linux:
-
Intel 10.1 on 32 bit Red Hat Enterprise Linux.
-
Intel 10.1, 11.0, 11.1 on 64 bit Red Hat Enterprise Linux.
-
GCC 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.5 on Red Hat Enterprise Linux.
-
GCC, with C++0x extensions, 4.3.4, 4.4.3, 4.5 on Red Hat Enterprise Linux.
-
GCC 4.4 on 64 bit Suse.
-
QLogic PathScale(TM) Compiler Suite: Version 3.2 on Red Hat Enterprise Linux.
-
Clang from subversion (will be released with LLVM 2.8).
-
-
OS X:
-
Intel C++ Compiler 10.1, 11.0, 11.1 on Leopard.
-
GCC 4.0.1, 4.2.1 (Apple build).
-
GCC 4.4
-
GCC, with C++0x extensions, 4.4
-
Clang from subversion (will be released with LLVM 2.8).
-
-
Windows:
-
Visual C++ 7.1 SP, 8.0, 9.0 on 32-bit XP.
-
Visual C++ 9.0 using STLport 5.2 on XP and Windows Mobile 5.0.
-
Visual C++ 10.0 on XP.
-
Visual C++ 10.0 on 64-bit Windows 7.
-
Borland/Codegear C++ 5.9.3, 6.1.3 (2009), 6.2.1 (2010).
-
Intel C++ 11.1, with a Visual C++ 9.0 backend, on Vista 32-bit.
-
GCC 4.3.3, 4.5 on Mingw.
-
GCC, with C++0x extensions, 4.5 on Mingw.
-
-
AIX:
-
IBM XL C/C++ Enterprise Edition, V11.1.0.0, on AIX Version 5.3.0.40.
-
-
FreeBSD:
-
GCC 4.2.1 on FreeBSD 7.2, 64 bit.
-
GCC 4.2.1 on FreeBSD 8.0, 32 bit.
-
-
Solaris:
-
Sun C++ 5.10 on Solaris 5.10.
-
Acknowledgements
Beman Dawes, Eric Niebler, Rene Rivera, Daniel James and Vladimir Prus managed this release.
Thanks to Marshall Clow for organizing the bug sprint and to everyone who took part.
