mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-18 04:19:00 +08:00
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
This commit is contained in:
parent
c68c4c982d
commit
cc28d23496
@ -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>
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user