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
#include
s, e.g. if the program usesboost::array
but does not explicitly include<boost/array.hpp>
.) -
Reduced the size of generated code.
-
Refactored
deadline_timer
implementation to improve performance. -
Improved multiprocessor scalability on Windows by using a dedicated hidden thread to wait for timers.
-
Improved performance of
asio::streambuf
withasync_read()
andasync_read_until()
. These read operations now use the existing capacity of thestreambuf
when 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_COMPILATION
defined in the project/compiler settings. Alternatively,BOOST_ASIO_DYN_LINK
may be defined to build a separately-compiled Asio as part of a shared library. -
Added new macro
BOOST_ASIO_DISABLE_FENCED_BLOCK
to 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
const
types. -
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_buffers
operations 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
open
methods forfile_descriptor
,file_descriptor_source
andfile_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::string
work 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_expr
andproto::as_child
no 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_expr
instead ofproto::expr
when possible for better compile times. See Proto's Release Notes for details. -
Add support for sub-domains.
-
Introduce per-domain
as_expr
andas_child
customization points to allow for domain-specific customization of variable capture behavior. -
The
proto::_default
transform 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_through
transform 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_of
always 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 callsmemset
when the compiler has implemented value-initialization completely (#3869). -
New template
boost::tr1_result_of
that implements the TR1 ResultOf protocol even ifboost::result_of
uses the C++0xdecltype
-based implementation.
-
-
Uuid:
-
Define
BOOST_UUID_NO_TYPE_TRAITS
to remove the dependency on Boost.TypeTraits. -
Stream
operator<<
handles left, internal, and right manipulators. -
Added
to_string
,to_wstring
to convert a uuid to a string. -
Fixed minor bugs in documentation.
-
-
Xpressive:
-
Replace non-portable
using
declarations withtypedef
s 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.