Version 1.70.0
Version 1.70.0
April 12th, 2019 06:04 GMT
| Platform | File | SHA256 Hash |
|---|---|---|
| unix | boost_1_70_0.tar.bz2 | 430ae8354789de4fd19ee52f3b1f739e1fba576f0aded0897c3c2bc00fb38778 |
| boost_1_70_0.tar.gz | 882b48708d211a5f48e60b0124cf5863c1534cd544ecd0664bb534a4b5d506e9 | |
| windows | boost_1_70_0.7z | ae2bb1b35d1f238e72e3f819b42336f4bd27c9ed2092aab5d87818ccb0c9161a |
| boost_1_70_0.zip | 48f379b2e90dd1084429aae87d6bdbde9670139fa7569ee856c8c86dd366039d |
Known Issues
These are patches from library authors which were found too late to be fixed in the release. Be careful as they have not been through the normal testing process.
-
Fix moved-from executor in idle ping timeout (#1599)
New Libraries
Updated Libraries
-
Asio:
-
This release includes a number of new features, bug fixes, performance enhancements, and documentation improvements. Notable changes include:
-
Added the ability to use custom I/O executors with I/O objects (such as sockets).
-
Added a new
async_resultform with aninitiatestatic member function. -
Updated the Coroutines TS support and promoted it to the
asionamespace. -
Added a new
DynamicBuffer_v2concept which is CopyConstructible. -
Added a new
async_composefunction that simplifies the implementation of user-defined asynchronous operations. -
Added a
make_strandhelper function. -
Relaxed the completion condition type requirements to only require move-constructibility rather than copy-constructibility.
-
Added a constructor for
local::basic_endpointthat takes astring_view. -
Added the noexcept qualifier to various functions.
-
Added a new
BOOST_ASIO_DISABLE_VISIBILITYconfiguration#define. -
Enabled recycling of the memory used to type-erase a function object with the polymorphic executor.
-
Changed receive operations to return the correct number of bytes transferred when truncation (
error::message_size) occurs on a datagram-oriented socket. -
Fixed calculation of absolute timeout when the backend uses
pthread_cond_timedwait. -
Changed the range-based asynchronous connect operation to deduce the
EndpointSequenceiterator type. -
Fixed
buffer_sequence_beginandbuffer_sequence_endto prevent implicit conversion. -
Ensured SSL handshake errors are propagated to the peer before the local operation completes.
-
Suppressed the
eoferror on SSL shutdown as it actually indicates success. -
Added a fallback error code for when we OpenSSL produces an
SSL_ERROR_SYSCALLresult without an associated error. -
Changed composed asynchronous read and write operations to move buffer sequence objects.
-
Fixed a macOS-specific warning about the deprecation of
OSMemoryBarrier. -
Fixed compile errors that occur when using the composed read and write operations with MSVC 11.0.
-
Improved
dispatch,postanddeferdocumentation. -
Fixed a Windows-specific memory leak that may occur when
system_executoris used.
-
-
Consult the Revision History for further details.
-
-
Beast: BIG Update!!!
-
Some APIs have changed.
-
The reference shows a star ★ next to each new item.
-
Beast needs your help!
-
Tell Us how you or your company use Beast
-
Please report any bugs, feature requests, or general feedback
-
Join the C++ Slack Workspace for free and chat with us in the #beast and #boost channels
-
Don't forget to star the repository ⭐!
-
-
More tutorials, code like the pros!
-
Networking Refresher teaches you from the ground up.
-
Updated Asynchronous Echo example
-
Updated Detect SSL composed operation tutorial
-
websocket-chat-multi threaded chat server with a JavaScript browser client
-
-
basic_streamandtcp_streamoffer:-
Put the strand directly on the socket using P1322R0, no more
bind_executorat call sites!
-
Base classes
async_baseandstable_async_baseand handle all composed operation boilerplate for you. -
ssl_streamprovides a movable, assignable SSL stream with a flat write optimization. -
All asynchronous operations use Asio's
async_initiatefor efficient integration with Coroutines TS. -
⚡ faster compilation, define
BOOST_BEAST_SEPARATE_COMPILATIONand#include <boost/beast/src.hpp>in one of your .cpp files! -
See the full Release Notes for a complete list of changes.
-
-
Coroutine2:
-
#28: don't crash on pthread_cancel
-
-
DLL:
-
New macro BOOST_DLL_USE_STD_FS. Define it to
1to make the Boost.DLL use C++17'sstd::filesystem::path,std::system_errorandstd::error_code(#21). Note that exception types change fromboost::system::system_errortostd::system_error, so make sure to updatecatches. -
Significant rewrite of the dynamic loadable detection and decoration logic. More precise errors are now reported in case of loading failures. Added
shared_library::decorate()function that returns a decorated path to the library without doing any platform related queries and detections. Prefer usingshared_library::loadandshared_libraryconstructors for better results (many thanks to Loïc Touraine for the work PR#23). -
CI hardening, docs updates, typos fixes, cleanups and many portability fixes.
-
-
Filesystem:
-
Fixed a few instances of dereferencing
std::string::end()inpathimplementation. -
Fixed program termination in case of out of memory condition in directory iterators constructors and operations accepting a reference to
error_code. (#58) -
Fixed possible linking errors caused by missing definitions of static members of
path. (#12759) -
Fixed possible use of uninitialized data in directory iterator increment operation on Linux.
-
Added support for movability to directory iterators.
-
Added file status query overloads for
directory_entry. This avoids a relatively expensive OS query when file status is requested for a result of dereferencing a directory iterator. (PR#55) -
Reworked
current_pathandread_symlinkimplementation to avoid possible memory exhaustion on broken or tampered with filesystems. The functions now have an internal limit of the path size they will accept from the OS, which is currently 16 MiB. -
Increased the size of the internal buffer used by
copy_file.
-
-
Log:
-
New features:
-
Added support for generating another log file name before collecting the file in the text file sink backend. This allows to combine appending to an existing log file with timestamps and file counters in log filenames, and, consequently, file collection in general.
-
-
See changelog for more details.
-
-
Math:
-
New features:
-
Add Lanczos smoothing derivatives
-
Move
numerical_differentiation.hppfromboost/math/tools/toboost/math/differentiation/finite_difference.hpp. -
Add mean, variance, skewness, kurtosis, median, Gini coefficient, and median absolute deviation to
tools/univariate_statistics.hpp. -
Add correlation coefficients and covariance to
tools/bivariate_statistics.hpp -
Add absolute Gini coefficient, Hoyer sparsity, oracle SNR, and the M[sub 2]M[sub 4] SNR estimator to
tools/signal_statistics.hpp. -
Add total variation, l0, l1, l2, and sup norms, as well as corresponding distance functions to
tools/norms.hpp. -
Add move constructors for polynomials, support complex coefficients, add
.prime()and.integrate()methods. -
Add
quadratic_rootstotools/roots.hpp. -
Add support for complex-valued functions to Newton's method in
roots.hpp. -
Add Catmull-Rom interpolator.
-
-
-
Mp11:
-
Renamed
mp_invoketomp_invoke_q -
Added
mp_similar -
Added
mp_set_union,mp_set_intersection,mp_set_difference -
Added
mp_not_fn -
Added
mp_transform_first,mp_transform_second,mp_transform_third -
Added
mp_filter -
Added
mp_eval_if_not,mp_eval_or,mp_valid_q -
Added
mp_back,mp_pop_back
-
-
Multi-index Containers:
-
size_typeanddifference_typeare now defined as the allocator's same-named types. This will not make any difference in the vast majority of cases, but allows for some degree of control of resulting internal structures via user-defined allocator types (see issue #17 for motivation). For the moment being, this change is not documented in the reference section (i.e., it has semi-official status). -
Maintenance work.
-
-
Multiprecision:
-
Fix various conversion issues in the traits classes, check for compatibility with Boost.Optional.
-
Prevent instantiation of
std::numeric_limitson any old type when checking for convertibility. See #98. -
Update variable precision code to account for arbitrary precision integers. See #103.
-
Add support for XML serialization archives.
-
Add more overloads for special functions which are better handled natively by MPFR.
-
Fixed bug in generic
expimplementation which could cause invariant failure. -
Fixed generic conversion from float to integer to avoid undefined behaviour. See #110.
-
-
PolyCollection:
-
Improved handling of stateful allocators and allocator propagation traits, after an error reported by Billy O'Neal (PR#9).
-
Fixed a potentially serious bug with an internal cache structure.
-
-
Spirit:
-
Removed use of deprecated
boost/detail/iterator.hppheader. PR#432 -
X3
-
Integer parsers should now handle user defined types. PR#429
-
Note: The
check_overflowtrait default implementation now relies onstd::numeric_limits<T>::is_boundedinstead ofboost::integer_traits<T>::is_integral. -
Removed sequence into plain parsing. Now it triggers a compile time error instead of silently parsing the the sequence and taking the last value as a result. PR#439
-
If you were using it to workaround bugs in attribute transformation - they should not be needed anymore as of this release.
-
The integer value parser now respects
std::numeric_limits<T>::digits10value. PR#469 -
Fixed underflow check for a
(Min % Base) == 0corner case. PR#469 -
Fixed an output value on overflow of IgnoreOverflowDigits=true integer parser. PR#470
-
Container attribute elements were copyied, but not moved. PR#472
-
Special handling of references in
transform_attributewas removed. PR#480
-
-
V2
-
Qi
-
Added static asserts for rule skipper type problems. PR#427
-
The
check_overflowtrait default implementation now relies onstd::numeric_limits<T>::is_boundedinstead ofboost::integer_traits<T>::is_integralPR#429 -
Integer parsers should now handle user defined types. PR#429
-
Note: The
check_overflowtrait default implementation now relies onstd::numeric_limits<T>::is_boundedinstead ofboost::integer_traits<T>::is_integral. -
The
pre_transform,post_transform, andfail_transformutility functions were removed in favor of directly usingpre/post/failof the transform trait. PR#467 -
The integer value parser now respects
std::numeric_limits<T>::digits10value. PR#469 -
Fixed underflow check for a
(Min % Base) == 0corner case. PR#469 -
Fixed an output value on overflow of IgnoreOverflowDigits=true integer parser. PR#470
-
Special handling of references in
transform_attributewas removed. PR#480
-
-
Lex
-
Fixed UB in default constructor of lexer with user specified token type. PR#420
-
-
-
Stacktrace:
-
Build fix for iOS 32-bit ARM (many thanks to Ivan Ponomarev for providing the fix PR#70)
-
Fixed multiple typos, warnings and updated the docs.
-
-
Test:
-
Boost.test v3.10 see the Changes log for more details.
-
Breaking changes:
-
Boost.Test
minimal.hppis now showing a deprecation warning, -
Change in floating point comparison may fail tests that were silently not using the floating point comparison logic prior to this release,
-
Internal API change to
unit_test_log_formatter, see detailed change log,
-
-
New feature:
-
Floating point comparison has been extended to capture non-floating point and arithmetic operands: expressions like
BOOST_TEST(3.0001 == 3)now use floating point support of Boost.Test, -
Custom datasets are not required to declare the
sampletype field anymore, -
Extending template test cases from
std::tupleto any variadic definition, -
Windows support for timed tests,
-
Timed test on test-suites,
-
Removed dependency to Boost.Timer,
-
New macro
BOOST_TEST_INFO_SCOPEfor scoped context declaration, -
Improved
BOOST_TEST_CONTEXTsyntax
-
-
-
TypeIndex:
-
Support for the GHS C++ compiler added (many thanks to Brandon Castellano for providing the patch PR#28)
-
Optimized string and type comparisons (many thanks to Andrey Semashev for providing the patch PR#23)
-
Fixed clang-win compilation (many thanks to Peter Dimov for providing the patch PR#25)
-
CI hardening.
-
-
TypeTraits:
-
Added is_bounded_array and is_unbounded_array (Glen Fernandes).
-
Added copy_reference and copy_cv_ref (Glen Fernandes).
-
Improved support for msvc with /clr option.
-
Misc compiler compatibility fixes.
-
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, 7.0.0, 8.0.0
-
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, 8.0.0
-
Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0
-
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, 7.0.0, 8.0.0
-
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, 8.0.0
-
Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0
-
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.
