Version 1.69.0
Version 1.69.0
December 12th, 2018 02:58 GMT
Platform | File | SHA256 Hash |
---|---|---|
unix | boost_1_69_0.tar.bz2 | 8f32d4617390d1c2d16f26a27ab60d97807b35440d45891fa340fc2648b04406 |
boost_1_69_0.tar.gz | 9a2c2819310839ea373f42d69e733c339b4e9a19deab6bfec448281554aa4dbb | |
windows | boost_1_69_0.7z | af05616f71006f97833e130aad886c96136457511ace4b5496d6566e69cbe0ca |
boost_1_69_0.zip | d074bcbcc0501c4917b965fc890e303ee70d8b01ff5712bae4a6c54f2b6b4e52 |
Notes for non-Windows users
The Boost build system now supports visibilities. If you are building shared libraries, they will use hidden visibility by default. As a result Boost shared libraries become smaller, load faster and have less chances to get a symbol collision.
See Boost.Build visibility and local-visibility for more info.
To disable that feature you can use use a command line ./b2 visibility=global
to
build.
New Libraries
-
Safe Numerics: A library for guaranteed correct integer arithmetic for C++14 and later, from Robert Ramey.
Updated Libraries
-
Any:
-
Fixed issue with visibility. Now
boost::any
variables constructed in one shared library with hidden visibility could be used and destroyed in other shared library with hidden visibility. -
Maintenance: dropped some dependencies on other Boost libraries, fixes for docs.
-
-
Asio:
-
Fixed a problem with the detection of
std::future
availability with libstdc++. -
Fixed compile error in regex overload of
read_until
. -
Fixed a timer heap corruption issue that can occur when moving a cancelled timer.
-
Fixed detection of
std::experimental::string_view
andstd::string_view
with newer clang/libc++. -
Fixed MSVC version detection for availability of
std::invoke_result
. -
Fixed the buffer sequence traits to test the new requirements, if
decltype
is available. -
Fixed an MSVC issue when building with exceptions disabled.
-
Added SSL context options for TLS v1.3.
-
Added a compile-time test for TLS v1 support.
-
Fixed the macro used to test for TLS v1.2 support.
-
Prevented global objects from being created once per thread on Windows.
-
Fixed a crash when using
size()
,max_size()
orempty()
on default-constructed resolver results. -
Changed to move the return value in
basic_resolver_results::begin()
to avoid copying. -
Enabled move support for the Intel Compiler.
-
Fixed
std::string_view
detection issue when using clang-cl. -
Fixed the handler tracking operation name for
io_context::executor_type::dispatch
. -
Fixed a buffer overflow that could occur when parsing an address string with a 64-bit scope id.
-
Added examples showing how to write composed operations.
-
Added C++11 versions of the Timeouts, Timers, SOCKS4 and SSL examples.
-
Fixed minor issues in documentation and examples.
-
-
Beast:
-
This version fixes some issues in the examples, and provides a new experimental socket which supports built-in timeouts on asynchronous operations.
-
New CppCon 2018 websocket chat example and presentation video.
-
For a complete list of changes, please view the official Release Notes.
-
-
CircularBuffer:
-
Use the empty base optimization for storing allocators that are empty and not final (Glen Fernandes).
-
-
Concept Check:
-
Removed dependency on mpl. (PR#14)
-
-
Core:
-
Implemented
boost::empty_value
, for library authors to conveniently leverage the Empty Base Optimization to store objects of potentially empty types (Glen Fernandes). This facility is now used in Boost.Beast, Boost.CircularBuffer, Boost.MultiArray, and more. -
Implemented
boost::quick_exit
to provide the C++11 standard library facilitystd::quick_exit
functionality (Peter Dimov). -
Reduced the number of statics in Lightweight Test, and employ lighter abort behavior for MSVC compilers upon failure to call
boost::report_errors
(Glen Fernandes).
-
-
Filesystem:
-
Fixed crashes in
boost::filesystem::copy
due to undefined behavior in the implementation. (PR#71) -
Fixed undefined behavior in
boost::filesystem::directory_iterator
implementation. (PR#77) -
Fixed compilation errors when using directory iterators with
BOOST_FOREACH
. -
Removed workarounds for older PGI C++ compiler versions to fix compilation on the newer ones. (PR#49)
-
Fixed MSVC warnings about narrowing conversions. (PR#44)
-
Flyweight:
-
Fixed some issues in GCC related to Boost.MPL placeholder expression handling.
-
Maintenance fixes.
-
-
Geometry:
-
Improvements
-
PR#486 Karney's solution of direct geodesic problem for internal use (thanks to Adeel Ahmad).
-
PR#490 Discrete Frechet and Hausdorff distance algorithms (thanks to Yaghyavardhan Singh Khangarot).
-
PR#496 New run-time and upgraded compile-time SRS transformation interfaces (undocumented for now due to potential interface changes).
-
-
-
GIL:
-
Integer:
-
boost/pending/integer_log2.hpp
header is deprecated and will be removed in future releases. Useboost/integer/integer_log2.hpp
instead.
-
-
LexicalCast:
-
Fixed sign-conversion warnings #8991.
-
Maintenance: dropped some dependencies on other Boost libraries, fixed build system warnings.
-
-
Math:
-
Add LambertW functions.
-
Update integration routines to support complex valued integrands and contour integrals.
-
Added the derivative of the Barycentric rational approximation.
-
Minor fixes to better support variable precision floating point types.
-
Removed use of deprecated Boost.Endian in favour of Predef.
-
Updated continued fraction and series evaluation code to support complex types.
-
Prevent logic error leading to infinite loop in toms748_solve. See #138.
-
Fix mean and standard_deviation for extreme_value_distribution. See #139.
-
Improve heuristics used in newton_raphson_iterate. See #145.
-
Fix result of
erf(NaN)
. See #141 #141. -
Big push to reduce GCC warnings. See #136 #136.
-
Refactor polynomial addition. See PR#132.
-
Fix for vxWorks having a
real
function in the global namespace. See PR#131. -
Improve
sinc
approximations and add better tests. -
Fix typo in Student's T hypothesis testing documentation, see #143.
-
-
Mp11:
-
Implemented the
mp_starts_with
facility (Glen Fernandes).
-
-
MultiArray:
-
Improve C++11 allocator model support including: Support for C++11 minimal allocators, support for stateful allocators, using the allocator for construction and destruction of the value type, and using the empty base optimization for storing empty or stateless allocators (Glen Fernandes).
-
-
Multi-index Containers:
-
Introduced an alternative terse key specification syntax for C++17 compliant environments.
-
-
Multiprecision:
-
Big update to better support variable precision types so that the precision of the result is always the largest of all the arguments.
-
Add support for allocators that are
final
in __cpp_int (Glen Fernandes). -
Removed use of deprecated Boost.Endian in favour of Predef.
-
Add support for
std::string_view
. -
Fixed minor bug in constant initialization. See #67.
-
Make assignment of non-finite value to
cpp_int
a runtime errors. See #58. -
Added typedefs for
cpp_bin_float_oct
andcpp_complex_oct
.
-
-
PolyCollection:
-
Added Boost.PolyCollection-specific versions of algorithms
std::for_each_n
andstd::sample
.
-
-
Preprocessor:
-
Supports the new C++ standard conforming preprocessor in VC++ 14.1, which is currently enabled by using the /experimental:preprocessor switch, in Visual Studio 2017 15.8 on up.
-
-
Stacktrace:
-
libbacktrace
usage was significantly improved.BOOST_STACKTRACE_USE_BACKTRACE
orboost_stacktrace_backtrace
users are encouraged to update:-
Memory consumprion dropped down.
-
Stack capturing became faster by an order of magnitude.
-
Exact location of the
backtrace.h
header now can be specified viaBOOST_STACKTRACE_BACKTRACE_INCLUDE_FILE
, to allowbacktrace.h
header usage on platforms and compilers where that header is unreachable otherwise (for example Ubuntu Xenial + Clang) #59.
-
-
Optimized stack capturing if
max_depth
is set (thanks to Jan Eisenhauer for the PR!) #67. -
Added
to_string(const stacktrace& )
functions for fast conversion of stacktraces tostd::string
#57. -
Maintenance: updated docs #62, tests updated.
-
-
System:
-
Boost.System is now header-only. A stub library is still built for compatibility, but linking to it is no longer necessary.
-
Even more functions have been marked
constexpr
. -
The destructor of
error_category
is nowprotected
and no longervirtual
. This is a potentially breaking change, but its impact is expected to be limited. -
error_category
now has a constructor that accepts a 64 bit identifier, enabling distinct category objects to compare equal. -
The constructors of
error_category
are nowprotected
. -
A non-allocating, nonthrowing overload of
message
has been added. -
A virtual function
failed
has been added, allowing categories for which success is not synonymous with 0. -
The deprecated
boost::system::throws
object has been removed. -
boost::throws()
is now deprecated and its use is discouraged. -
The constructor of
system_error
taking a singleerror_code
argument is nowexplicit
. -
system_error::code()
now returns by value.
-
-
Test:
-
Boost.test v3.9 see the Changes log for more details.
-
New feature:
-
Official support of header-only variant of Boost.Test with multiple translation units.
-
Now possible to manually add a test case by specifying its name, with
BOOST_TEST_CASE_NAME
-
Better support of
boost::exception
in the logs
-
-
-
Utility:
-
Added support for non-inheritable empty types to
boost::compressed_pair
by avoiding the empty base optimization for types which are declared as final (Glen Fernandes).
-
-
Variant:
-
Fixed issue with visibility. Now
boost::bad_visit
exception could cross the boundaries of shared library with hidden visibility and could be catched in other shared library with hidden visibility.
-
-
YAP:
-
Minor changes to support MSVC++ version 14.15 (Visual Studio 2017 version 15.8).
-
Doc fixes.
-
Discontinued Libraries
-
Signals (v1) is now removed. Its removal was announced in 1.68 and its deprecation was announced in 1.54. Boost 1.68 is the last release that provides this library. Users are encouraged to use Signals2 instead. The Boost community thanks Douglas Gregor for his work on Signals which served its users well and which also inspired Signals2.
Compilers Tested
Boost's primary test compilers are:
-
Linux:
-
Clang: 3.0, 4.0.1, 6.0.1
-
Clang, C++0x: 3.0
-
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1
-
Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1
-
Clang, C++17: 5.0.2, 6.0.1
-
GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1
-
GCC, C++0x: 4.4.7
-
GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1
-
GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1
-
GCC, C++17: 7.3.0, 8.0.1
-
Intel, C++14: 18.0
-
-
OS X:
-
Apple Clang: 9.0.0, 9.1.0, 10.0.0
-
Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0
-
Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0
-
Apple Clang, C++17: 9.1.0, 10.0.0
-
Apple Clang, C++1z: 9.0.0
-
Apple Clang, C++2a: 10.0.0
-
-
Windows:
-
GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
-
GCC, C++0x: 4.6.4
-
GCC, C++11: 4.7.3, 4.8.1, 4.9.3
-
GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
-
GCC, C++17: 7.1.0, 7.2.0, 7.3.0
-
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
-
-
FreeBSD:
-
Clang: 4.0.0
-
Clang, C++11: 4.0.0
-
Clang, C++14: 4.0.0
-
Clang, C++1z: 4.0.0
-
Boost's additional test compilers include:
-
Linux:
-
Clang: 3.0, 3.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1
-
Clang, C++0x: 3.0
-
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1
-
Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1, 7.0.0
-
Clang, C++17: 5.0.2, 6.0.1
-
GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1
-
GCC, C++0x: 4.4.7
-
GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1
-
GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0
-
GCC, C++17: 7.3.0, 8.0.1
-
Intel, C++14: 18.0
-
-
OS X:
-
Apple Clang: 9.0.0, 9.1.0, 10.0.0
-
Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0
-
Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0
-
Apple Clang, C++17: 9.1.0, 10.0.0
-
Apple Clang, C++1z: 9.0.0
-
Apple Clang, C++2a: 10.0.0
-
-
Windows:
-
GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
-
GCC, C++0x: 4.6.4
-
GCC, C++11: 4.7.3, 4.8.1, 4.9.3
-
GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
-
GCC, C++17: 7.1.0, 7.2.0, 7.3.0
-
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
-
-
FreeBSD:
-
Clang: 4.0.0
-
Clang, C++11: 4.0.0
-
Clang, C++14: 4.0.0
-
Clang, C++1z: 4.0.0
-
Acknowledgements
Daniel James, Vladimir Prus, Marshall Clow and Michael Caisse managed this release.