[PATCH] LWG 2899 - Make is_move_constructible correct for unique_ptr

Jonathan Wakely jwakely@redhat.com
Fri May 17 23:08:00 GMT 2019


On 14/05/19 12:17 +0100, Jonathan Wakely wrote:
>	* include/bits/unique_ptr.h (__uniq_ptr_impl): Add move constructor,
>	move assignment operator.
>	(__uniq_ptr_impl::release(), __uniq_ptr_impl::reset(pointer)): Add.
>	(__uniq_ptr_data): New class template with conditionally deleted
>	special members.
>	(unique_ptr, unique_ptr<T[], D>): Change type of data member from
>	__uniq_ptr_impl<T, D> to __uniq_ptr_data<T, D>. Define move
>	constructor and move assignment operator as defaulted.
>	(unique_ptr::release(), unique_ptr<T[], D>::release()): Forward to
>	__uniq_ptr_impl::release().
>	(unique_ptr::reset(pointer), unique_ptr<T[], D>::reset<U>(U)): Forward
>	to __uniq_ptr_impl::reset(pointer).
>	* python/libstdcxx/v6/printers.py (UniquePointerPrinter.__init__):
>	Check for new __uniq_ptr_data type.
>	* testsuite/20_util/unique_ptr/dr2899.cc: New test.

This updates the Xmethod for the new base class.

Tested x86_64-linux, committed to trunk.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch.txt
Type: text/x-patch
Size: 2754 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/libstdc++/attachments/20190517/93c44de7/attachment.bin>


More information about the Libstdc++ mailing list