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.
  