diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2016-08-03 20:10:06 +0100 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2016-08-03 20:10:06 +0100 |
commit | c7fdbdcdbd9f2ea3393ff6b3714394fa3922ab09 (patch) | |
tree | 79a6fee4744e298c205cdd0a07507594751c8c63 | |
parent | f21f4463adb78df847273f328ac163461d4d1617 (diff) | |
download | gcc-c7fdbdcdbd9f2ea3393ff6b3714394fa3922ab09.zip gcc-c7fdbdcdbd9f2ea3393ff6b3714394fa3922ab09.tar.gz gcc-c7fdbdcdbd9f2ea3393ff6b3714394fa3922ab09.tar.bz2 |
Define feature-test macro for std::enable_shared_from_this
* include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
Define feature-test macro.
* testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
for the macro.
From-SVN: r239094
-rw-r--r-- | libstdc++-v3/ChangeLog | 5 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/shared_ptr_base.h | 1 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/reinit.cc | 4 |
3 files changed, 10 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 2c23c4b..d116231 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,10 @@ 2016-08-03 Jonathan Wakely <jwakely@redhat.com> + * include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this): + Define feature-test macro. + * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test + for the macro. + * include/bits/shared_ptr.h (shared_ptr::weak_type): Define. * include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define. * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error. diff --git a/libstdc++-v3/include/bits/shared_ptr_base.h b/libstdc++-v3/include/bits/shared_ptr_base.h index 93ce901..2698ba4 100644 --- a/libstdc++-v3/include/bits/shared_ptr_base.h +++ b/libstdc++-v3/include/bits/shared_ptr_base.h @@ -1472,6 +1472,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION void _M_assign(_Tp* __ptr, const __shared_count<_Lp>& __refcount) noexcept { +#define __cpp_lib_enable_shared_from_this 201603 if (use_count() == 0) { _M_ptr = __ptr; diff --git a/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/reinit.cc b/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/reinit.cc index 4ce23bc..1cf9148 100644 --- a/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/reinit.cc +++ b/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/reinit.cc @@ -20,6 +20,10 @@ #include <memory> #include <testsuite_hooks.h> +#if __cpp_lib_enable_shared_from_this < 201603 +# error "__cpp_lib_enable_shared_from_this < 201603" +#endif + struct X : public std::enable_shared_from_this<X> { }; bool |