版本 1.70.0
版本 1.70.0
2019 年 4 月 12 日 06:04 GMT
平台 | 文件 | SHA256 哈希值 |
---|---|---|
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 |
新库
更新的库
-
Asio:
-
此版本包含许多新功能、错误修复、性能增强和文档改进。值得注意的更改包括
-
增加了将自定义 I/O 执行器与 I/O 对象(例如套接字)一起使用的能力。
-
添加了一个新的带有
initiate
静态成员函数的async_result
形式。 -
更新了 Coroutines TS 支持并将其提升到
asio
命名空间。 -
添加了一个新的
DynamicBuffer_v2
概念,它是 CopyConstructible 的。 -
添加了一个新的
async_compose
函数,简化了用户定义的异步操作的实现。 -
添加了一个
make_strand
辅助函数。 -
放宽了完成条件类型要求,仅需要移动构造性而不是复制构造性。
-
为
local::basic_endpoint
添加了一个接受string_view
的构造函数。 -
为各种函数添加了 noexcept 限定符。
-
添加了一个新的
BOOST_ASIO_DISABLE_VISIBILITY
配置#define
。 -
启用了回收用于类型擦除多态执行器函数对象的内存。
-
更改了接收操作,以便在数据报导向的套接字上发生截断 (
error::message_size
) 时返回传输的正确字节数。 -
修复了后端使用
pthread_cond_timedwait
时绝对超时的计算。 -
更改了基于范围的异步连接操作,以推导
EndpointSequence
迭代器类型。 -
修复了
buffer_sequence_begin
和buffer_sequence_end
以防止隐式转换。 -
确保 SSL 握手错误在本地操作完成之前传播到对等方。
-
抑制了 SSL 关闭时的
eof
错误,因为它实际上表示成功。 -
添加了一个回退错误代码,用于当 OpenSSL 生成
SSL_ERROR_SYSCALL
结果而没有关联错误时。 -
更改了组合的异步读取和写入操作以移动缓冲区序列对象。
-
修复了 macOS 特定的关于
OSMemoryBarrier
弃用的警告。 -
修复了在使用 MSVC 11.0 的组合读取和写入操作时发生的编译错误。
-
改进了
dispatch
、post
和defer
文档。 -
修复了使用
system_executor
时可能发生的 Windows 特定的内存泄漏。
-
-
有关更多详细信息,请查阅 修订历史。
-
-
Beast: 重大更新!!!
-
一些 API 已经更改。
-
参考 在每个新项目旁边显示一个星号 ★。
-
Beast 需要您的帮助!
-
告诉我们 您或您的公司如何使用 Beast
-
请 报告 任何错误、功能请求或一般反馈
-
加入免费的 C++ Slack 工作区,并在 #beast 和 #boost 频道中与我们聊天
-
不要忘记 为仓库点赞 ⭐!
-
-
更多教程,像专业人士一样编码!
-
网络基础知识回顾 从头开始教您。
-
更新的 异步回显 示例
-
更新的 检测 SSL 组合操作教程
-
websocket-chat-multi 多线程聊天服务器,带有 JavaScript 浏览器客户端
-
-
基类
async_base
和stable_async_base
并且为您处理所有组合操作样板代码。 -
ssl_stream
提供了一个可移动、可赋值的 SSL 流,具有平面写入优化。 -
所有异步操作都使用 Asio 的
async_initiate
以便与 Coroutines TS 有效集成。 -
⚡ 更快的编译速度,在您的一个 .cpp 文件中定义
BOOST_BEAST_SEPARATE_COMPILATION
并#include <boost/beast/src.hpp>
! -
有关更改的完整列表,请参阅完整的 发行说明。
-
-
Coroutine2:
-
#28: don't crash on pthread_cancel
-
-
DLL:
-
New macro BOOST_DLL_USE_STD_FS. Define it to
1
to make the Boost.DLL use C++17'sstd::filesystem::path
,std::system_error
andstd::error_code
(#21). Note that exception types change fromboost::system::system_error
tostd::system_error
, so make sure to updatecatch
es. -
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::load
andshared_library
constructors 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()
inpath
implementation. -
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_path
andread_symlink
implementation 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.hpp
fromboost/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_roots
totools/roots.hpp
. -
Add support for complex-valued functions to Newton's method in
roots.hpp
. -
Add Catmull-Rom interpolator.
-
-
-
Mp11:
-
Renamed
mp_invoke
tomp_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_type
anddifference_type
are 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_limits
on 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
exp
implementation 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.hpp
header. PR#432 -
X3
-
Integer parsers should now handle user defined types. PR#429
-
Note: The
check_overflow
trait default implementation now relies onstd::numeric_limits<T>::is_bounded
instead 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>::digits10
value. PR#469 -
Fixed underflow check for a
(Min % Base) == 0
corner 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_attribute
was removed. PR#480
-
-
V2
-
Qi
-
Added static asserts for rule skipper type problems. PR#427
-
The
check_overflow
trait default implementation now relies onstd::numeric_limits<T>::is_bounded
instead ofboost::integer_traits<T>::is_integral
PR#429 -
Integer parsers should now handle user defined types. PR#429
-
Note: The
check_overflow
trait default implementation now relies onstd::numeric_limits<T>::is_bounded
instead ofboost::integer_traits<T>::is_integral
. -
The
pre_transform
,post_transform
, andfail_transform
utility functions were removed in favor of directly usingpre
/post
/fail
of the transform trait. PR#467 -
The integer value parser now respects
std::numeric_limits<T>::digits10
value. PR#469 -
Fixed underflow check for a
(Min % Base) == 0
corner case. PR#469 -
Fixed an output value on overflow of IgnoreOverflowDigits=true integer parser. PR#470
-
Special handling of references in
transform_attribute
was 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.hpp
is 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
sample
type field anymore, -
Extending template test cases from
std::tuple
to any variadic definition, -
Windows support for timed tests,
-
Timed test on test-suites,
-
Removed dependency to Boost.Timer,
-
New macro
BOOST_TEST_INFO_SCOPE
for scoped context declaration, -
Improved
BOOST_TEST_CONTEXT
syntax
-
-
-
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.
-
测试的编译器
Boost 的主要测试编译器是
-
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 的其他测试编译器包括
-
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
-
鸣谢
Daniel James、Vladimir Prus、Marshall Clow 和 Michael Caisse 管理了此版本。