Please disregard this email. On Mon, Mar 20, 2023 at 6:26 AM Ken Matsui wrote: > Thank you! > > On Mon, Mar 20, 2023 at 2:12 AM Jonathan Wakely > wrote: > >> On Mon, 20 Mar 2023 at 08:08, Ken Matsui >> wrote: >> > >> > Ooh... Thank you for pointing that out! >> > >> > > The helper doesn't need to be defined for the case where we don't use >> it. >> > >> > I thought that macroing them out leads to compiler errors since users >> > are possibly using those helpers. But do we not have to care about >> > that? >> >> No, absolutely not. >> >> > >> > --- >> > libstdc++-v3/ChangeLog: >> > >> > * include/std/type_traits (remove_pointer): Use __remove_pointer >> built-in trait. >> > >> > --- >> > diff --git a/libstdc++-v3/include/std/type_traits >> > b/libstdc++-v3/include/std/type_traits >> > index 2bd607a8b8f..cba98091aad 100644 >> > --- a/libstdc++-v3/include/std/type_traits >> > +++ b/libstdc++-v3/include/std/type_traits >> > @@ -2025,17 +2025,23 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION >> > >> > template >> > struct __remove_pointer_helper >> > - { typedef _Tp type; }; >> > + { using type = _Tp; }; >> > >> > template >> > struct __remove_pointer_helper<_Tp, _Up*> >> > - { typedef _Up type; }; >> > + { using type = _Up; }; >> > >> > /// remove_pointer >> > +#if __has_builtin(__remove_pointer) >> > + template >> > + struct remove_pointer >> > + { using type = __remove_pointer(_Tp); }; >> > +#else >> > template >> > struct remove_pointer >> > : public __remove_pointer_helper<_Tp, __remove_cv_t<_Tp>> >> > { }; >> > +#endif >> > >> > template >> > struct __add_pointer_helper >> > >> > On Mon, Mar 20, 2023 at 12:57 AM Jonathan Wakely >> wrote: >> > > >> > > >> > > >> > > On Mon, 20 Mar 2023, 07:32 Ken Matsui via Libstdc++, < >> libstdc++@gcc.gnu.org> wrote: >> > >> >> > >> CCing libstdc++@gcc.gnu.org. >> > >> >> > >> On Sun, Mar 19, 2023 at 7:53 PM Ken Matsui < >> kmatsui@cs.washington.edu> wrote: >> > >> > >> > >> > libstdc++-v3/ChangeLog: >> > >> > >> > >> > * include/std/type_traits (is_reference): Use __remove_pointer >> built-in trait. >> > > >> > > >> > > The changelog entry says is_reference but the patch is for >> remove_pointer. >> > > >> > > >> > >> > >> > >> > --- >> > >> > diff --git a/libstdc++-v3/include/std/type_traits >> > >> > b/libstdc++-v3/include/std/type_traits >> > >> > index 2bd607a8b8f..cba98091aad 100644 >> > >> > --- a/libstdc++-v3/include/std/type_traits >> > >> > +++ b/libstdc++-v3/include/std/type_traits >> > >> > @@ -2025,17 +2025,23 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION >> > >> > >> > >> > template >> > >> > struct __remove_pointer_helper >> > >> > - { typedef _Tp type; }; >> > >> > + { using type = _Tp; }; >> > >> > >> > >> > template >> > >> > struct __remove_pointer_helper<_Tp, _Up*> >> > >> > - { typedef _Up type; }; >> > >> > + { using type = _Up; }; >> > > >> > > >> > > The helper doesn't need to be defined for the case where we don't use >> it. >> > > >> > > >> > >> > >> > >> > /// remove_pointer >> > >> > +#if __has_builtin(__remove_pointer) >> > >> > + template >> > >> > + struct remove_pointer >> > >> > + { using type = __remove_pointer(_Tp); }; >> > >> > +#else >> > >> > template >> > >> > struct remove_pointer >> > >> > : public __remove_pointer_helper<_Tp, __remove_cv_t<_Tp>> >> > >> > { }; >> > >> > +#endif >> > >> > >> > >> > template >> > >> > struct __add_pointer_helper >> >