On Wed, 12 Jul 2023, 19:33 Ken Matsui via Libstdc++, <libstd...@gcc.gnu.org>
wrote:

> On Wed, Jul 12, 2023 at 2:50 AM Jonathan Wakely <jwak...@redhat.com>
> wrote:
> >
> > On Sat, 8 Jul 2023 at 05:47, Ken Matsui via Libstdc++
> > <libstd...@gcc.gnu.org> wrote:
> > >
> > > This patch gets std::is_scalar to dispatch to new built-in trait
> > > __is_scalar.
> > >
> > > libstdc++-v3/ChangeLog:
> > >
> > >         * include/std/type_traits (is_scalar): Use __is_scalar built-in
> > >         trait.
> > >         (is_scalar_v): Likewise.
> >
> > OK for trunk (conditional on the front-end change being committed
> > first of course).
> >
>
> Thank you for your review!
>
> Just to confirm, this approval does not include the [1/2] patch, does
> it? Or, did you approve this entire patch series?
>

Only this patch. I cannot approve compiler changes, I'm only a reviewer for
libstdc++.



> > conditional on the front-end change being committed first of course
>
> Does this mean we want to commit this [2/2] patch before committing
> the [1/2] patch in this case?
>

The other way around, as Xi Ruoyao said.



> Also, can I tweak the commit message without being approved again,
> such as attaching the benchmark result?
>

Yes, that's fine.


> > >
> > > Signed-off-by: Ken Matsui <kmat...@gcc.gnu.org>
> > > ---
> > >  libstdc++-v3/include/std/type_traits | 14 ++++++++++++++
> > >  1 file changed, 14 insertions(+)
> > >
> > > diff --git a/libstdc++-v3/include/std/type_traits
> b/libstdc++-v3/include/std/type_traits
> > > index 0e7a9c9c7f3..bc90b2c61ca 100644
> > > --- a/libstdc++-v3/include/std/type_traits
> > > +++ b/libstdc++-v3/include/std/type_traits
> > > @@ -678,11 +678,18 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> > >      struct is_member_pointer;
> > >
> > >    /// is_scalar
> > > +#if __has_builtin(__is_scalar)
> > > +  template<typename _Tp>
> > > +    struct is_scalar
> > > +    : public __bool_constant<__is_scalar(_Tp)>
> > > +    { };
> > > +#else
> > >    template<typename _Tp>
> > >      struct is_scalar
> > >      : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
> > >                     is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
> > >      { };
> > > +#endif
> > >
> > >    /// is_compound
> > >    template<typename _Tp>
> > > @@ -3204,8 +3211,15 @@ template <typename _Tp>
> > >    inline constexpr bool is_fundamental_v = is_fundamental<_Tp>::value;
> > >  template <typename _Tp>
> > >    inline constexpr bool is_object_v = is_object<_Tp>::value;
> > > +
> > > +#if __has_builtin(__is_scalar)
> > > +template <typename _Tp>
> > > +  inline constexpr bool is_scalar_v = __is_scalar(_Tp);
> > > +#else
> > >  template <typename _Tp>
> > >    inline constexpr bool is_scalar_v = is_scalar<_Tp>::value;
> > > +#endif
> > > +
> > >  template <typename _Tp>
> > >    inline constexpr bool is_compound_v = is_compound<_Tp>::value;
> > >  template <typename _Tp>
> > > --
> > > 2.41.0
> > >
> >
>

Reply via email to