Version 1.51.0
Version 1.51.0
August 20th, 2012 23:00 GMT
Platform | File |
---|---|
unix | boost_1_51_0.tar.bz2 |
boost_1_51_0.tar.gz | |
windows | boost_1_51_0.7z |
boost_1_51_0.zip |
Patches
-
Locale Patch - Fixes a bug which causes
boost::locale::utf::utf_traits
to accept some invalid UTF-8 sequences, which is a possible security flaw.
New Libraries
-
Context: Context switching library, from Oliver Kowalke.
Updated Libraries
-
Algorithm:
-
Fixed
is_sorted_until
; now matches the c++11 standard behavior on ranges with duplicate values. -
Added range support for the rest of the search algorithms.
-
unhex
now uses Boost.Exception to signal bad input.
-
-
Asio:
-
Fixed an incompatibility between
ip::tcp::iostream
and C++11 (#7162). -
Decorated GCC attribute names with underscores to prevent interaction with user-defined macros (#6415).
-
Added missing
#include <cctype>
, needed for some versions of MinGW. -
Changed to use gcc's atomic builtins on ARM CPUs, when available (#7140).
-
Changed strand destruction to be a no-op, to allow strand objects to be destroyed after their associated
io_service
has been destroyed. -
Added support for some newer versions of glibc which provide the
epoll_create1()
function but always fail withENOSYS
(#7012). -
Changed the SSL implementation to throw an exception if SSL engine initialisation fails (#6303).
-
Fixed another regression in
buffered_write_stream
(#6310). -
Implemented various minor performance improvements, primarily targeted at Linux x86 and x86-64 platforms.
-
-
Config:
-
Deprecated a whole bunch of macros that were c++11 specific, but not named to show that they were c++11 specific. Made new macros with better names, and paired the old macros with the new ones. Updated the documentation to list the deprecated macros.
-
-
Chrono:
-
#6918 Boost Chrono compilation failure on HP uX due to undefined pthread_getcpuclockid.
-
#6241 boost::chrono compilation problems without std::wstring support.
-
#6987 Documentation & C++11.
-
#7041 time_point.hpp depends on Boost.System.
-
#7042 Avoiding time_point and duration dependency on time.h and CLOCK_REALTIME.
-
#7058 Make it work when BOOST_NO_EXCEPTIONS is defined.
-
#7069 Misspellings in clock_string<thread_clock>.
-
#7081 WinError.h capitalization in boost/detail/win/basic_types.hpp.
-
-
Geometry:
-
points accessed through a pointer (e.g. in a linestring) should now be specialized without the pointer. In previous versions a type
my_point
used likelinestring<my_point*>
had to be specalized like:template<> struct tag<my_point*>
. Now the library itself removes the pointer before calling the traits class, so now it should be like:template<> struct tag<my_point>
-
intersection was sometimes wrong for integer points, fixed
-
documentation, order of parameters in simplify was wrong, fixed
-
7030 spherical distance, fixed (by patch of Karsten Ahnert)
-
-
Graph:
-
Refactored support for internal and bundled properties in Boost.Graph-provided graph types, and cleaned up named parameter functionality:
-
Enabled old-style (non-bundled) internal properties in
compressed_sparse_row_graph
. -
Bundled properties should work correctly for all graph types and adaptors.
-
-
-
Hash:
-
Support the standard smart pointers.
-
hash_value
now implemented using SFINAE to avoid implicit casts to built in types when calling it. -
Updated to use the new config macros.
-
-
Lexical cast:
-
Better performance, less memory usage for
boost::array<character_type, N>
andstd::array<character_type, N>
conversions. -
Fixed bug with volatile input parameter #7157.
-
-
Math:
-
Updated to use the new config macros.
-
-
MSM:
-
Support for boost::any https://www.boost.org/doc/libs/1_51_0/libs/msm/doc/HTML/ch03s03.html#any-event or kleene https://www.boost.org/doc/libs/1_51_0/libs/msm/doc/HTML/ch03s04.html#kleene-event as acceptable events
-
Bugfix: compiler error with fsm internal table and none (compound) event.
-
Bugfix: euml::defer_ leading to stack overflow.
-
-
Proto:
-
Proto transforms get pseudo-parameter pack expansion support for unpacking expressions. See the Release Notes for more information.
-
-
Regex:
-
Updated to use the new config macros.
-
-
Thread:
-
#4258 Linking with boost thread does not work on mingw/gcc 4.5.
-
#4885 Access violation in set_tss_data at process exit due to invalid assumption about TlsAlloc.
-
#6931 mutex waits forwever with Intel Compiler and /debug:parallel
-
#7044 boost 1.50.0 header missing.
-
#7052 Thread: BOOST_THREAD_PROVIDES_DEPRECATED_FEATURES_SINCE_V3_0_0 only masks thread::operator==, thread::operator!= forward declarations, not definitions.
-
#7066 An attempt to fix current_thread_tls_key static initialization order.
-
#7074 Multiply defined symbol boost::allocator_arg.
-
#7078 Trivial 64-bit warning fix on Windows for thread attribute stack size
-
#7089 BOOST_THREAD_WAIT_BUG limits functionality without solving anything
-
-
xpressive:
-
Work around buggy wide ctype facet on cygwin and mingw.
-
Work around absence of __isctype on some glibc implementations.
-
op::as
shouldn't assumestring::iterator
!=char*
. -
Fix assertion in
cpp_regex_traits
on libc++, thanks to John Fletcher.
-
Compilers Tested
Boost's primary test compilers are:
-
Linux:
-
GCC: 4.2.4, 4.3.4, 4.4.3, 4.5.3, 4.6.2, 4.7
-
GCC, C++11 mode: 4.3.4, 4.4.3, 4.5.3, 4.6.2
-
Intel: 11.1, 12.0, 12.1
-
LLVM Clang 2.8
-
-
OS X:
-
GCC: 4.4
-
GCC, C++11 mode: 4.4
-
Intel: 11.1, 12.0
-
-
Windows:
-
GCC, mingw: 4.4.0, 4.4.7, 4.5.4, 4.6.3
-
Visual C++: 8.0, 9.0, 10.0
-
-
FreeBSD:
-
GCC: 4.2.1, 32 and 64 bit
-
Boost's additional test compilers include:
-
Linux:
-
Clang: from subversion
-
LLVM Clang: 3.0
-
GCC: 4.2.4, 4.3.4, 4.4.4, 4.4.7, 4.5.3, 4.6.2, 4.6.3, 4.7.0, 4.7.1
-
GCC, C++11 mode: 4.3.4, 4.4.4, 4.5.3, 4.6.3
-
pgCC: 11.9
-
Intel: 10.1, 11.1, 12.0, 12.1
-
Visual Age: 10.1
-
-
OS X:
-
Clang: from subversion
-
Clang, C++11 mode: from subversion
-
Intel: 11.1, 12.0
-
GCC: 4.4
-
GCC, C++11 mode: 4.4
-
-
Windows:
-
Visual C++: 8.0, 9.0, 10.0
-
GCC, mingw: 4.4.0, 4.6.3, 4.7.0
-
-
AIX:
-
IBM XL C/C++ Enterprise Edition: V12.1.0.0
-
-
FreeBSD:
-
GCC: 4.2.1, 32 and 64 bit
-
-
Solaris:
-
Sun: 5.10
-
Acknowledgements
Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release.