public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Jonathan Wakely <jwakely.gcc@gmail.com>
To: Ken Matsui <kmatsui@cs.washington.edu>
Cc: gcc-patches <gcc-patches@gcc.gnu.org>,
	"libstdc++" <libstdc++@gcc.gnu.org>,
	 Jonathan Wakely <jwakely@redhat.com>,
	Ville Voutilainen <ville.voutilainen@gmail.com>
Subject: Re: [PATCH] libstdc++: use __bool_constant instead of integral_constant
Date: Sat, 8 Apr 2023 08:52:33 +0100	[thread overview]
Message-ID: <CAH6eHdSYporCgp6G9koqBYZ31POQ0ffv+2_ejoxvxv7NAtp6_Q@mail.gmail.com> (raw)
In-Reply-To: <20230323110608.42262-1-kmatsui@cs.washington.edu>

[-- Attachment #1: Type: text/plain, Size: 6048 bytes --]

This looks good, thanks, but we're too close to the gcc 13 release now, and
this isn't fixing any bugs. I'll push it after the release.


On Thu, 23 Mar 2023, 11:07 Ken Matsui via Libstdc++, <libstdc++@gcc.gnu.org>
wrote:

> In the type_traits header, both integral_constant<bool> and __bool_constant
> are used. This patch unifies those usages into __bool_constant.
>
> libstdc++-v3/ChangeLog:
>
>         * include/std/type_traits: Use __bool_constant instead of
>         integral_constant.
>
> Signed-off-by: Ken Matsui <kmatsui@cs.washington.edu>
> ---
>  libstdc++-v3/include/std/type_traits | 32 ++++++++++++++--------------
>  1 file changed, 16 insertions(+), 16 deletions(-)
>
> diff --git a/libstdc++-v3/include/std/type_traits
> b/libstdc++-v3/include/std/type_traits
> index 2bd607a8b8f..bc6982f9e64 100644
> --- a/libstdc++-v3/include/std/type_traits
> +++ b/libstdc++-v3/include/std/type_traits
> @@ -578,19 +578,19 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
>    /// is_enum
>    template<typename _Tp>
>      struct is_enum
> -    : public integral_constant<bool, __is_enum(_Tp)>
> +    : public __bool_constant<__is_enum(_Tp)>
>      { };
>
>    /// is_union
>    template<typename _Tp>
>      struct is_union
> -    : public integral_constant<bool, __is_union(_Tp)>
> +    : public __bool_constant<__is_union(_Tp)>
>      { };
>
>    /// is_class
>    template<typename _Tp>
>      struct is_class
> -    : public integral_constant<bool, __is_class(_Tp)>
> +    : public __bool_constant<__is_class(_Tp)>
>      { };
>
>    /// is_function
> @@ -784,7 +784,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
>    /// is_trivial
>    template<typename _Tp>
>      struct is_trivial
> -    : public integral_constant<bool, __is_trivial(_Tp)>
> +    : public __bool_constant<__is_trivial(_Tp)>
>      {
>
>  static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
>         "template argument must be a complete class or an unbounded
> array");
> @@ -793,7 +793,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
>    /// is_trivially_copyable
>    template<typename _Tp>
>      struct is_trivially_copyable
> -    : public integral_constant<bool, __is_trivially_copyable(_Tp)>
> +    : public __bool_constant<__is_trivially_copyable(_Tp)>
>      {
>
>  static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
>         "template argument must be a complete class or an unbounded
> array");
> @@ -802,7 +802,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
>    /// is_standard_layout
>    template<typename _Tp>
>      struct is_standard_layout
> -    : public integral_constant<bool, __is_standard_layout(_Tp)>
> +    : public __bool_constant<__is_standard_layout(_Tp)>
>      {
>
>  static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
>         "template argument must be a complete class or an unbounded
> array");
> @@ -817,7 +817,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
>      struct
>      _GLIBCXX20_DEPRECATED_SUGGEST("is_standard_layout && is_trivial")
>      is_pod
> -    : public integral_constant<bool, __is_pod(_Tp)>
> +    : public __bool_constant<__is_pod(_Tp)>
>      {
>
>  static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
>         "template argument must be a complete class or an unbounded
> array");
> @@ -831,7 +831,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
>      struct
>      _GLIBCXX17_DEPRECATED
>      is_literal_type
> -    : public integral_constant<bool, __is_literal_type(_Tp)>
> +    : public __bool_constant<__is_literal_type(_Tp)>
>      {
>
>  static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
>         "template argument must be a complete class or an unbounded
> array");
> @@ -840,13 +840,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
>    /// is_empty
>    template<typename _Tp>
>      struct is_empty
> -    : public integral_constant<bool, __is_empty(_Tp)>
> +    : public __bool_constant<__is_empty(_Tp)>
>      { };
>
>    /// is_polymorphic
>    template<typename _Tp>
>      struct is_polymorphic
> -    : public integral_constant<bool, __is_polymorphic(_Tp)>
> +    : public __bool_constant<__is_polymorphic(_Tp)>
>      { };
>
>  #if __cplusplus >= 201402L
> @@ -855,14 +855,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
>    /// @since C++14
>    template<typename _Tp>
>      struct is_final
> -    : public integral_constant<bool, __is_final(_Tp)>
> +    : public __bool_constant<__is_final(_Tp)>
>      { };
>  #endif
>
>    /// is_abstract
>    template<typename _Tp>
>      struct is_abstract
> -    : public integral_constant<bool, __is_abstract(_Tp)>
> +    : public __bool_constant<__is_abstract(_Tp)>
>      { };
>
>    /// @cond undocumented
> @@ -873,7 +873,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
>
>    template<typename _Tp>
>      struct __is_signed_helper<_Tp, true>
> -    : public integral_constant<bool, _Tp(-1) < _Tp(0)>
> +    : public __bool_constant<_Tp(-1) < _Tp(0)>
>      { };
>    /// @endcond
>
> @@ -1333,7 +1333,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
>    /// has_virtual_destructor
>    template<typename _Tp>
>      struct has_virtual_destructor
> -    : public integral_constant<bool, __has_virtual_destructor(_Tp)>
> +    : public __bool_constant<__has_virtual_destructor(_Tp)>
>      {
>
>  static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
>         "template argument must be a complete class or an unbounded
> array");
> @@ -1392,7 +1392,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
>    template<typename _Tp, typename _Up>
>      struct is_same
>  #ifdef _GLIBCXX_HAVE_BUILTIN_IS_SAME
> -    : public integral_constant<bool, __is_same(_Tp, _Up)>
> +    : public __bool_constant<__is_same(_Tp, _Up)>
>  #else
>      : public false_type
>  #endif
> @@ -1408,7 +1408,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
>    /// is_base_of
>    template<typename _Base, typename _Derived>
>      struct is_base_of
> -    : public integral_constant<bool, __is_base_of(_Base, _Derived)>
> +    : public __bool_constant<__is_base_of(_Base, _Derived)>
>      { };
>
>  #if __has_builtin(__is_convertible)
> --
> 2.40.0
>
>

  parent reply	other threads:[~2023-04-08  7:52 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-23  2:04 Ken Matsui
2023-03-23  9:28 ` Jonathan Wakely
2023-03-23 10:17   ` Ken Matsui
2023-03-23 10:46     ` Ville Voutilainen
2023-03-23 10:53       ` Ken Matsui
2023-03-23 10:56         ` Ville Voutilainen
2023-03-23 11:00           ` Ken Matsui
2023-03-23 11:06             ` Ken Matsui
2023-04-08  1:02               ` PING: " Ken Matsui
2023-04-08  7:52               ` Jonathan Wakely [this message]
2023-04-08 21:08                 ` Ken Matsui
2023-05-13  3:22                   ` Ken Matsui
2023-05-17 15:53                     ` Patrick Palka
2023-05-17 21:14                       ` Ken Matsui

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAH6eHdSYporCgp6G9koqBYZ31POQ0ffv+2_ejoxvxv7NAtp6_Q@mail.gmail.com \
    --to=jwakely.gcc@gmail.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jwakely@redhat.com \
    --cc=kmatsui@cs.washington.edu \
    --cc=libstdc++@gcc.gnu.org \
    --cc=ville.voutilainen@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).