On Sat, 8 Jul 2023 at 06:31, Ken Matsui via Libstdc++ <libstd...@gcc.gnu.org> wrote: > > This patch lets libstdc++ use new built-in trait __remove_pointer. > > libstdc++-v3/ChangeLog: > > * include/std/type_traits (remove_pointer): Use __remove_pointer > built-in trait. > > Signed-off-by: Ken Matsui <kmat...@gcc.gnu.org>
OK for trunk after the front-end __remove_pointer is committed. > --- > libstdc++-v3/include/std/type_traits | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/libstdc++-v3/include/std/type_traits > b/libstdc++-v3/include/std/type_traits > index 0e7a9c9c7f3..81497e2f3e1 100644 > --- a/libstdc++-v3/include/std/type_traits > +++ b/libstdc++-v3/include/std/type_traits > @@ -2023,6 +2023,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION > > // Pointer modifications. > > + /// remove_pointer > +#if __has_builtin(__remove_pointer) > + template<typename _Tp> > + struct remove_pointer > + { using type = __remove_pointer(_Tp); }; > +#else > template<typename _Tp, typename> > struct __remove_pointer_helper > { using type = _Tp; }; > @@ -2031,11 +2037,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION > struct __remove_pointer_helper<_Tp, _Up*> > { using type = _Up; }; > > - /// remove_pointer > template<typename _Tp> > struct remove_pointer > : public __remove_pointer_helper<_Tp, __remove_cv_t<_Tp>> > { }; > +#endif > > template<typename _Tp, typename = void> > struct __add_pointer_helper > -- > 2.41.0 >