From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com [IPv6:2a00:1450:4864:20::52d]) by sourceware.org (Postfix) with ESMTPS id 4852B385F018; Mon, 20 Mar 2023 07:57:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4852B385F018 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ed1-x52d.google.com with SMTP id b20so10163823edd.1; Mon, 20 Mar 2023 00:57:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679299050; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=U7D/B6RVSGYzIsct1R3t+ZZE46NDQo1wkOsIrd5aQ+Q=; b=BLMUzRvueohu87KyHKMMHsT2kbGnTr7+/SKfPKPjZiEtuv2xZg+og4kkQw7zsvHB7e lPVwhpHm6fDFOZyjys6GSGymPwxMJstvIlLTq+KmahmNZxSSryM7mUUypIsvostNY5VC QKDg0QSo3eW1XCV6wW9j0jkzoR4iiBUIZVZ8v4y1iQI1z2gGVzxHjeCOSgwtPBaryXYD J95sMPD5eyh0oZ5F/NxcwmniJ8S4aEP7WcTNFLv5Y/6pF5YwjXt0UwAQ0KvdA+gcAr6l qeX897sA2SLkz0SM14EDwPQFtihgxoBCShpJMjo7yrIqFSIh0urX8eoolz/VqJ3Xi7wP nL0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679299050; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=U7D/B6RVSGYzIsct1R3t+ZZE46NDQo1wkOsIrd5aQ+Q=; b=Gih73lm7XYwMirD3XL+mK5SN8DUnqBl9txorppKolVGNAZQJPJxvDTdKOtEeQ+Yp7A 8tjRMYNlZ/HGBb6XASE8pS8FURZlWPLTWs14pGFRiboKYRhuQtrLwek/v/K/j1oXliFt 5uGWWfxKTBPLQcHCncTpL1wABDAKBQLc1vPvnc+yCrEue30NLYMhI6rBlTq8zOe6qJLE cboEO3iBhmaUO1PzeOrtSB9+11oGM/+5TTRXxiGat0OGjq5t8wPPiUmAo+Xy9jVeAT0x Zdxi9GwLpjkO+FhTK1hO65tRTGRYlIAm2RVikOE6DXxG2Nx1QykD7bDg93yW96kkeuN6 wrLg== X-Gm-Message-State: AO0yUKX1hXFoSNmrC/Tif9d5KMH0K38mTdD9WBUXrSfljcCtmzHLDZHL fyCiROdzEujAYnJ2rX43DxIzuEhLWDSHNDxANdc= X-Google-Smtp-Source: AK7set9ToVukTFUv+aV/M4TUOzA762SvDca3EwxqyG+FuMMo4aX9bAVtuv3IPGJd9y4s0okeU7Eq2s6wF0I6Jt2Uqpg= X-Received: by 2002:a50:8a87:0:b0:4fc:7014:f91c with SMTP id j7-20020a508a87000000b004fc7014f91cmr5776090edj.5.1679299049887; Mon, 20 Mar 2023 00:57:29 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Jonathan Wakely Date: Mon, 20 Mar 2023 07:57:18 +0000 Message-ID: Subject: Re: [PATCH] libstdc++: use new built-in trait __remove_pointer To: Ken Matsui Cc: gcc-patches , Patrick Palka , "libstdc++" Content-Type: multipart/alternative; boundary="000000000000571c6f05f7504737" X-Spam-Status: No, score=-6.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --000000000000571c6f05f7504737 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, 20 Mar 2023, 07:32 Ken Matsui via Libstdc++, wrote: > CCing libstdc++@gcc.gnu.org. > > On Sun, Mar 19, 2023 at 7:53=E2=80=AFPM Ken Matsui > 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 =3D _Tp; }; > > > > template > > struct __remove_pointer_helper<_Tp, _Up*> > > - { typedef _Up type; }; > > + { using type =3D _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 =3D __remove_pointer(_Tp); }; > > +#else > > template > > struct remove_pointer > > : public __remove_pointer_helper<_Tp, __remove_cv_t<_Tp>> > > { }; > > +#endif > > > > template > > struct __add_pointer_helper > --000000000000571c6f05f7504737--