diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2016-10-10 12:44:05 +0100 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2016-10-10 12:44:05 +0100 |
commit | 208b8b69b660382eed5b1550f0ee945c614a6bb4 (patch) | |
tree | 46f9c2a44c23b9d98e738c2cf06ffeacbd6b5012 /libstdc++-v3 | |
parent | 30102051a53033464e4eff65fcfb7aafd45e9f1a (diff) | |
download | gcc-208b8b69b660382eed5b1550f0ee945c614a6bb4.zip gcc-208b8b69b660382eed5b1550f0ee945c614a6bb4.tar.gz gcc-208b8b69b660382eed5b1550f0ee945c614a6bb4.tar.bz2 |
Add noexcept to enable_shared_from_this::weak_from_this
* include/bits/shared_ptr.h (enable_shared_from_this::weak_from_this):
Add noexcept.
* include/bits/shared_ptr_base.h
(__enable_shared_from_this::weak_from_this): Likewise.
* testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
Test exception-specification of weak_from_this.
From-SVN: r240917
Diffstat (limited to 'libstdc++-v3')
-rw-r--r-- | libstdc++-v3/ChangeLog | 9 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/shared_ptr.h | 4 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/shared_ptr_base.h | 4 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc | 3 |
4 files changed, 16 insertions, 4 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 187c59e..1105afd 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,12 @@ +2016-10-10 Jonathan Wakely <jwakely@redhat.com> + + * include/bits/shared_ptr.h (enable_shared_from_this::weak_from_this): + Add noexcept. + * include/bits/shared_ptr_base.h + (__enable_shared_from_this::weak_from_this): Likewise. + * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc: + Test exception-specification of weak_from_this. + 2016-10-07 Jonathan Wakely <jwakely@redhat.com> * doc/xml/manual/status_cxx1998.xml: Improve documentation of diff --git a/libstdc++-v3/include/bits/shared_ptr.h b/libstdc++-v3/include/bits/shared_ptr.h index b2523b8..cbcb3b3 100644 --- a/libstdc++-v3/include/bits/shared_ptr.h +++ b/libstdc++-v3/include/bits/shared_ptr.h @@ -593,11 +593,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #if __cplusplus > 201402L || !defined(__STRICT_ANSI__) // c++1z or gnu++11 #define __cpp_lib_enable_shared_from_this 201603 weak_ptr<_Tp> - weak_from_this() + weak_from_this() noexcept { return this->_M_weak_this; } weak_ptr<const _Tp> - weak_from_this() const + weak_from_this() const noexcept { return this->_M_weak_this; } #endif diff --git a/libstdc++-v3/include/bits/shared_ptr_base.h b/libstdc++-v3/include/bits/shared_ptr_base.h index 4ae2668..e8820a1 100644 --- a/libstdc++-v3/include/bits/shared_ptr_base.h +++ b/libstdc++-v3/include/bits/shared_ptr_base.h @@ -1562,11 +1562,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #if __cplusplus > 201402L || !defined(__STRICT_ANSI__) // c++1z or gnu++11 __weak_ptr<_Tp, _Lp> - weak_from_this() + weak_from_this() noexcept { return this->_M_weak_this; } __weak_ptr<const _Tp, _Lp> - weak_from_this() const + weak_from_this() const noexcept { return this->_M_weak_this; } #endif diff --git a/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc b/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc index b5ebb81..9c33396 100644 --- a/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc +++ b/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc @@ -26,6 +26,9 @@ struct X : public std::enable_shared_from_this<X> { }; +static_assert( noexcept(std::declval<X&>().weak_from_this()) ); +static_assert( noexcept(std::declval<const X&>().weak_from_this()) ); + void test01() { |