This is an older version of Boost and was released in 2014.
The current version is 1.88.0.
Version 1.57.0
November 3rd, 2014 21:55 GMT
Documentation
Updated Libraries
-
Any:
-
RTTI is not required any more (TypeIndex
library is used for RTTI emulation)
-
Fixed #8958
-
Asio:
-
Fixed the kqueue reactor so that it works on FreeBSD
(#10606).
-
Fixed an issue in the kqueue reactor which resulted
in spinning when using serial ports on Mac OS (#10496).
-
Fixed kqueue reactor support for read-only file
descriptors (#10367).
-
Fixed a compile error when using the /dev/poll
reactor (#10350, #10572).
-
Changed the Windows backend to use
WSASocketW
,
as WSASocketA
has
been deprecated (#10534).
-
Fixed some warnings reported by Visual C++ 2013 (#10376).
-
Fixed integer type used in the WinRT version of the byte-order conversion
functions (#10539).
-
Changed documentation to indicate that
use_future
and spawn()
are not made available when including the asio.hpp
convenience header (#10567).
-
Explicitly marked
asio::strand
as deprecated. Use asio::io_service::strand
instead.
-
Circular Buffer:
-
Fixed some warnings and
move_if_noexcept
from Boost.Move is used #7888
-
Config:
-
BOOST_HAS_PRAGMA_DETECT_MISMATCH
macro was added
-
Container:
-
Added support for
initializer_list
.
Contributed by Robert Matusewicz.
-
Fixed double destruction bugs in vector and backward expansion capable
allocators.
-
Fixed bugs:
-
Coroutine:
-
optionally register stacks with valgrind
-
#10386 MSVC link error in asymmetric_coroutine.hpp: symbol already
defined
-
#10536 call to 'begin(...pull_coroutine< R > & c)'
is ambiguous
-
Flyweight:
-
Added serialization support via Boost
Serialization.
-
flyweight
default
constructor was made explicit in Boost 1.56, which introduces a regression
in some initialization scenarios. The former non-explicit default
constructor has been restored (ticket #10439).
-
Geometry:
-
Improvements
-
The support of parameters convertible to value_type in rtree
insert(), remove() and count() functions
-
Solved tickets
-
8402
Implicit conversion warnings
-
9354
Bug in winding strategy affecting within() and covered_by()
for non-cartesian coordinate systems
-
10177
Missing include
-
10345
Distance fails to compile for some coordinate types
-
10398
Wrong neighbour check in buffer, calculating turns
-
10421
Invalid Point-Box distance for spherical CS
-
10615
Rtree constructor feature request
-
10643
Invalid point_on_surface() result for big coordinates
-
10668
Implicit conversion warnings (duplicated 8402)
-
Bugfixes
-
Several fixes of bugs in algorithm buffer
-
Bug in point_on_surface() for CCW Polygons (extreme_points())
and numerical issue (thanks to Matt Amos)
-
Bug in disjoint() for A/A fixed by replacement of point_on_surface()
with point_on_border() (thanks to Matt Amos)
-
The result of convex_hull(), duplicated Point in open output,
too small number of Points for 1- and 2-Point input
-
Imprecision for big coordinates in centroid(), fixed by Points
translation (related with ticket 10643)
-
for_each_segment() not taking into account the last segment
of open Geometry
-
Interprocess:
-
Removed
unique_ptr
,
now forwards boost::interprocess::unique_ptr to the general purpose
boost::movelib::unique_ptr
class from Boost.Move. This implementation is closer
to the standard std::unique_ptr
implementation and it's better maintained.
-
Fixed bugs:
-
Reorganized Doxygen marks to obtain a better header reference.
-
Intrusive:
-
Experimental version of node checkers, contributed by Matei David.
Many thanks!
-
Implemented N3644:
Null Forward Iterators from C++14.
-
Fixed bugs:
-
Iterator:
-
Most components of the library were moved into the
boost::iterators
namespace. For backward
compatibility the components are also accessible in the boost
namespace.
-
Iterator operators are now conditionally defined based on the iterator
category.
-
Some of the internal components of the library were made public (
minimum_category
, for example).
-
Lexical Cast:
-
Some internal changes, library now consist of multiple headers instead
of a single one #10391, #10173
-
Math:
-
Added Hyperexponential Distribution.
-
Fix some spurious overflows in the incomplete gamma functions (with
thanks to Rocco Romeo).
-
Fix bug in derivative of incomplete beta when a = b = 0.5 - this
also effects several non-central distributions, see issue 10480.
-
Fixed some corner cases in function round.
-
Don't support 80-bit floats in cstdfloat.hpp if standard library
support is broken.
-
Move:
-
Added
unique_ptr
smart
pointer. Thanks to Howard Hinnant for his excellent unique_ptr emulation
code and testsuite.
-
Added
move_if_noexcept
utility. Thanks to Antony Polukhin for the implementation.
-
Fixed bugs:
-
MultiArray:
-
Fixed a friend-declaration related warning for clang (thanks to Marcel
Raad).
-
Multiprecision:
-
Changed rational to float conversions to exactly round to nearest.
-
Added improved generic float to rational conversions.
-
Fixed rare bug in exponent function for cpp_bin_float.
-
Fixed various minor documentation issues.
-
Multi-index Containers:
-
When
std::tuple
s are available, these can
be used for lookup operations in indices equipped with composite
keys. boost::tuple
s are also supported for backwards
compatibility.
-
Preprocessor:
-
Added is_begin_parens and remove_parens.
-
Added tuple functionality to parallel all array functionality.
-
Fixed VC++ problems with empty tuple data.
-
Updated internal is_empty to use superior variadic version when variadic
macros are supported.
-
Updated clang to have same variadic support as gcc.
-
Updated doc for new functionality.
-
Thread:
-
New Experimental Features:
-
#6227
Synchro: Use of variadic templates on Generic Locking Algorithms
on compilers providing them
-
#10298
Synchro: Added queue views.
-
#10300
Async: Added generic_executor_ref.
-
#10552
Add make_valid_future
-
Fixed Bugs:
-
#6782
call_once uses incorrect barrier intrinsic on Visual Studio
-
#6787
boost::thread::sleep() hangs if system time is rolled back
-
#7665
this_thread::sleep_for no longer uses steady_clock in thread
-
#9307
future::fallback_to assert with ERRORRRRR boost: mutex lock
failed in pthread_mutex_lock: Invalid argument
-
#9308
future::async fails with terminate called throwing an exception
when called with a lambda - clang-darwin-asan11
-
#9310
test_4648_lib fails on clang-darwin-asan11
-
#9425
Boost promise & future does not use supplied allocator
for value storage
-
#9558
future continuations unit test hangs in get()/pthread_cond_wait()
on Mac 10.7/32-bit/x86/darwin-4.2.1
-
#9787
[windows] Small duration value passed down to basic_timed_mutex::try_lock_until
and condition_variable::wait_until can cause infinite or near
infinite wait for win32
-
#9880
[windows] boost::condition_variable.timed_wait() exception
if system time < 1970
-
#10159
GCC 4.4 error sorry, unimplemented
-
#10196
thread_specific_ptr does not support void*
-
#10296
Boost.Thread 1.56 rc1 does not compile on Mingw
-
#10297
Boost.Thread 1.56 rc1 hangs when built with clang on armhf
-
#10340
No boost::promise<T>::set_value(const T&) overload
present in C++03 mode
-
#10425
Missing documentation for when_all/when_any.
-
#10426
Take in account the deferred futures in when_all.
-
#10427
Take in account the deferred and ready futures in when_any.
-
#10428
Adapt to new unique_ptr interface in Boost.Move
-
#10465
Missing implementation of when_all/when_any when the result
is a tuple.
-
#10476
classes using BOOST_THREAD_MOVABLE_ONLY<T> dont satisfy
is_copy_constructible<T>::value == false
-
#10478
Data race in boost/thread/future.hpp
-
#10529
The pthread/condition_variable_any constructor reports incorrect
error code for pthread_cond_init
-
#10563
shared_future<R>::then should be const
-
TypeIndex:
-
BOOST_HAS_PRAGMA_DETECT_MISMATCH
is now used to detect ODR violations #10404
-
Typos fixed #10294
-
TypeTraits:
-
Added new traits is_copy_assignable and is_final.
-
Units:
-
New unit system <boost/units/systems/information.hpp> units
for: bit, byte, nat, hartley and shannon,
-
Add scale units for binary prefixes kibi, mebi, gibi, tebi, pebi,
zebi and yobi IEC prefixes
-
Fix output of NaN on msvc-14
-
Add support for C++11 numeric_limits::max_digits10 and ::lowest
-
warning fixes
-
Unordered:
-
Fix the
pointer
typedef
in iterators (#10672).
-
Fix Coverity warning (GitHub
#2).
-
Utility:
-
The
next()
and prior()
functions taking distance arguments were reworked. The code now work
correctly when the distance is unsigned or both arguments are integers.
The new code relies on the availability of operators supported by
the first argument to select the correct implementation.
-
uBLAS:
-
added two new types: matrix_row and matrix_column facades . With
them, it is possible to access to the matrices as an array of rows
and an array of columns, respectively.
-
added fixed_vector/fixed_matrix classes to represent small - fixed
size containers. Requires c++11 because it is using std::array
-
fixed the long standing banded matrix bug (https://svn.boost.org/trac/boost/ticket/7549).
-
the interface of matrices and vectors has been extended with cbegin,
cend, crbegin and crend member functions, as defined in c++11.
-
removed doxygen documentation to make the distribution lighter
-
removed warnings with MSVC for unused parameters
-
changed the uBlas development folder structure (will not affect users
of the library)
-
performed a very large overhaul with respect to warnings and errors
on various compilers. Apart for some hard to resolve warnings and
older compiler incompatibilities, compilations with uBlas will be
much cleaner now.
Compilers Tested
Boost's primary test compilers are:
-
Linux:
-
Clang: 3.0, 3.1, 3.2, 3.3, 3.4
-
Clang, C++14: 3.5
-
GCC: 4.4.7, 4.5.3, 4.6.4, 4.7.3, 4.8.1, 4.8.2
-
GCC, C++98: 4.9.1
-
GCC, C++11: 4.4.7, 4.8.2, 4.8.3, 4.9.1
-
GCC, C++14: 4.9.1
-
Intel: 13.1, 14.0
-
Intel, C++11: 13.1, 14.0
-
QCC: 4.4.2
-
OS X:
-
Apple Clang: 6.0
-
Apple Clang, C++11: 6.0
-
Apple Clang, C++14: 6.0
-
GCC: 4.2.1, 4.9.1
-
Intel: 12.0
-
Windows:
-
GCC, mingw: 4.4.0, 4.4.7. 4.5.4, 4.6.3, 4.7.2, 4.7.3, 4.8.0, 4.8.2,
4.9.0
-
Visual C++: 8.0, 9.0, 10.0, 11.0, 12.0
-
FreeBSD:
-
QNX:
Boost's additional test compilers include:
-
Linux:
-
Clang: 3.0, 3.1, 3.2, 3.3, 3.4.2
-
Clang, C++14: 3.5.0, trunk
-
GCC: 4.4.7, 4.6.4, 4.7.3, 4.8.1, 4.8.2, 5.0 (experimental)
-
GCC, C++11: 4.4.7, 4.8.2, 4.8.3, 4.9.1
-
GCC, C++14: 4.9.1
-
Intel: 11.1, 12.1, 13.0, 13.1, 14.0
-
Intel, C++11: 13.1, 14.0
-
OS X:
-
Apple Clang: 6.0
-
Apple Clang, C++11: 6.0
-
Apple Clang, C++14: 6.0
-
Clang: trunk
-
Clang, C++11: trunk
-
GCC: 4.2.1, 4.9.1
-
Intel: 12.0
-
Windows:
-
GCC, mingw: 4.4.0, 4.4.7, 4.5.4, 4.6.3, 4.7.3, 4.8.0, 4.8.2, 4.9.0
-
Visual C++: 8.0, 9.0, 10.0, 11.0, 12.0
-
FreeBSD:
-
QNX:
Acknowledgements
Beman Dawes, Eric Niebler,
Rene Rivera, Daniel James,
Vladimir Prus and Marshall Clow managed this release.