New libraries
Two additions: PolyCollection for fast polymorphic containers and Stacktrace for portable backtrace capture.
Two additions: PolyCollection for fast polymorphic containers and Stacktrace for portable backtrace capture.
Added hardware transactional memory and NUMA support, plus optimized allocate_shared/make_shared for arrays.
15 new dependencies across 11 libraries and 2 removals across 2 libraries.
Fixed race condition in asio epoll, corrected condition_variable on Windows, and numerous thread bugs.
Enabled constexpr and variadic templates, added BOOST_NO_CXX11_POINTER_TRAITS, BOOST_FALLTHROUGH, and improved test fixture macros.
August 21st, 2017 20:50 GMT
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.
Combined patch for fixes to issues: boost_1_65_0.patch.
Use patch -p1 < boost_1_65_0.patch from the root of the boost repo to
apply. Or you can apply the patches individually below.
boost::condition_variable on Windows:
constexpr
and variadic templates with recent MSVC versions.
auto_ptr.
asio_handler_is_continuation
result in reactive async_accept
implementation.
poll.h
rather than sys/poll.h on some modern POSIX platforms
(#12419).
__thread
keyword extension for android/clang/x86 targets.
BOOST_NO_CXX11_POINTER_TRAITS,
BOOST_NO_CXX17_FOLD_EXPRESSIONS,
BOOST_NO_CXX17_INLINE_VARIABLES,
BOOST_NO_CXX17_STRUCTURED_BINDINGS
defect detection.
pointer_traits
for C++03 and higher, that implements P0653r0
(Glen Fernandes). This implementation is now used by Align, Circular
Buffer, Fiber, Geometry, among other libraries.
BOOST_TEST_GT
and BOOST_TEST_GE
to Lightweight Test.
fusion::vector,
fusion::deque, fusion::map,
fusion::set, and fusion::tuple.
(#12986)
char16_t,
char32_t, u16string, u32string.
phoenix::erase with associative container
returns iterator in C++11 mode. (#7423)
std::set and std::multiset
should be worked with predefined lazy functions. (PR#52)
phoenix::random_shuffle in C++17. (PR#53)
BOOST_PREDEF_WORKAROUND
and BOOST_PREDEF_TESTED_AT
macros for defect workarounds and detection.
boost::optional,
thanks to Ed Catmur (#7495,
PR#18)
eval(),
exec(),
and exec_statement() now allow char
const *
arguments, in addition to boost::python::str.
boost::python::numeric API has been removed, as
it is being obsoleted by boost::python::numpy.
atomic_shared_ptr,
that provides thread-safe atomic pointer operations over shared_ptr. (Peter Dimov)
local_shared_ptr,
where the reference count is updated with non-atomic operations.
(Peter Dimov)
allocate_shared
and make_shared for
arrays. (Glen Fernandes)
BOOST_TEST
BOOST_TEST_GLOBAL_FIXTURE
for global fixtures and BOOST_TEST_GLOBAL_CONFIGURATION
for global initialization (compile time configuration).
setup
/ teardown
member function) which enables better teardown time checks
BOOST_GLOBAL_FIXTURE
in favor of BOOST_TEST_GLOBAL_FIXTURE
and BOOST_TEST_GLOBAL_CONFIGURATION
(see above)
unordered_set
and unordered_multiset,
and forunordered_map
and unordered_multimap.
This is required for C++17, so that nodes can be merged and extracted
between compatible containers.
allocator_traits
construct and destroy on C++11 compilers, using
piecewise pair construction when appropriate.
boost::get
was added by Albert Sverdlov #13018.
<boost/variant/polymorphic_get.hpp>
header was added by Adam Badura #13037.
boost::make_variant_over was fixed and
now works with views and other Forward Sequences (thanks to Mikhail
Maksimov for the fix) #8554, #10041, PR#35.
Boost's primary test compilers are:
Boost's additional test compilers include:
Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release.
Boost is publicly released three times a year in April, August, and December. Each release has updates to existing libraries, and any new libraries that have passed the rigorous acceptance process.