On Thu, Jun 13, 2024 at 5:46 AM Jonathan Wakely <jwak...@redhat.com> wrote:
>
> On 23/05/24 15:15 -0700, Ken Matsui wrote:
> >On Thu, May 23, 2024 at 3:15 PM Patrick Palka <ppa...@redhat.com> wrote:
> >>
> >> On Sat, 11 May 2024, Ken Matsui wrote:
> >>
> >> > This patch optimizes the compilation performance of std::is_const
> >> > by dispatching to the new __is_const built-in trait.
> >>
> >> This patch series LGTM
> >
> >Thank you!
>
> Patches 1, 2, 3, 4, 6, 7, 10, 11, 12, and 13 are approved for trunk.
>
> I made some comments for 5 (is_pointer), 8 (add_lvalue_reference) and
> 9 (add_rvalue_reference).
>

Thank you!  I will take a look.

>
> >>
> >> >
> >> > libstdc++-v3/ChangeLog:
> >> >
> >> >       * include/std/type_traits (is_const): Use __is_const built-in
> >> >       trait.
> >> >       (is_const_v): Likewise.
> >> >
> >> > Signed-off-by: Ken Matsui <kmat...@gcc.gnu.org>
> >> > ---
> >> >  libstdc++-v3/include/std/type_traits | 12 ++++++++++++
> >> >  1 file changed, 12 insertions(+)
> >> >
> >> > diff --git a/libstdc++-v3/include/std/type_traits 
> >> > b/libstdc++-v3/include/std/type_traits
> >> > index b441bf9908f..8df0cf3ac3b 100644
> >> > --- a/libstdc++-v3/include/std/type_traits
> >> > +++ b/libstdc++-v3/include/std/type_traits
> >> > @@ -835,6 +835,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> >> >    // Type properties.
> >> >
> >> >    /// is_const
> >> > +#if _GLIBCXX_USE_BUILTIN_TRAIT(__is_const)
> >> > +  template<typename _Tp>
> >> > +    struct is_const
> >> > +    : public __bool_constant<__is_const(_Tp)>
> >> > +    { };
> >> > +#else
> >> >    template<typename>
> >> >      struct is_const
> >> >      : public false_type { };
> >> > @@ -842,6 +848,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> >> >    template<typename _Tp>
> >> >      struct is_const<_Tp const>
> >> >      : public true_type { };
> >> > +#endif
> >> >
> >> >    /// is_volatile
> >> >    template<typename>
> >> > @@ -3331,10 +3338,15 @@ template <typename _Tp>
> >> >    inline constexpr bool is_member_pointer_v = 
> >> > is_member_pointer<_Tp>::value;
> >> >  #endif
> >> >
> >> > +#if _GLIBCXX_USE_BUILTIN_TRAIT(__is_const)
> >> > +template <typename _Tp>
> >> > +  inline constexpr bool is_const_v = __is_const(_Tp);
> >> > +#else
> >> >  template <typename _Tp>
> >> >    inline constexpr bool is_const_v = false;
> >> >  template <typename _Tp>
> >> >    inline constexpr bool is_const_v<const _Tp> = true;
> >> > +#endif
> >> >
> >> >  #if _GLIBCXX_USE_BUILTIN_TRAIT(__is_function)
> >> >  template <typename _Tp>
> >> > --
> >> > 2.44.0
> >> >
> >> >
> >>
>

Reply via email to