LWG 2996 add rvalue overloads for shared_ptr aliasing and casting
authorJonathan Wakely <jwakely@redhat.com>
Thu, 23 May 2019 21:41:02 +0000 (22:41 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Thu, 23 May 2019 21:41:02 +0000 (22:41 +0100)
commitfb3fc4bded8d934b603a7f07ab3cfe3b644ee971
tree67451d2c9a410bc5b50675eb33d8405ddc6aa134
parent9a0af7e3fb425ae2c0e044d044feb81ef493ce2c
LWG 2996 add rvalue overloads for shared_ptr aliasing and casting

* doc/xml/manual/intro.xml: Document LWG DR 2996 change.
* doc/html/*: Regenerate.
* include/bits/shared_ptr.h (shared_ptr(shared_ptr&&, T*)): Add
rvalue aliasing constructor.
(static_pointer_cast, const_pointer, dynamic_pointer_cast)
(reinterpret_pointer_cast): Add overloads taking rvalues.
* include/bits/shared_ptr_base.h (__shared_ptr(__shared_ptr&&, T*)):
Add rvalue aliasing constructor.
* testsuite/20_util/shared_ptr/casts/1.cc: Change "compile" test to
"run" and check return values as well as types.
* testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
* testsuite/20_util/shared_ptr/casts/rval.cc: New test.
* testsuite/20_util/shared_ptr/cons/alias-rval.cc: New test.
* testsuite/20_util/shared_ptr/cons/alias.cc: Remove unused return
values.

From-SVN: r271583
libstdc++-v3/ChangeLog
libstdc++-v3/doc/html/manual/api.html
libstdc++-v3/doc/html/manual/bugs.html
libstdc++-v3/doc/xml/manual/intro.xml
libstdc++-v3/include/bits/shared_ptr.h
libstdc++-v3/include/bits/shared_ptr_base.h
libstdc++-v3/testsuite/20_util/shared_ptr/casts/1.cc
libstdc++-v3/testsuite/20_util/shared_ptr/casts/reinterpret.cc
libstdc++-v3/testsuite/20_util/shared_ptr/casts/rval.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias-rval.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias.cc