diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2019-06-14 15:03:20 +0100 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2019-06-14 15:03:20 +0100 |
commit | cc28d23496b014ae413a03923404fd45b1ba5f28 (patch) | |
tree | 316fb18aeb472601a96ff9b3889ea7849428ad42 | |
parent | c68c4c982d6f762bd1938b90f6cb5f210d509939 (diff) | |
download | gcc-cc28d23496b014ae413a03923404fd45b1ba5f28.zip gcc-cc28d23496b014ae413a03923404fd45b1ba5f28.tar.gz gcc-cc28d23496b014ae413a03923404fd45b1ba5f28.tar.bz2 |
Disable -Wctor-dtor-privacy warnings for some standard types
* include/experimental/type_traits (experimental::nonesuch): Use
pragma to disable -Wctor-dtor-privacy warnings.
* include/std/type_traits (__is_convertible_helper<From, To, false>)
(__is_nt_convertible_helper<From, To, false>, __nonesuch): Likewise.
From-SVN: r272289
-rw-r--r-- | libstdc++-v3/ChangeLog | 5 | ||||
-rw-r--r-- | libstdc++-v3/include/experimental/type_traits | 3 | ||||
-rw-r--r-- | libstdc++-v3/include/std/type_traits | 10 |
3 files changed, 17 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 1c63033..9eb70fc 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,10 @@ 2019-06-14 Jonathan Wakely <jwakely@redhat.com> + * include/experimental/type_traits (experimental::nonesuch): Use + pragma to disable -Wctor-dtor-privacy warnings. + * include/std/type_traits (__is_convertible_helper<From, To, false>) + (__is_nt_convertible_helper<From, To, false>, __nonesuch): Likewise. + * include/std/version (__cpp_lib_bind_front): Add missing macro. 2019-06-12 Jonathan Wakely <jwakely@redhat.com> diff --git a/libstdc++-v3/include/experimental/type_traits b/libstdc++-v3/include/experimental/type_traits index 2403bd2..464c8d2 100644 --- a/libstdc++-v3/include/experimental/type_traits +++ b/libstdc++-v3/include/experimental/type_traits @@ -227,6 +227,8 @@ inline namespace fundamentals_v2 template<typename...> using void_t = void; +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" struct __nonesuchbase {}; struct nonesuch : private __nonesuchbase { @@ -234,6 +236,7 @@ struct nonesuch : private __nonesuchbase nonesuch(nonesuch const&) = delete; void operator=(nonesuch const&) = delete; }; +#pragma GCC diagnostic pop template<template<typename...> class _Op, typename... _Args> using is_detected diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits index e53d3c8..7d4deb1 100644 --- a/libstdc++-v3/include/std/type_traits +++ b/libstdc++-v3/include/std/type_traits @@ -1448,6 +1448,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION typedef typename is_void<_To>::type type; }; +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" template<typename _From, typename _To> class __is_convertible_helper<_From, _To, false> { @@ -1466,7 +1468,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION public: typedef decltype(__test<_From, _To>(0)) type; }; - +#pragma GCC diagnostic pop /// is_convertible template<typename _From, typename _To> @@ -1481,6 +1483,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION : is_void<_To> { }; +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" template<typename _From, typename _To> class __is_nt_convertible_helper<_From, _To, false> { @@ -1499,6 +1503,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION public: using type = decltype(__test<_From, _To>(0)); }; +#pragma GCC diagnostic pop // is_nothrow_convertible for C++11 template<typename _From, typename _To> @@ -2894,12 +2899,15 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __call_is_nothrow_<_Fn, _Args...>>::type { }; +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" struct __nonesuchbase {}; struct __nonesuch : private __nonesuchbase { ~__nonesuch() = delete; __nonesuch(__nonesuch const&) = delete; void operator=(__nonesuch const&) = delete; }; +#pragma GCC diagnostic pop #if __cplusplus >= 201703L # define __cpp_lib_is_invocable 201703 |