Implement resolutions of LWG 2399, 2400 and 2401.
authorJonathan Wakely <jwakely@redhat.com>
Wed, 12 Nov 2014 19:41:36 +0000 (19:41 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Wed, 12 Nov 2014 19:41:36 +0000 (19:41 +0000)
commitd8af84e67b08377cf813eb4d4bbf8ae2e8226fa1
tree3e204d7b474dd6286194676bad64a5cf2b9c3f37
parent3e147937eac9eb182c419a4bd4f5155b341d7188
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.

From-SVN: r217442
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