On Fri, 1 Sept 2023 at 14:01, Ken Matsui <kmat...@cs.washington.edu> wrote: > > Ping for the use of __is_signed built-in. > > Sincerely, > Ken Matsui > > > On Wed, Jul 12, 2023 at 6:45 PM Ken Matsui <kmat...@gcc.gnu.org> wrote: > > > > This patch lets libstdc++ use new built-in trait __is_signed.
OK for trunk after the built-in is approved for the compiler. > > > > libstdc++-v3/ChangeLog: > > > > * include/std/type_traits (is_signed): Use __is_signed built-in > > trait. > > (is_signed_v): Likewise. > > > > Signed-off-by: Ken Matsui <kmat...@gcc.gnu.org> > > --- > > libstdc++-v3/include/std/type_traits | 15 ++++++++++++++- > > 1 file changed, 14 insertions(+), 1 deletion(-) > > > > diff --git a/libstdc++-v3/include/std/type_traits > > b/libstdc++-v3/include/std/type_traits > > index 0e7a9c9c7f3..23ab5a4b1e5 100644 > > --- a/libstdc++-v3/include/std/type_traits > > +++ b/libstdc++-v3/include/std/type_traits > > @@ -865,6 +865,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION > > : public __bool_constant<__is_abstract(_Tp)> > > { }; > > > > + /// is_signed > > +#if __has_builtin(__is_signed) > > + template<typename _Tp> > > + struct is_signed > > + : public __bool_constant<__is_signed(_Tp)> > > + { }; > > +#else > > /// @cond undocumented > > template<typename _Tp, > > bool = is_arithmetic<_Tp>::value> > > @@ -877,11 +884,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION > > { }; > > /// @endcond > > > > - /// is_signed > > template<typename _Tp> > > struct is_signed > > : public __is_signed_helper<_Tp>::type > > { }; > > +#endif > > > > /// is_unsigned > > template<typename _Tp> > > @@ -3240,8 +3247,14 @@ template <typename _Tp> > > template <typename _Tp> > > inline constexpr bool is_final_v = __is_final(_Tp); > > > > +#if __has_builtin(__is_signed) > > +template <typename _Tp> > > + inline constexpr bool is_signed_v = __is_signed(_Tp); > > +#else > > template <typename _Tp> > > inline constexpr bool is_signed_v = is_signed<_Tp>::value; > > +#endif > > + > > template <typename _Tp> > > inline constexpr bool is_unsigned_v = is_unsigned<_Tp>::value; > > > > -- > > 2.41.0 > > >