Implement resolutions of LWG 2399, 2400 and 2401.
commit745a600a13ef0c29258a644a87a81f8959823161
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 12 Nov 2014 19:41:36 +0000 (12 19:41 +0000)
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 12 Nov 2014 19:41:36 +0000 (12 19:41 +0000)
tree3e204d7b474dd6286194676bad64a5cf2b9c3f37
parent5626bcb92ef6a3dbb5cd676e2363743e01cf0e66
Implement resolutions of LWG 2399, 2400 and 2401.

* include/bits/shared_ptr.h (shared_ptr, weak_ptr): Define
_Convertible alias template to simplify constraints.
(shared_ptr(unique_ptr<TD>&&)): Constrain (LWG 2399).
* include/bits/shared_ptr_base.h: Likewise.
(_Sp_counted_deleter::_M_get_deleter()): Use addressof (LWG 2400).
* include/std/functional (function::operator=(nullptr_t)): Add
noexcept (LWG 2401).
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
* testsuite/20_util/shared_ptr/cons/void_neg.cc: Adjust dg-error.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217442 138bc75d-0d04-0410-961f-82ee72b054a4
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/shared_ptr.h
libstdc++-v3/include/bits/shared_ptr_base.h
libstdc++-v3/include/std/functional
libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc
libstdc++-v3/testsuite/20_util/shared_ptr/cons/void_neg.cc