![]() |
Home | Libraries | People | FAQ | More |
move_iterator now correctly
handles proxy and const reference types.
unique_ptr changes:
unique_ptr is now
marked with the trivial_abi
attribute when the compiler supports it (Clang targeting Itanium
ABI), so it is passed and returned in registers. This changes the
calling convention so it must be consistent when passing across
translation units. Define BOOST_MOVE_DISABLE_TRIVIAL_ABI
to keep the old calling convention.
unique_ptr
bugs that were non-standard.
unique_ptr
in C++20 mode.
unique_ptr constructors
and operators that are not valid for the deleter or element type
do not participate in overload resolution in C++11 and later (C++17's
LWG 2801 and LWG 2905), so type traits give correct results.
unique_ptr
(Smart pointer unique_ptr).
has_trivial_destructor_after_move
is now true for unique_ptr
when the pointer type is trivially destructible and the deleter
is a reference or has a trivial destructor after move. Containers
such as boost::container::vector then do not destroy moved-from
unique_ptr elements.
hash_value
support for unique_ptr,
so that it can be used with boost::hash
and Boost.Unordered.
make_unique_for_overwrite,
the C++20 name of make_unique_definit.
operator<<) for unique_ptr,
without including <iosfwd>.
Forward declarations of std types cause compilation errors on some platforms #292
adaptive_merge
and adaptive_sort.
unique_ptr's
converting constructor taking the source by value in C++03 compilers
to allow simple conversions from convertible types returned by value.
BOOST_MOVE_BASE utility.
adl_move_swap
utility.
unique_ptr smart
pointer. Thanks to Howard Hinnant for his excellent unique_ptr emulation
code and testsuite.
move_if_noexcept
utility. Thanks to Antony Polukhin for the implementation.