[{"id":3680548,"web_url":"http://patchwork.ozlabs.org/comment/3680548/","msgid":"<bmm.h573of4qww.gcc.gcc-TEST.redi.34.96.REVIEW@forge-stage.sourceware.org>","list_archive_url":null,"date":"2025-03-05T13:29:29","subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","submitter":{"id":93210,"url":"http://patchwork.ozlabs.org/api/people/93210/","name":"Jonathan Wakely via Sourceware Forge","email":"forge-bot+redi@forge-stage.sourceware.org"},"content":"Jonathan Wakely (redi) <redi@gcc.gnu.org>) commented on the code:\nSome outdated comments from Tomasz, which I forgot to submit before you force-pushed a new revision, sorry. Here they are for completeness. I'll reload and look at the new version now ...\n\n> +++ libstdc++-v3/include/std/complex\n> @@ -247,0 +266,4 @@\n> +#if __glibcxx_tuple_like >= 202311L // >= C++26\n> +    template<typename _Cp>\n> +      requires is_same_v<const _Cp, const complex>\n> +      [[nodiscard,__gnu__::__always_inline__]]\nnodiscard isn't really needed here, since this is an internal function and we don't discard it.\n\n> +++ libstdc++-v3/include/std/complex\n> @@ -611,0 +653,4 @@\n> +    constexpr _Tp&&\n> +    get(complex<_Tp>&& __z) noexcept\n> +    {\n> +      return std::move(get<_Int>(__z));\nThis should either call `__get` (and do the `static_assert` here) or use `std::` to avoid ADL when calling `get`.\n\n> +++ libstdc++-v3/include/std/complex\n> @@ -611,0 +670,4 @@\n> +    constexpr const _Tp&&\n> +    get(const complex<_Tp>&& __z) noexcept\n> +    {\n> +      return std::move(get<_Int>(__z));\nSame here, use `__get` or `std::get`\n\n> +++ libstdc++-v3/include/std/complex\n> @@ -611,0 +670,4 @@\n> +    constexpr const _Tp&&\n> +    get(const complex<_Tp>&& __z) noexcept\n> +    {\n> +      return std::move(get<_Int>(__z));\nOK; this no longer applies on the last version.\n\n> +++ libstdc++-v3/include/std/complex\n> @@ -247,0 +268,4 @@\n> +      requires is_same_v<const _Cp, const complex>\n> +      [[nodiscard,__gnu__::__always_inline__]]\n> +      friend constexpr auto&\n> +      __get(size_t __i, _Cp& __z) noexcept\nTomasz suggested `__get_element` or another slightly less generic name here. We do have `__variant::__detail::__get` declared at namespace-scope in `<variant>`, but still avoiding the very general `__get` seems sensible.\n\n> +++ libstdc++-v3/include/std/complex\n> @@ -247,0 +268,4 @@\n> +      requires is_same_v<const _Cp, const complex>\n> +      [[nodiscard,__gnu__::__always_inline__]]\n> +      friend constexpr auto&\n> +      __get(size_t __i, _Cp& __z) noexcept\nSure thing, will rename. How about `__get_part` (real part, imaginary part)?\n\n\n--\nhttps://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-652","headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org; dmarc=none (p=none dis=none)\n header.from=forge-stage.sourceware.org","sourceware.org;\n spf=pass smtp.mailfrom=forge-stage.sourceware.org","server2.sourceware.org;\n arc=none smtp.remote-ip=38.145.34.39"],"Received":["from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0xlj1QB1z1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 21:27:29 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 3E9DA4362253\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 11:27:26 +0000 (GMT)","from forge-stage.sourceware.org (vm08.sourceware.org [38.145.34.39])\n by sourceware.org (Postfix) with ESMTPS id 5BB6648FA826\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:41 +0000 (GMT)","from forge-stage.sourceware.org (localhost [IPv6:::1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256)\n (No client certificate requested)\n by forge-stage.sourceware.org (Postfix) with ESMTPS id 30D3542BE2\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:41 +0000 (UTC)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 3E9DA4362253","OpenDKIM Filter v2.11.0 sourceware.org 5BB6648FA826"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 5BB6648FA826","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 5BB6648FA826","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776855101; cv=none;\n b=N9avUH7C6oMdgHDJBO/LYOvx9HRAYZ0AKnLGgTBLL+8bI6fIXUGAUo6CuFzFqtU1yZOy6XP6SOIQ2XtVOUNV6u/PJmBTkDieW/X/T0hpUtg6z6zWDB7kL6ka6mfXfdCydxSpcFJEro4XUWW01z8UgoAWirVj7mbozr256QVaTjE=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776855101; c=relaxed/simple;\n bh=G55hemtGNFvVRQ/afsIyW0h9tR2lpjbOMSy95H43Ckc=;\n h=Subject:From:To:Date:Message-ID:MIME-Version;\n b=qhEcqVNjbSmX7l9VwtC9Pi33pdtzriEz5WKDVOzURAH4i+/sGjF1UiEfagEtIjuFoBpqp61Sbg6MCMHM1iVE2SenF7H/MgaiswsR6PNZ+hjYqgovcJnJY0Zl02sekIGj0Kr+9AmCKitop+sVdQdUtt6l9uHISKUxpn5ZamPrKl4=","ARC-Authentication-Results":"i=1; server2.sourceware.org","Subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","From":"Jonathan Wakely via Sourceware Forge\n <forge-bot+redi@forge-stage.sourceware.org>","To":"gcc-patches mailing list <gcc-patches@gcc.gnu.org>","Date":"Wed, 05 Mar 2025 13:29:29 +0000","Message-ID":"\n <bmm.h573of4qww.gcc.gcc-TEST.redi.34.96.REVIEW@forge-stage.sourceware.org>","In-Reply-To":"\n <bmm.hhubxss5wg.gcc.gcc-TEST.peppe.34.1.0@forge-stage.sourceware.org>","X-Mailer":"batrachomyomachia","X-Pull-Request-Organization":"gcc","X-Pull-Request-Repository":"gcc-TEST","X-Pull-Request":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34","X-Review":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-652","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"quoted-printable","MIME-Version":"1.0","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"}},{"id":3680550,"web_url":"http://patchwork.ozlabs.org/comment/3680550/","msgid":"<bmm.h57y1krpq8.gcc.gcc-TEST.tkaminsk.34.671.CMT@forge-stage.sourceware.org>","list_archive_url":null,"date":"2025-03-06T07:51:08","subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","submitter":{"id":93223,"url":"http://patchwork.ozlabs.org/api/people/93223/","name":"tkaminsk via Sourceware Forge","email":"forge-bot+tkaminsk@forge-stage.sourceware.org"},"content":"The changes looks good  to me.\n\n--\nhttps://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-671","headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org; dmarc=none (p=none dis=none)\n header.from=forge-stage.sourceware.org","sourceware.org;\n spf=pass smtp.mailfrom=forge-stage.sourceware.org","server2.sourceware.org;\n arc=none smtp.remote-ip=38.145.34.39"],"Received":["from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0xmM4P3Kz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 21:28:03 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 17F6142FA7BC\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 11:28:01 +0000 (GMT)","from forge-stage.sourceware.org (vm08.sourceware.org [38.145.34.39])\n by sourceware.org (Postfix) with ESMTPS id 4D3384420026\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:43 +0000 (GMT)","from forge-stage.sourceware.org (localhost [IPv6:::1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256)\n (No client certificate requested)\n by forge-stage.sourceware.org (Postfix) with ESMTPS id 6D9BB42BE5\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:41 +0000 (UTC)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 17F6142FA7BC","OpenDKIM Filter v2.11.0 sourceware.org 4D3384420026"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 4D3384420026","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 4D3384420026","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776855103; cv=none;\n b=SEd6wPqW1GsTnNqyse70chlxNskK31AYiStEyaTJZ7Smaf6LwFT4/H2hIQtCsqT0A4TYcnczMe0poZGVA2VJN6kmuDrVfPqJTgF23px2KqubWl6KA01uEndm6cUQtRVRszIFxkCrWSv6FFexQZyQmGcOzDOLngpm6t9MkYclOmA=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776855103; c=relaxed/simple;\n bh=zxE7lb5ljXoLfWh0+5iCiwYEYM8XNoolFg1+aY+MhPU=;\n h=Subject:From:To:Date:Message-ID:MIME-Version;\n b=CvhdsqXjEzXRtgY+Xyiza0u9lH5pzgGlvaj6AE2HDLSF3W5nk/Qox8Liduc2v4gjFwWextLJ32qnYD6CerzJHm0JoDBSbH493TG69Wu5kyxjsD0xkb8CebNOacxvDRYedg24DINQKzsNVXL5DW2nbsA1p4eMo4hHLXFF9IMFowg=","ARC-Authentication-Results":"i=1; server2.sourceware.org","Subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","From":"tkaminsk via Sourceware Forge\n <forge-bot+tkaminsk@forge-stage.sourceware.org>","To":"gcc-patches mailing list <gcc-patches@gcc.gnu.org>","Date":"Thu, 06 Mar 2025 07:51:08 +0000","Message-ID":"\n <bmm.h57y1krpq8.gcc.gcc-TEST.tkaminsk.34.671.CMT@forge-stage.sourceware.org>","In-Reply-To":"\n <bmm.hhubxss5wg.gcc.gcc-TEST.peppe.34.1.0@forge-stage.sourceware.org>","X-Mailer":"batrachomyomachia","X-Pull-Request-Organization":"gcc","X-Pull-Request-Repository":"gcc-TEST","X-Pull-Request":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34","X-Comment":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-671","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"7bit","MIME-Version":"1.0","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"}},{"id":3680551,"web_url":"http://patchwork.ozlabs.org/comment/3680551/","msgid":"<bmm.h54y2pjqps.gcc.gcc-TEST.redi.34.95.REVIEW@forge-stage.sourceware.org>","list_archive_url":null,"date":"2025-03-03T14:34:04","subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","submitter":{"id":93210,"url":"http://patchwork.ozlabs.org/api/people/93210/","name":"Jonathan Wakely via Sourceware Forge","email":"forge-bot+redi@forge-stage.sourceware.org"},"content":"Jonathan Wakely (redi) <redi@gcc.gnu.org>) commented on the code:\n\n\n> +++ libstdc++-v3/include/bits/stl_pair.h\n> @@ -152,0 +166,4 @@\n> +    constexpr const _Tp&&\n> +    get(const complex<_Tp>&&) noexcept;\n> +#endif\n> +\nI wonder if we want to introduce a new `<bits/tuple_like.h>` header and move some things from `<bits/utility.h>` into there, and move all these `get` overloads there. That's for a later date anyway.\n\n> +++ libstdc++-v3/include/bits/version.def\n> @@ -1793,2 +1793,4 @@\n>  ftms = {\n>    name = tuple_like;\n> +  values = {\n> +    v = 202311;\nMatches the value from P2019R2 👍\n\n> +++ libstdc++-v3/include/std/complex\n> @@ -126,0 +135,4 @@\n> +      : public integral_constant<size_t, 2> { };\n> +  template<typename _Tp>\n> +    struct tuple_element<0, complex<_Tp>>\n> +      { using type = _Tp; };\nHere and line 141 the opening brace should be aligned with `struct`.\n\n> +++ libstdc++-v3/include/std/complex\n> @@ -126,0 +132,4 @@\n> +#if __glibcxx_tuple_like >= 202311L // >= C++26\n> +  template<typename _Tp>\n> +    struct tuple_size<complex<_Tp>>\n> +      : public integral_constant<size_t, 2> { };\nUn-indent so `:` is aligned with `struct`\n\n> +++ libstdc++-v3/include/std/complex\n> @@ -247,0 +267,4 @@\n> +    constexpr _Tp& __real_part() & { return _M_real; }\n> +    constexpr const _Tp& __real_part() const & { return _M_real; }\n> +    constexpr _Tp& __imag_part() & { return _M_imag; }\n> +    constexpr const _Tp& __imag_part() const & { return _M_imag; }\nThese should all be noexcept.\n\nBut it seems a little unfortunate that we need to add four new public members for this to work.\n\nCould there just be a single function template?\n\n```\n      template<size_t _Int, typename _Cp>\n        requires (_Int < 2) && is_same_v<const _Cp, const complex>\n        friend constexpr auto&\n        __get(_Cp& __z) noexcept\n        {\n          if constexpr (_Int == 0)\n            return __z._M_real;\n          else\n            return __z._M_imag;\n        }\n```\nand similarly for the specializations, but using `__real__ _M_value` and `__imag__ _M_value`.\n\nThis way we only add one new hidden friend to each specialization, instead of four public member functions.\n\nThe `get` function templates would be just:\n\n```\n    template<size_t _Int, typename _Tp>\n      [[nodiscard,__gnu__::__always_inline__]]\n      constexpr _Tp&\n      get(complex<_Tp>& __z) noexcept\n      { return __get<_Int>(__z); }\n\n    template<size_t _Int, typename _Tp>\n      [[nodiscard,__gnu__::__always_inline__]]\n      constexpr const _Tp&\n      get(const complex<_Tp>& __z) noexcept\n      { return __get<_Int>(__z); }\n\n    template<size_t _Int, typename _Tp>\n      [[nodiscard,__gnu__::__always_inline__]]\n      constexpr _Tp&&\n      get(complex<_Tp>&& __z) noexcept\n      { return std::move(__get<_Int>(__z)); }\n\n    template<size_t _Int, typename _Tp>\n      [[nodiscard,__gnu__::__always_inline__]]\n      constexpr const _Tp&&\n      get(const complex<_Tp>&& __z) noexcept\n      { return std::move(__get<_Int>(__z)); }\n```\n\nN.B. I think it would be good to use always_inline here. And actually, if we do that then we could pass _Int as a function parameter not a template parameter:\n\n```\n      template<typename _Cp>\n        requires is_same_v<const _Cp, const complex>\n        friend constexpr auto&\n        __get(_Cp& __z) noexcept\n        {\n          return _Int == 0 ? __z._M_real : __z._M_imag;\n        }\n```\n\nThat would reduce the number of instantiations of `__get` by half, but if they're always inline maybe that doesn't matter so much. If we did that, we'd need to put the `static_assert(_Int < 2);` back into the `std::get` overloads which I removed above.\n\nEven if we don't pass `_Int` as a function parameter, it might still be simpler to do:\n\n  `return _Int == 0 ? __z._M_real : __z._M_imag;`\n\nThe types are the same, so there's no real need to use `if constexpr` to create a discarded statement. Both branches of the if-else are always valid.\n\nWhat do you think?\n\n> +++ libstdc++-v3/include/std/complex\n> @@ -247,0 +267,4 @@\n> +    constexpr _Tp& __real_part() & { return _M_real; }\n> +    constexpr const _Tp& __real_part() const & { return _M_real; }\n> +    constexpr _Tp& __imag_part() & { return _M_imag; }\n> +    constexpr const _Tp& __imag_part() const & { return _M_imag; }\nWell, my first round was indeed using one single private getter implemented using `deducing this` and `forward_like`, but unfortunately Clang 17 lacks it.\n\nThen indeed I starting having doubts regarding what's a better tradeoff here -- multiple non-template overloads (like right now) or a generic templated getter? Which one would put less pressure on the compiler, generate less bloat, etc.? I went with the former (overloads), but it's really a judgement call, the code is a bit redundant but straightforward either way...\n\n> +++ libstdc++-v3/include/std/complex\n> @@ -247,0 +267,4 @@\n> +    constexpr _Tp& __real_part() & { return _M_real; }\n> +    constexpr const _Tp& __real_part() const & { return _M_real; }\n> +    constexpr _Tp& __imag_part() & { return _M_imag; }\n> +    constexpr const _Tp& __imag_part() const & { return _M_imag; }\n> but unfortunately Clang 17 lacks it.\n\nAh I see. Clang 20 will be released before GCC 15, and then there will be Clang 18, 19 and 20 releases which support the feature, so I think that's good enough to use it. We could always make the `__cpp_lib_tuple_like` macro depend on `__cpp_explicit_this_parameter`.\n\nRegarding bloat, I think turning the `_Int` template parameter into a function parameter will reduce the number of separate functions that need to be compiled. If they're `always_inline` then no code should be emitted so no real bloat (just maybe debug symbols).\n\nThanks for pushing that change, I'll take another look ...\n\n> +++ libstdc++-v3/include/std/complex\n> @@ -247,0 +267,4 @@\n> +    constexpr _Tp& __real_part() & { return _M_real; }\n> +    constexpr const _Tp& __real_part() const & { return _M_real; }\n> +    constexpr _Tp& __imag_part() & { return _M_imag; }\n> +    constexpr const _Tp& __imag_part() const & { return _M_imag; }\n> We could always make the __cpp_lib_tuple_like macro depend on __cpp_explicit_this_parameter.\n\nI've done so (added the dependency), and implemented the private `__get` as a nonstatic member function with deducing this + forward_like.\n\n> +++ libstdc++-v3/include/std/complex\n> @@ -247,0 +267,4 @@\n> +    constexpr _Tp& __real_part() & { return _M_real; }\n> +    constexpr const _Tp& __real_part() const & { return _M_real; }\n> +    constexpr _Tp& __imag_part() & { return _M_imag; }\n> +    constexpr const _Tp& __imag_part() const & { return _M_imag; }\n(Ideally I could also make std::get take a `_Cp&&` parameter, and centralize the implementation, but the specification in the Standard spells out the four overloads, so I'm guessing I'm not allowed to do that.)\n\n\n--\nhttps://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-638","headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=38.145.34.32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org; dmarc=none (p=none dis=none)\n header.from=forge-stage.sourceware.org","sourceware.org;\n spf=pass smtp.mailfrom=forge-stage.sourceware.org","server2.sourceware.org;\n arc=none smtp.remote-ip=38.145.34.39"],"Received":["from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0xnF1qJcz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 21:28:49 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 166BC42C2515\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 11:28:47 +0000 (GMT)","from forge-stage.sourceware.org (vm08.sourceware.org [38.145.34.39])\n by sourceware.org (Postfix) with ESMTPS id 41ABA4422BC8\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:41 +0000 (GMT)","from forge-stage.sourceware.org (localhost [IPv6:::1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256)\n (No client certificate requested)\n by forge-stage.sourceware.org (Postfix) with ESMTPS id 1895E42BE1\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:41 +0000 (UTC)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 166BC42C2515","OpenDKIM Filter v2.11.0 sourceware.org 41ABA4422BC8"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 41ABA4422BC8","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 41ABA4422BC8","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776855101; cv=none;\n b=R39iHL9LsQYB73yxyP1EhCRoMMH27a4aMbcnxBGJZs3QJ9pVYFSnEFzsdHpmZfDcCdLs+TxT2bNFwJ3+Y8nkP4gDZEuFPRp28Em6pMwyFthD+EhZ05rdvPqtfWI+jBzDolGN3o0C49iI4fTAHkz+dgrLZG/c8R/3tBoPRhx4LJE=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776855101; c=relaxed/simple;\n bh=UJ0Sil84NFHoqlYdKfuC/0yTWsaUldHRJMH724Q4SeQ=;\n h=Subject:From:To:Date:Message-ID:MIME-Version;\n b=odwuAC/Yf1z2/W7DpTC1KjTiJNGA0goWHFODmcydykaWvRz++FGFuA7aZXzKjK4jUnnrExZpayAnJdom1qSfJCN0pv/iAAitDYrCt+uworM0QKbamlQ2ecUjuZo0G8AlUpB2q+41SzjPPSL50ZSKLMekCyQv42D3AxWXNnzUAxk=","ARC-Authentication-Results":"i=1; server2.sourceware.org","Subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","From":"Jonathan Wakely via Sourceware Forge\n <forge-bot+redi@forge-stage.sourceware.org>","To":"gcc-patches mailing list <gcc-patches@gcc.gnu.org>","Date":"Mon, 03 Mar 2025 14:34:04 +0000","Message-ID":"\n <bmm.h54y2pjqps.gcc.gcc-TEST.redi.34.95.REVIEW@forge-stage.sourceware.org>","In-Reply-To":"\n <bmm.hhubxss5wg.gcc.gcc-TEST.peppe.34.1.0@forge-stage.sourceware.org>","X-Mailer":"batrachomyomachia","X-Pull-Request-Organization":"gcc","X-Pull-Request-Repository":"gcc-TEST","X-Pull-Request":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34","X-Review":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-638","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"quoted-printable","MIME-Version":"1.0","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"}},{"id":3680552,"web_url":"http://patchwork.ozlabs.org/comment/3680552/","msgid":"<bmm.h584empa4g.gcc.gcc-TEST.tkaminsk.34.682.CMT@forge-stage.sourceware.org>","list_archive_url":null,"date":"2025-03-06T11:41:58","subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","submitter":{"id":93223,"url":"http://patchwork.ozlabs.org/api/people/93223/","name":"tkaminsk via Sourceware Forge","email":"forge-bot+tkaminsk@forge-stage.sourceware.org"},"content":"> Thank you, I'll push this to trunk later, and post the final version on the list!\n\nAs clarification here, the change still need to have @redi approval before being submitted to trunk. This is my fault, as I was not explicit on that fact in my message, and I will be more clear next time.\n\n--\nhttps://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-682","headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org; dmarc=none (p=none dis=none)\n header.from=forge-stage.sourceware.org","sourceware.org;\n spf=pass smtp.mailfrom=forge-stage.sourceware.org","server2.sourceware.org;\n arc=none smtp.remote-ip=38.145.34.39"],"Received":["from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0xnr5Y0Sz1yHB\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 21:29:20 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 4B80F402ABDF\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 11:29:17 +0000 (GMT)","from forge-stage.sourceware.org (vm08.sourceware.org [38.145.34.39])\n by sourceware.org (Postfix) with ESMTPS id E56584BB58AC\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:43 +0000 (GMT)","from forge-stage.sourceware.org (localhost [IPv6:::1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256)\n (No client certificate requested)\n by forge-stage.sourceware.org (Postfix) with ESMTPS id AAEB242BE9\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:41 +0000 (UTC)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 4B80F402ABDF","OpenDKIM Filter v2.11.0 sourceware.org E56584BB58AC"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org E56584BB58AC","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org E56584BB58AC","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776855104; cv=none;\n b=U3EzrNfpkngojkrNVKUs04nW8nL2D5Z7BoZhlaJI5L3pU3aIskMgS0xAqxwu+WAI/9HXnaDPop2OZfS8Y2zYEZVFGKKs1VMlwnWpIQ8qC5DPzL2EtDzXkao9BcDmev42CLoC5odlMeDRMs2TjLIxOCwCgLuks8HysaVq8jWaCfA=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776855104; c=relaxed/simple;\n bh=wMBo9+3Nbh6AO8AuUy2VPzifllSkrAfZx7vS4x25tz0=;\n h=Subject:From:To:Date:Message-ID:MIME-Version;\n b=ilTF4PWy9i94ofIlFF1r+n6ZqjS6FNRDFasOkFo4+zGemyNFRDPiHciOiuxfreOGm/TkyEOaeOmELGO3Nnhj/oWrPOXzyOcYjzlkD7u7VSXQF71X/2ZQNvn+mmWgmORzNMZFAk6ABu292DwaoQA+CCm+hkTdH39kjTIxHAylQOo=","ARC-Authentication-Results":"i=1; server2.sourceware.org","Subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","From":"tkaminsk via Sourceware Forge\n <forge-bot+tkaminsk@forge-stage.sourceware.org>","To":"gcc-patches mailing list <gcc-patches@gcc.gnu.org>","Date":"Thu, 06 Mar 2025 11:41:58 +0000","Message-ID":"\n <bmm.h584empa4g.gcc.gcc-TEST.tkaminsk.34.682.CMT@forge-stage.sourceware.org>","In-Reply-To":"\n <bmm.hhubxss5wg.gcc.gcc-TEST.peppe.34.1.0@forge-stage.sourceware.org>","X-Mailer":"batrachomyomachia","X-Pull-Request-Organization":"gcc","X-Pull-Request-Repository":"gcc-TEST","X-Pull-Request":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34","X-Comment":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-682","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"quoted-printable","MIME-Version":"1.0","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"}},{"id":3680554,"web_url":"http://patchwork.ozlabs.org/comment/3680554/","msgid":"<bmm.h584b9uabk.gcc.gcc-TEST.peppe.34.679.CMT@forge-stage.sourceware.org>","list_archive_url":null,"date":"2025-03-06T11:38:35","subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","submitter":{"id":93222,"url":"http://patchwork.ozlabs.org/api/people/93222/","name":"peppe via Sourceware Forge","email":"forge-bot+peppe@forge-stage.sourceware.org"},"content":"Pushed as r15-7853-gde231924b73bc1, thank you!\n\n--\nhttps://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-679","headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=38.145.34.32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org; dmarc=none (p=none dis=none)\n header.from=forge-stage.sourceware.org","sourceware.org;\n spf=pass smtp.mailfrom=forge-stage.sourceware.org","server2.sourceware.org;\n arc=none smtp.remote-ip=38.145.34.39"],"Received":["from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0xpm56Xmz1yD5\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 21:30:08 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 6F41D42DF716\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 11:30:06 +0000 (GMT)","from forge-stage.sourceware.org (vm08.sourceware.org [38.145.34.39])\n by sourceware.org (Postfix) with ESMTPS id D5DC540A8DCC\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:43 +0000 (GMT)","from forge-stage.sourceware.org (localhost [IPv6:::1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256)\n (No client certificate requested)\n by forge-stage.sourceware.org (Postfix) with ESMTPS id 8CFEE42BE7\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:41 +0000 (UTC)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 6F41D42DF716","OpenDKIM Filter v2.11.0 sourceware.org D5DC540A8DCC"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org D5DC540A8DCC","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org D5DC540A8DCC","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776855103; cv=none;\n b=WNjyKsO3TchqTTy7xP3PyZ4XSinouYnt6muLrCz5eRAvq9u4WmwWM+uKYe/0gwnmy37573F3s8Q9ni9AamBjvcNJ1ayTPWUqicX2JXYXeCnsXxr9QtlnGrX9/K3Pb4KoBXoBz6eUWYWW47Kis7W3p4DPzfO+lBX9Wgxm7ba9jnI=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776855103; c=relaxed/simple;\n bh=p3nQTsV9h9jUlrS5sbLTWjWViuZdP5X+OBtJYtOSw78=;\n h=Subject:From:To:Date:Message-ID:MIME-Version;\n b=LJ+ehMVg5SWMHmx9UTmAyJx3bfZSxWm+qDo8LLXwb5ZRjzieowaos5xjoX0jqsPTbxqWgca4r4IjLkdbn3/ToMRAiun23gUm3xsIOWmhEif5ZWN/8jDSlqlAzwLxhNqYMy9XSi9w/8DhrA9ytJ0ZCIa85HSuZ8wAqsopN+HeQbc=","ARC-Authentication-Results":"i=1; server2.sourceware.org","Subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","From":"peppe via Sourceware Forge <forge-bot+peppe@forge-stage.sourceware.org>","To":"gcc-patches mailing list <gcc-patches@gcc.gnu.org>","Date":"Thu, 06 Mar 2025 11:38:35 +0000","Message-ID":"\n <bmm.h584b9uabk.gcc.gcc-TEST.peppe.34.679.CMT@forge-stage.sourceware.org>","In-Reply-To":"\n <bmm.hhubxss5wg.gcc.gcc-TEST.peppe.34.1.0@forge-stage.sourceware.org>","X-Mailer":"batrachomyomachia","X-Pull-Request-Organization":"gcc","X-Pull-Request-Repository":"gcc-TEST","X-Pull-Request":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34","X-Comment":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-679","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"7bit","MIME-Version":"1.0","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"}},{"id":3680555,"web_url":"http://patchwork.ozlabs.org/comment/3680555/","msgid":"<bmm.h5879y0668.gcc.gcc-TEST.peppe.34.686.CMT@forge-stage.sourceware.org>","list_archive_url":null,"date":"2025-03-06T13:26:05","subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","submitter":{"id":93222,"url":"http://patchwork.ozlabs.org/api/people/93222/","name":"peppe via Sourceware Forge","email":"forge-bot+peppe@forge-stage.sourceware.org"},"content":"Hi,\nI'm truly sorry, I don't know why but I assumed that the above was indeed an approval. My bad, I'll verify more (and double ask in case of doubt).\n\n--\nhttps://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-686","headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=38.145.34.32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org; dmarc=none (p=none dis=none)\n header.from=forge-stage.sourceware.org","sourceware.org;\n spf=pass smtp.mailfrom=forge-stage.sourceware.org","server2.sourceware.org;\n arc=none smtp.remote-ip=38.145.34.39"],"Received":["from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0xqJ3lB7z1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 21:30:36 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 2DA944293364\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 11:30:34 +0000 (GMT)","from forge-stage.sourceware.org (vm08.sourceware.org [38.145.34.39])\n by sourceware.org (Postfix) with ESMTPS id 356AA40A8DEC\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:44 +0000 (GMT)","from forge-stage.sourceware.org (localhost [IPv6:::1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256)\n (No client certificate requested)\n by forge-stage.sourceware.org (Postfix) with ESMTPS id CB6A742BEC\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:41 +0000 (UTC)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 2DA944293364","OpenDKIM Filter v2.11.0 sourceware.org 356AA40A8DEC"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 356AA40A8DEC","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 356AA40A8DEC","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776855104; cv=none;\n b=fvNR5iFs55Ri23uTV4Gb+mTVsugTKS2/QEFoQLYbSYilspAfHtFvA41a0RzhvnE6Wm59a+j/d/nBcL0Gt84B9rDWFtwPsf89+qlaaYah7OLBSKF/kc/qv0qkTu0VUCRtyN+PDVCtMTzzVgSLQp7PlGVHkGuArTy3TryMBs2l41I=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776855104; c=relaxed/simple;\n bh=e6Pq7ogZL+7g44tZ3lzK3wLZvjHtrkJg6jv8SX/9IhE=;\n h=Subject:From:To:Date:Message-ID:MIME-Version;\n b=Pi78E3VzNvpTPHMifUtrz5cCThHbrOPyaelucnwNkgyw9HE/L9+i9R08UMwyWXx6isg9vs0cLlzSmMCEOGV9ZkKIxR5POF3hipEntnKb00YXgNr7EpLOhn3Ihkvahf3BiNsjRhu2GiPTv+FPpCC3CfSPpuZXFOvYf+D/VqBtfhA=","ARC-Authentication-Results":"i=1; server2.sourceware.org","Subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","From":"peppe via Sourceware Forge <forge-bot+peppe@forge-stage.sourceware.org>","To":"gcc-patches mailing list <gcc-patches@gcc.gnu.org>","Date":"Thu, 06 Mar 2025 13:26:05 +0000","Message-ID":"\n <bmm.h5879y0668.gcc.gcc-TEST.peppe.34.686.CMT@forge-stage.sourceware.org>","In-Reply-To":"\n <bmm.hhubxss5wg.gcc.gcc-TEST.peppe.34.1.0@forge-stage.sourceware.org>","X-Mailer":"batrachomyomachia","X-Pull-Request-Organization":"gcc","X-Pull-Request-Repository":"gcc-TEST","X-Pull-Request":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34","X-Comment":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-686","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"quoted-printable","MIME-Version":"1.0","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"}},{"id":3680556,"web_url":"http://patchwork.ozlabs.org/comment/3680556/","msgid":"<bmm.h584nyhrb4.gcc.gcc-TEST.redi.34.683.CMT@forge-stage.sourceware.org>","list_archive_url":null,"date":"2025-03-06T11:51:22","subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","submitter":{"id":93210,"url":"http://patchwork.ozlabs.org/api/people/93210/","name":"Jonathan Wakely via Sourceware Forge","email":"forge-bot+redi@forge-stage.sourceware.org"},"content":"The patch looks good though, so consider this retroactive approval 👍\n\n--\nhttps://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-683","headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org; dmarc=none (p=none dis=none)\n header.from=forge-stage.sourceware.org","sourceware.org;\n spf=pass smtp.mailfrom=forge-stage.sourceware.org","server2.sourceware.org;\n arc=none smtp.remote-ip=38.145.34.39"],"Received":["from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0xrF3pshz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 21:31:25 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id DF0DC4331BFA\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 11:31:22 +0000 (GMT)","from forge-stage.sourceware.org (vm08.sourceware.org [38.145.34.39])\n by sourceware.org (Postfix) with ESMTPS id 306FB40A8DE4\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:44 +0000 (GMT)","from forge-stage.sourceware.org (localhost [IPv6:::1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256)\n (No client certificate requested)\n by forge-stage.sourceware.org (Postfix) with ESMTPS id BBC9E42BEB\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:41 +0000 (UTC)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org DF0DC4331BFA","OpenDKIM Filter v2.11.0 sourceware.org 306FB40A8DE4"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 306FB40A8DE4","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 306FB40A8DE4","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776855104; cv=none;\n b=UmoWTQsox++lCAH0uapzlECllqQ3UUSsAt3mmNbmZ+vKUovfBp5b7trOB9fZYb/tAKBbJrmPVr4xCcQ/4KLMWxZsr5unxT6Pgx/T1i8MR8kHn9FAD+X0D83TZ8NmC2CLMjKlU4JaUgHm+0lQoxPUk8zq/q6ohKfBgyPZsyxoKdI=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776855104; c=relaxed/simple;\n bh=Kt+EPrbRGjs35D2ukJZ/a0AglsWKWopjBCs3gnLlU7I=;\n h=Subject:From:To:Date:Message-ID:MIME-Version;\n b=opAZ0NpMi3OGlJ1ReWGV9wCNqysyZ7HTCyGAw6gL4J5+joAAXI2n67CkJap4SZkgkoRiwVfjml1sMIGGTIGI3FBItRYABpFvYKkfDfjTAe+bTAbi3W3AtuSUdclU6l2JYSLhJmyWl8d2T3WyU9ckdj6Xa68MLJWe/KwfuNPh11Y=","ARC-Authentication-Results":"i=1; server2.sourceware.org","Subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","From":"Jonathan Wakely via Sourceware Forge\n <forge-bot+redi@forge-stage.sourceware.org>","To":"gcc-patches mailing list <gcc-patches@gcc.gnu.org>","Date":"Thu, 06 Mar 2025 11:51:22 +0000","Message-ID":"\n <bmm.h584nyhrb4.gcc.gcc-TEST.redi.34.683.CMT@forge-stage.sourceware.org>","In-Reply-To":"\n <bmm.hhubxss5wg.gcc.gcc-TEST.peppe.34.1.0@forge-stage.sourceware.org>","X-Mailer":"batrachomyomachia","X-Pull-Request-Organization":"gcc","X-Pull-Request-Repository":"gcc-TEST","X-Pull-Request":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34","X-Comment":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-683","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"8bit","MIME-Version":"1.0","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"}},{"id":3680557,"web_url":"http://patchwork.ozlabs.org/comment/3680557/","msgid":"<bmm.hhubya0rcw.gcc.gcc-TEST.forge-bot.34.5575.CMT@forge-stage.sourceware.org>","list_archive_url":null,"date":"2026-04-22T10:51:14","subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","submitter":{"id":93212,"url":"http://patchwork.ozlabs.org/api/people/93212/","name":"Lichenor Forgejo Bot via Sourceware Forge","email":"forge-bot+forge-bot@forge-stage.sourceware.org"},"content":"<!-- pr-new-version -->\nVersion 1 of this pull request has been stored. It includes the following commits:\n- libstdc++: implement tuple protocol for std::complex (P2819R2) - 601a2df924b7bd13b21c7ee1af3f4531313a2409\n\n\n--\nhttps://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-5575","headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=38.145.34.32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org; dmarc=none (p=none dis=none)\n header.from=forge-stage.sourceware.org","sourceware.org;\n spf=pass smtp.mailfrom=forge-stage.sourceware.org","server2.sourceware.org;\n arc=none smtp.remote-ip=38.145.34.39"],"Received":["from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0xsC4pNkz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 21:32:14 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 64B7D48EACCD\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 11:31:50 +0000 (GMT)","from forge-stage.sourceware.org (vm08.sourceware.org [38.145.34.39])\n by sourceware.org (Postfix) with ESMTPS id 586914423337\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:44 +0000 (GMT)","from forge-stage.sourceware.org (localhost [IPv6:::1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256)\n (No client certificate requested)\n by forge-stage.sourceware.org (Postfix) with ESMTPS id EB91A42BEE\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:41 +0000 (UTC)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 64B7D48EACCD","OpenDKIM Filter v2.11.0 sourceware.org 586914423337"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 586914423337","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 586914423337","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776855104; cv=none;\n b=TGUSg2dUVyFjYpAh2LqP0lWTbUEk6YhZPQopn3Tfv3g7x2tbbk+rjoX2P7WR7KwBbsAQQbpF4HyU8UEvy5lCKbrDvA26g8mJ7d773ZGreA2GYqjM6nlJrpUuyCtEEUeOGlgAJMn3p+KGdkFcJNTV4V2QnRXGa2I+itwDOLqlhvQ=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776855104; c=relaxed/simple;\n bh=e6ltKgI/2a9O3PwSdOLihoMYqHTm1Ku0eWvyIehg6F8=;\n h=Subject:From:To:Date:Message-ID:MIME-Version;\n b=eeVhXjQ/jadi2XdulMX1U9FIGNAuWQOgUtjiPkUFFQa9XfvGlNx2eC0bij5mraNGu+E95WO59K+9RXXBqJVF5x6lqoezDKE3MA/Iz/GOdNi/+bzy8R9/NdJxgd0UNvNBUYjak0hRzDAnlifSjSzGAZ3zh7TsatCyY8noVQ23wKQ=","ARC-Authentication-Results":"i=1; server2.sourceware.org","Subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","From":"Lichenor Forgejo Bot via Sourceware Forge\n <forge-bot+forge-bot@forge-stage.sourceware.org>","To":"gcc-patches mailing list <gcc-patches@gcc.gnu.org>","Date":"Wed, 22 Apr 2026 10:51:14 +0000","Message-ID":"\n <bmm.hhubya0rcw.gcc.gcc-TEST.forge-bot.34.5575.CMT@forge-stage.sourceware.org>","In-Reply-To":"\n <bmm.hhubxss5wg.gcc.gcc-TEST.peppe.34.1.0@forge-stage.sourceware.org>","X-Mailer":"batrachomyomachia","X-Pull-Request-Organization":"gcc","X-Pull-Request-Repository":"gcc-TEST","X-Pull-Request":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34","X-Comment":"\n https://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-5575","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"quoted-printable","MIME-Version":"1.0","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"}},{"id":3680559,"web_url":"http://patchwork.ozlabs.org/comment/3680559/","msgid":"<bmm.h584c30iyo.gcc.gcc-TEST.redi.34.681.CMT@forge-stage.sourceware.org>","list_archive_url":null,"date":"2025-03-06T11:39:24","subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","submitter":{"id":93210,"url":"http://patchwork.ozlabs.org/api/people/93210/","name":"Jonathan Wakely via Sourceware Forge","email":"forge-bot+redi@forge-stage.sourceware.org"},"content":"@peppe wrote in https://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-674:\n\n> @tkaminsk wrote in #34 (comment):\n> \n> > The changes looks good to me.\n> \n> Thank you, I'll push this to trunk later, and post the final version on the list!\n\nN.B. Tomasz is not an approver for libstdc++, so this should have waited for approval :-\\\n\n--\nhttps://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-681","headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=38.145.34.32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org; dmarc=none (p=none dis=none)\n header.from=forge-stage.sourceware.org","sourceware.org;\n spf=pass smtp.mailfrom=forge-stage.sourceware.org","server2.sourceware.org;\n arc=none smtp.remote-ip=38.145.34.39"],"Received":["from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0xsx62qSz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 21:32:53 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 1B31940A2C49\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 11:32:38 +0000 (GMT)","from forge-stage.sourceware.org (vm08.sourceware.org [38.145.34.39])\n by sourceware.org (Postfix) with ESMTPS id EE0854BBC0C3\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:43 +0000 (GMT)","from forge-stage.sourceware.org (localhost [IPv6:::1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256)\n (No client certificate requested)\n by forge-stage.sourceware.org (Postfix) with ESMTPS id 9CD5B42BE8\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:41 +0000 (UTC)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 1B31940A2C49","OpenDKIM Filter v2.11.0 sourceware.org EE0854BBC0C3"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org EE0854BBC0C3","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org EE0854BBC0C3","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776855104; cv=none;\n b=nLFH3tg7fE2W9Ns6jhRGUl90LM7IEq4MMZEvGGvUfpUm4TWovnRZnleSc/E5ml3cn8EONTmChtFYFULxs3GAA6PTPi21iNSjNyEFqWFSeSFcKcsvBd1+wzQ8h4xSta1eUsA6LqdqwsN6CawM5lbbvH1yiyCNQoYfkx1YFXikNvE=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776855104; c=relaxed/simple;\n bh=r2yy8c7TFIyKiRo/tD8RukxnAphiL6lhyqcaMKr7Ytk=;\n h=Subject:From:To:Date:Message-ID:MIME-Version;\n b=SIyknDCKKb2Thha8ASYYssbPnj0Zkf8MAE1msLuBZwAicHb9TnB99ZsZx0N257+Vtptb1PlWM8iZUBQdZ77HmHbJ2X5xWVjZObDsscgUZO2jFv3KmS75Dm66bImFww9kSP5LLdCz+AuE+ch1gEcXD0oNIp5UgF5YTCpirt6YJAQ=","ARC-Authentication-Results":"i=1; server2.sourceware.org","Subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","From":"Jonathan Wakely via Sourceware Forge\n <forge-bot+redi@forge-stage.sourceware.org>","To":"gcc-patches mailing list <gcc-patches@gcc.gnu.org>","Date":"Thu, 06 Mar 2025 11:39:24 +0000","Message-ID":"\n <bmm.h584c30iyo.gcc.gcc-TEST.redi.34.681.CMT@forge-stage.sourceware.org>","In-Reply-To":"\n <bmm.hhubxss5wg.gcc.gcc-TEST.peppe.34.1.0@forge-stage.sourceware.org>","X-Mailer":"batrachomyomachia","X-Pull-Request-Organization":"gcc","X-Pull-Request-Repository":"gcc-TEST","X-Pull-Request":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34","X-Comment":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-681","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"quoted-printable","MIME-Version":"1.0","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"}},{"id":3680560,"web_url":"http://patchwork.ozlabs.org/comment/3680560/","msgid":"<bmm.hhubyowlhc.gcc.gcc-TEST.forge-bot.34.5577.CMT@forge-stage.sourceware.org>","list_archive_url":null,"date":"2026-04-22T10:51:39","subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","submitter":{"id":93212,"url":"http://patchwork.ozlabs.org/api/people/93212/","name":"Lichenor Forgejo Bot via Sourceware Forge","email":"forge-bot+forge-bot@forge-stage.sourceware.org"},"content":"Sent patch series version 1 containing 1 patches to gcc-patches mailing list <gcc-patches@gcc.gnu.org>.\n[Cover letter](https://inbox.sourceware.org/gcc-patches/bmm.hhubxss5wg.gcc.gcc-TEST.peppe.34.1.0@forge-stage.sourceware.org)\n\n--\nhttps://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-5577","headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=38.145.34.32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org; dmarc=none (p=none dis=none)\n header.from=forge-stage.sourceware.org","sourceware.org;\n spf=pass smtp.mailfrom=forge-stage.sourceware.org","server2.sourceware.org;\n arc=none smtp.remote-ip=38.145.34.39"],"Received":["from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0xtN4RqXz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 21:33:16 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 4E777441F95F\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 11:33:06 +0000 (GMT)","from forge-stage.sourceware.org (vm08.sourceware.org [38.145.34.39])\n by sourceware.org (Postfix) with ESMTPS id 388164423334\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:46 +0000 (GMT)","from forge-stage.sourceware.org (localhost [IPv6:::1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256)\n (No client certificate requested)\n by forge-stage.sourceware.org (Postfix) with ESMTPS id 068AB42BEF\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:42 +0000 (UTC)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 4E777441F95F","OpenDKIM Filter v2.11.0 sourceware.org 388164423334"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 388164423334","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 388164423334","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776855106; cv=none;\n b=sY/oN9o8LSMAl+GPuNVaTLsIG4a8O1PycaEjfGTQKMtIm35ni+xKylOBsi1lCBqgYFEsLdyRrqilzsd0racclFFkzPAIUXPyGlQxHjDe/uJHT+UcPA6OsN1DONFpJ24+CMxdbp5gkNekpTdB3iPreJA7ypNP48Q9Nqnu5s4+//c=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776855106; c=relaxed/simple;\n bh=mTgSSAgLywL5Cdy+PEDamjWJPBONkpmHacgt6P94RBA=;\n h=Subject:From:To:Date:Message-ID:MIME-Version;\n b=quKUI0SSFHjlcDwjhie8tOZgtAEO2UjptNYI7udwTTBpGvQmWxiT/zoYIWUMQCpiswRKLFS3SstIV6G2xS67N8A4XkL45FZRTHP5hIKC07O9oaAiYl9SXDtLyRs98BWXbEP8cYVU0fKWRczAtsCzbmBRkkMruwd0XblCdYIgB38=","ARC-Authentication-Results":"i=1; server2.sourceware.org","Subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","From":"Lichenor Forgejo Bot via Sourceware Forge\n <forge-bot+forge-bot@forge-stage.sourceware.org>","To":"gcc-patches mailing list <gcc-patches@gcc.gnu.org>","Date":"Wed, 22 Apr 2026 10:51:39 +0000","Message-ID":"\n <bmm.hhubyowlhc.gcc.gcc-TEST.forge-bot.34.5577.CMT@forge-stage.sourceware.org>","In-Reply-To":"\n <bmm.hhubxss5wg.gcc.gcc-TEST.peppe.34.1.0@forge-stage.sourceware.org>","X-Mailer":"batrachomyomachia","X-Pull-Request-Organization":"gcc","X-Pull-Request-Repository":"gcc-TEST","X-Pull-Request":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34","X-Comment":"\n https://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-5577","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"quoted-printable","MIME-Version":"1.0","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"}},{"id":3680561,"web_url":"http://patchwork.ozlabs.org/comment/3680561/","msgid":"<bmm.h576g58kow.gcc.gcc-TEST.tkaminsk.34.99.REVIEW@forge-stage.sourceware.org>","list_archive_url":null,"date":"2025-03-05T15:09:59","subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","submitter":{"id":93223,"url":"http://patchwork.ozlabs.org/api/people/93223/","name":"tkaminsk via Sourceware Forge","email":"forge-bot+tkaminsk@forge-stage.sourceware.org"},"content":"(tkaminsk) <tkaminsk@gcc.gnu.org>) commented on the code:\n\n\n> +++ libstdc++-v3/include/std/complex\n> @@ -611,0 +672,4 @@\n> +    constexpr const _Tp&&\n> +    get(const complex<_Tp>&& __z) noexcept\n> +    {\n> +      return std::move(__z).__get(_Int);\nThe `static_assert(_Int < 2);` equivalent for `Mandates` is missing here.\n\n\n--\nhttps://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-660","headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=38.145.34.32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org; dmarc=none (p=none dis=none)\n header.from=forge-stage.sourceware.org","sourceware.org;\n spf=pass smtp.mailfrom=forge-stage.sourceware.org","server2.sourceware.org;\n arc=none smtp.remote-ip=38.145.34.39"],"Received":["from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0xtk2gmxz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 21:33:34 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 1424E433268B\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 11:33:31 +0000 (GMT)","from forge-stage.sourceware.org (vm08.sourceware.org [38.145.34.39])\n by sourceware.org (Postfix) with ESMTPS id 5097040AB6BC\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:43 +0000 (GMT)","from forge-stage.sourceware.org (localhost [IPv6:::1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256)\n (No client certificate requested)\n by forge-stage.sourceware.org (Postfix) with ESMTPS id 5D8D442BE4\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:41 +0000 (UTC)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 1424E433268B","OpenDKIM Filter v2.11.0 sourceware.org 5097040AB6BC"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 5097040AB6BC","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 5097040AB6BC","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776855103; cv=none;\n b=u4S4DvbyGXmdZJw4sQ6XIYlZjJcCo7uc1TEMaapUIE59fLbsPLLeKE4eS5dBIX21f03semNbBTTuc9BkKniWOI2lp3SHwqerGIvmQUD806wIjmCXOAwWubkB3b4rJ97Bv7w8t79Pj5FPbVEpWxVZvCNQXSuwzGnKAEYc7cqzI1w=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776855103; c=relaxed/simple;\n bh=syL0JgHgT0+jml48kPKthP3l1ePv5mYVSIFhMi61opM=;\n h=Subject:From:To:Date:Message-ID:MIME-Version;\n b=j0mewyMhfZ+klP9cg1R8ShFyt3r7aw8IjKnSGS9QebQnffjg58EKeP5immx+fAWj/LAqaYMSZdxXU50o68P86OXQ5DvhW4rX/FxO36kvG919/g7CvruKugT2guQc1EWT46Xc3Y79C7w7JCKEAph2XeLCEmn1OQdbMkuDczxUhog=","ARC-Authentication-Results":"i=1; server2.sourceware.org","Subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","From":"tkaminsk via Sourceware Forge\n <forge-bot+tkaminsk@forge-stage.sourceware.org>","To":"gcc-patches mailing list <gcc-patches@gcc.gnu.org>","Date":"Wed, 05 Mar 2025 15:09:59 +0000","Message-ID":"\n <bmm.h576g58kow.gcc.gcc-TEST.tkaminsk.34.99.REVIEW@forge-stage.sourceware.org>","In-Reply-To":"\n <bmm.hhubxss5wg.gcc.gcc-TEST.peppe.34.1.0@forge-stage.sourceware.org>","X-Mailer":"batrachomyomachia","X-Pull-Request-Organization":"gcc","X-Pull-Request-Repository":"gcc-TEST","X-Pull-Request":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34","X-Review":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-660","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"7bit","MIME-Version":"1.0","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"}},{"id":3680562,"web_url":"http://patchwork.ozlabs.org/comment/3680562/","msgid":"<bmm.h576fndkjk.gcc.gcc-TEST.tkaminsk.34.98.REVIEW@forge-stage.sourceware.org>","list_archive_url":null,"date":"2025-03-05T15:09:29","subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","submitter":{"id":93223,"url":"http://patchwork.ozlabs.org/api/people/93223/","name":"tkaminsk via Sourceware Forge","email":"forge-bot+tkaminsk@forge-stage.sourceware.org"},"content":"(tkaminsk) <tkaminsk@gcc.gnu.org>) commented on the code:\n\n\n> +++ libstdc++-v3/include/std/complex\n> @@ -247,0 +269,4 @@\n> +      constexpr auto&&\n> +      __get(this _Cp&& __z, size_t __i) noexcept\n> +      {\n> +\tif (__i == 0)\nI think this would be better as function accepting only lvalues. This will reduce the number of instantiations required by the compiler (only 2 instantiations instead of 4), and remove the need for `forward_like`:\n```\nconstexpr auto&&\n      __get(this _Cp& __z, size_t __i) noexcept\n      {\n      // Or use ternary as before.\n\tif (__i == 0)\n\t  return __z._M_real;\n\treturn __z._M_imag;\n      }\n```\n\n\nThen the `complex<T>&&` overload of the `std::get` would use:\n```\n      return std::move(__z.__get(_Int));\n```\n\n> +++ libstdc++-v3/include/std/complex\n> @@ -247,0 +269,4 @@\n> +      constexpr auto&&\n> +      __get(this _Cp&& __z, size_t __i) noexcept\n> +      {\n> +\tif (__i == 0)\nErk, sorry, ignore the previous comment. I misread the snippet.\n\n\n--\nhttps://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-658","headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org; dmarc=none (p=none dis=none)\n header.from=forge-stage.sourceware.org","sourceware.org;\n spf=pass smtp.mailfrom=forge-stage.sourceware.org","server2.sourceware.org;\n arc=none smtp.remote-ip=38.145.34.39"],"Received":["from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0xv53xrxz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 21:33:53 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 29D3A4209E09\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 11:33:51 +0000 (GMT)","from forge-stage.sourceware.org (vm08.sourceware.org [38.145.34.39])\n by sourceware.org (Postfix) with ESMTPS id 7818B4422B12\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:41 +0000 (GMT)","from forge-stage.sourceware.org (localhost [IPv6:::1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256)\n (No client certificate requested)\n by forge-stage.sourceware.org (Postfix) with ESMTPS id 47E1642BE3\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:41 +0000 (UTC)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 29D3A4209E09","OpenDKIM Filter v2.11.0 sourceware.org 7818B4422B12"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 7818B4422B12","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 7818B4422B12","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776855101; cv=none;\n b=cjI58j6i+pAjMGvpBxRxxmbWT1HQBmhwldMauDie95DbEQ9DQVGPMTCE1Anucxl18pAQwvWSKT4Sgr+f0FzhSkZIYod/oUsK6QinKQFcC0eUDTKqDHUX+BuACdLKicX0pp5d1Oqd508+0vbytccs0JkcyZo2jMTHCam1AlSal+c=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776855101; c=relaxed/simple;\n bh=YhQV4n+Dd7x8pBoPFpN6Vn1wcV7RykOpTbPCeCXLhi0=;\n h=Subject:From:To:Date:Message-ID:MIME-Version;\n b=gHa+nLd4FzQVwDCveP1AWxgt3RaMdR3s9nfV7+AyalIkmpagRNoHS93X0ufQ4+5fIA+H+Pd1QcgMdmMRLmw1pBkjAFn8VlcU68g+mhxkmhIMra0QYeXxN3qQcG1RC9aeoexSuOKQIrf14L3TcliNw0OOsqG0t6GZg2GtciXJAqI=","ARC-Authentication-Results":"i=1; server2.sourceware.org","Subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","From":"tkaminsk via Sourceware Forge\n <forge-bot+tkaminsk@forge-stage.sourceware.org>","To":"gcc-patches mailing list <gcc-patches@gcc.gnu.org>","Date":"Wed, 05 Mar 2025 15:09:29 +0000","Message-ID":"\n <bmm.h576fndkjk.gcc.gcc-TEST.tkaminsk.34.98.REVIEW@forge-stage.sourceware.org>","In-Reply-To":"\n <bmm.hhubxss5wg.gcc.gcc-TEST.peppe.34.1.0@forge-stage.sourceware.org>","X-Mailer":"batrachomyomachia","X-Pull-Request-Organization":"gcc","X-Pull-Request-Repository":"gcc-TEST","X-Pull-Request":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34","X-Review":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-658","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"quoted-printable","MIME-Version":"1.0","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"}},{"id":3680564,"web_url":"http://patchwork.ozlabs.org/comment/3680564/","msgid":"<bmm.h587wdbygw.gcc.gcc-TEST.redi.34.690.CMT@forge-stage.sourceware.org>","list_archive_url":null,"date":"2025-03-06T13:48:41","subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","submitter":{"id":93210,"url":"http://patchwork.ozlabs.org/api/people/93210/","name":"Jonathan Wakely via Sourceware Forge","email":"forge-bot+redi@forge-stage.sourceware.org"},"content":"No harm done. Tomasz's comments were good and the patch you pushed is fine (I particularly like the `__get_part` name you came up with).\n\n--\nhttps://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-690","headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org; dmarc=none (p=none dis=none)\n header.from=forge-stage.sourceware.org","sourceware.org;\n spf=pass smtp.mailfrom=forge-stage.sourceware.org","server2.sourceware.org;\n arc=none smtp.remote-ip=38.145.34.39"],"Received":["from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0xw9522Nz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 21:34:49 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 8B7A6441F966\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 11:34:47 +0000 (GMT)","from forge-stage.sourceware.org (vm08.sourceware.org [38.145.34.39])\n by sourceware.org (Postfix) with ESMTPS id 5CC5B43B5DBF\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:44 +0000 (GMT)","from forge-stage.sourceware.org (localhost [IPv6:::1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256)\n (No client certificate requested)\n by forge-stage.sourceware.org (Postfix) with ESMTPS id DB96742BED\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:41 +0000 (UTC)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 8B7A6441F966","OpenDKIM Filter v2.11.0 sourceware.org 5CC5B43B5DBF"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 5CC5B43B5DBF","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 5CC5B43B5DBF","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776855104; cv=none;\n b=qUJCzUiFIgfBl84DmrfLrHjkxCcXZ2FPt03lh/qsvPtFCjeI9OmFZFfC3xVfOf0mihuNmfOQ7R1KqPnNg2PbvznUk9S1VVQ1rDpH4Mzko4K1OY3tm7LaSegrt2wGq3wAZIMSbgYDFB99FPw9UgdpFvckSsmVnjGNn3UIFIgzajE=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776855104; c=relaxed/simple;\n bh=f+Jil6y+IUUTKRiB/KzQ+9ToJHgNzu9UdkXgDuNCaeY=;\n h=Subject:From:To:Date:Message-ID:MIME-Version;\n b=MKtgLVmjGlfOaHx+HzgPFAKnBo0YGQixzMP6+sT6DSBAdXtSWRc+aFBnFO+Yv3YdwqIR9+Zue2IbVtPmGIPd1y5ew4IMvibuis3GlxW17y1agFU+6kK62QIFunlg6Q500PRTIZWc1DTDkAGFc7aPAZxeqSeOgz4VYr+KYrWwkLc=","ARC-Authentication-Results":"i=1; server2.sourceware.org","Subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","From":"Jonathan Wakely via Sourceware Forge\n <forge-bot+redi@forge-stage.sourceware.org>","To":"gcc-patches mailing list <gcc-patches@gcc.gnu.org>","Date":"Thu, 06 Mar 2025 13:48:41 +0000","Message-ID":"\n <bmm.h587wdbygw.gcc.gcc-TEST.redi.34.690.CMT@forge-stage.sourceware.org>","In-Reply-To":"\n <bmm.hhubxss5wg.gcc.gcc-TEST.peppe.34.1.0@forge-stage.sourceware.org>","X-Mailer":"batrachomyomachia","X-Pull-Request-Organization":"gcc","X-Pull-Request-Repository":"gcc-TEST","X-Pull-Request":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34","X-Comment":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-690","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"quoted-printable","MIME-Version":"1.0","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"}},{"id":3680565,"web_url":"http://patchwork.ozlabs.org/comment/3680565/","msgid":"<bmm.hhubyt32vw.gcc.gcc-TEST.peppe.34.1.SUMMARY@forge-stage.sourceware.org>","list_archive_url":null,"date":"2026-04-22T10:51:45","subject":"[SUMMARY] Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol\n for std::complex (P2819R2)","submitter":{"id":93222,"url":"http://patchwork.ozlabs.org/api/people/93222/","name":"peppe via Sourceware Forge","email":"forge-bot+peppe@forge-stage.sourceware.org"},"content":"This is a summary of discussions relative to the merge request created by (peppe) titled\nWIP: libstdc++: implement tuple protocol for std::complex (P2819R2)\nsince its creation.\n\nDescription: This commit implements P2819R2 for C++26, making std::complex\ndestructurable and tuple-like (see [complex.tuple]).\n\nstd::get needs to get forward declared in stl_pair.h (following the\nexisting precedent for the implementation of P2165R4, cf.\nr14-8710-g65b4cba9d6a9ff), and implemented in `<complex>`.\n\nAlso, std::get(complex<T>) needs to return *references* to the real and\nimaginary parts of a std::complex object, honoring the value category\nand constness of the argument. In principle a straightforward task, it\ngets a bit convoluted by the fact that:\n\n1) std::complex does not have existing getters that one can use for this\n(real() and imag() return values, not references);\n\n2) there are specializations for language/extended floating-point types,\nwhich requires some duplication -- need to amend the primary and all\nthe specializations;\n\n3) these specializations use a `__complex__ T`, but the primary template\nuses two non-static data members, making generic code harder to write.\n\nThe implementation choice used here is to add the overloads of std::get\nfor complex as declared in [complex.tuple]. In turn they dispatch to\nnewly added getters that extract references to the real/imaginary parts\nof a complex<T>. These getters are private API and the implementation\ndepends on whether it's the primary (bind the data member) or a\nspecialization (use the GCC language extensions for __complex__).\n\nAdd a test that covers the aspects of the tuple protocol, as well as the\ntuple-like interface. While at it, add a test for the existing\ntuple-like feature-testing macro.\n\n```\n\tPR libstdc++/113310\n\nlibstdc++-v3/ChangeLog:\n\n    * include/bits/stl_pair.h (get): Forward-declare std::get for\n    std::complex.\n    * include/bits/version.def (tuple_like): Bump the value of\n    the feature-testing macro in C++26.\n    * include/bits/version.h: Regenerate.\n    * include/std/complex: Implement the tuple protocol for\n    std::complex.\n    (tuple_size): Specialize for std::complex.\n    (tuple_element): Ditto.\n    (__is_tuple_like_v): Ditto.\n    (complex): Add getters to obtain references to the real and\n    imaginary part, on the primary class template and on its\n    specializations.\n    (get): Add the overload of std::get for std::complex.\n    * testsuite/20_util/tuple/tuple_like_ftm.cc: New test.\n    * testsuite/26_numerics/complex/tuple_like.cc: New test.\n```\n\nThe full and up to date discussion can be found at https://forge.sourceware.org/gcc/gcc-TEST/pulls/34\n\nThe merge request has been closed without being merged directly on the forge repository.\n\nOn 2025-03-03 13:13:26+00:00, Jonathan Wakely (redi) <redi@gcc.gnu.org> commented on the code:\n\n\n> +++ libstdc++-v3/include/std/complex\n> @@ -126,0 +132,4 @@\n> +#if __glibcxx_tuple_like >= 202311L // >= C++26\n> +  template<typename _Tp>\n> +    struct tuple_size<complex<_Tp>>\n> +      : public integral_constant<size_t, 2> { };\nUn-indent so `:` is aligned with `struct`\n> +++ libstdc++-v3/include/std/complex\n> @@ -247,0 +267,4 @@\n> +    constexpr _Tp& __real_part() & { return _M_real; }\n> +    constexpr const _Tp& __real_part() const & { return _M_real; }\n> +    constexpr _Tp& __imag_part() & { return _M_imag; }\n> +    constexpr const _Tp& __imag_part() const & { return _M_imag; }\nThese should all be noexcept.\n\nBut it seems a little unfortunate that we need to add four new public members for this to work.\n\nCould there just be a single function template?\n\n```\n      template<size_t _Int, typename _Cp>\n        requires (_Int < 2) && is_same_v<const _Cp, const complex>\n        friend constexpr auto&\n        __get(_Cp& __z) noexcept\n        {\n          if constexpr (_Int == 0)\n            return __z._M_real;\n          else\n            return __z._M_imag;\n        }\n```\nand similarly for the specializations, but using `__real__ _M_value` and `__imag__ _M_value`.\n\nThis way we only add one new hidden friend to each specialization, instead of four public member functions.\n\nThe `get` function templates would be just:\n\n```\n    template<size_t _Int, typename _Tp>\n      [[nodiscard,__gnu__::__always_inline__]]\n      constexpr _Tp&\n      get(complex<_Tp>& __z) noexcept\n      { return __get<_Int>(__z); }\n\n    template<size_t _Int, typename _Tp>\n      [[nodiscard,__gnu__::__always_inline__]]\n      constexpr const _Tp&\n      get(const complex<_Tp>& __z) noexcept\n      { return __get<_Int>(__z); }\n\n    template<size_t _Int, typename _Tp>\n      [[nodiscard,__gnu__::__always_inline__]]\n      constexpr _Tp&&\n      get(complex<_Tp>&& __z) noexcept\n      { return std::move(__get<_Int>(__z)); }\n\n    template<size_t _Int, typename _Tp>\n      [[nodiscard,__gnu__::__always_inline__]]\n      constexpr const _Tp&&\n      get(const complex<_Tp>&& __z) noexcept\n      { return std::move(__get<_Int>(__z)); }\n```\n\nN.B. I think it would be good to use always_inline here. And actually, if we do that then we could pass _Int as a function parameter not a template parameter:\n\n```\n      template<typename _Cp>\n        requires is_same_v<const _Cp, const complex>\n        friend constexpr auto&\n        __get(_Cp& __z) noexcept\n        {\n          return _Int == 0 ? __z._M_real : __z._M_imag;\n        }\n```\n\nThat would reduce the number of instantiations of `__get` by half, but if they're always inline maybe that doesn't matter so much. If we did that, we'd need to put the `static_assert(_Int < 2);` back into the `std::get` overloads which I removed above.\n\nEven if we don't pass `_Int` as a function parameter, it might still be simpler to do:\n\n  `return _Int == 0 ? __z._M_real : __z._M_imag;`\n\nThe types are the same, so there's no real need to use `if constexpr` to create a discarded statement. Both branches of the if-else are always valid.\n\nWhat do you think?\n> +++ libstdc++-v3/include/std/complex\n> @@ -247,0 +267,4 @@\n> +    constexpr _Tp& __real_part() & { return _M_real; }\n> +    constexpr const _Tp& __real_part() const & { return _M_real; }\n> +    constexpr _Tp& __imag_part() & { return _M_imag; }\n> +    constexpr const _Tp& __imag_part() const & { return _M_imag; }\nWell, my first round was indeed using one single private getter implemented using `deducing this` and `forward_like`, but unfortunately Clang 17 lacks it.\n\nThen indeed I starting having doubts regarding what's a better tradeoff here -- multiple non-template overloads (like right now) or a generic templated getter? Which one would put less pressure on the compiler, generate less bloat, etc.? I went with the former (overloads), but it's really a judgement call, the code is a bit redundant but straightforward either way...\n> +++ libstdc++-v3/include/std/complex\n> @@ -247,0 +267,4 @@\n> +    constexpr _Tp& __real_part() & { return _M_real; }\n> +    constexpr const _Tp& __real_part() const & { return _M_real; }\n> +    constexpr _Tp& __imag_part() & { return _M_imag; }\n> +    constexpr const _Tp& __imag_part() const & { return _M_imag; }\n> but unfortunately Clang 17 lacks it.\n\nAh I see. Clang 20 will be released before GCC 15, and then there will be Clang 18, 19 and 20 releases which support the feature, so I think that's good enough to use it. We could always make the `__cpp_lib_tuple_like` macro depend on `__cpp_explicit_this_parameter`.\n\nRegarding bloat, I think turning the `_Int` template parameter into a function parameter will reduce the number of separate functions that need to be compiled. If they're `always_inline` then no code should be emitted so no real bloat (just maybe debug symbols).\n\nThanks for pushing that change, I'll take another look ...\n> +++ libstdc++-v3/include/std/complex\n> @@ -247,0 +267,4 @@\n> +    constexpr _Tp& __real_part() & { return _M_real; }\n> +    constexpr const _Tp& __real_part() const & { return _M_real; }\n> +    constexpr _Tp& __imag_part() & { return _M_imag; }\n> +    constexpr const _Tp& __imag_part() const & { return _M_imag; }\n> We could always make the __cpp_lib_tuple_like macro depend on __cpp_explicit_this_parameter.\n\nI've done so (added the dependency), and implemented the private `__get` as a nonstatic member function with deducing this + forward_like.\n> +++ libstdc++-v3/include/std/complex\n> @@ -247,0 +267,4 @@\n> +    constexpr _Tp& __real_part() & { return _M_real; }\n> +    constexpr const _Tp& __real_part() const & { return _M_real; }\n> +    constexpr _Tp& __imag_part() & { return _M_imag; }\n> +    constexpr const _Tp& __imag_part() const & { return _M_imag; }\n(Ideally I could also make std::get take a `_Cp&&` parameter, and centralize the implementation, but the specification in the Standard spells out the four overloads, so I'm guessing I'm not allowed to do that.)\n> +++ libstdc++-v3/include/std/complex\n> @@ -126,0 +135,4 @@\n> +      : public integral_constant<size_t, 2> { };\n> +  template<typename _Tp>\n> +    struct tuple_element<0, complex<_Tp>>\n> +      { using type = _Tp; };\nHere and line 141 the opening brace should be aligned with `struct`.\n> +++ libstdc++-v3/include/bits/stl_pair.h\n> @@ -152,0 +166,4 @@\n> +    constexpr const _Tp&&\n> +    get(const complex<_Tp>&&) noexcept;\n> +#endif\n> +\nI wonder if we want to introduce a new `<bits/tuple_like.h>` header and move some things from `<bits/utility.h>` into there, and move all these `get` overloads there. That's for a later date anyway.\n> +++ libstdc++-v3/include/bits/version.def\n> @@ -1793,2 +1793,4 @@\n>  ftms = {\n>    name = tuple_like;\n> +  values = {\n> +    v = 202311;\nMatches the value from P2019R2 👍\n\nOn 2025-03-04 16:30:25+00:00, Jonathan Wakely (redi) <redi@gcc.gnu.org> commented on the code:\nSome outdated comments from Tomasz, which I forgot to submit before you force-pushed a new revision, sorry. Here they are for completeness. I'll reload and look at the new version now ...\n\n> +++ libstdc++-v3/include/std/complex\n> @@ -247,0 +268,4 @@\n> +      requires is_same_v<const _Cp, const complex>\n> +      [[nodiscard,__gnu__::__always_inline__]]\n> +      friend constexpr auto&\n> +      __get(size_t __i, _Cp& __z) noexcept\nTomasz suggested `__get_element` or another slightly less generic name here. We do have `__variant::__detail::__get` declared at namespace-scope in `<variant>`, but still avoiding the very general `__get` seems sensible.\n> +++ libstdc++-v3/include/std/complex\n> @@ -247,0 +268,4 @@\n> +      requires is_same_v<const _Cp, const complex>\n> +      [[nodiscard,__gnu__::__always_inline__]]\n> +      friend constexpr auto&\n> +      __get(size_t __i, _Cp& __z) noexcept\nSure thing, will rename. How about `__get_part` (real part, imaginary part)?\n> +++ libstdc++-v3/include/std/complex\n> @@ -247,0 +266,4 @@\n> +#if __glibcxx_tuple_like >= 202311L // >= C++26\n> +    template<typename _Cp>\n> +      requires is_same_v<const _Cp, const complex>\n> +      [[nodiscard,__gnu__::__always_inline__]]\nnodiscard isn't really needed here, since this is an internal function and we don't discard it.\n> +++ libstdc++-v3/include/std/complex\n> @@ -611,0 +653,4 @@\n> +    constexpr _Tp&&\n> +    get(complex<_Tp>&& __z) noexcept\n> +    {\n> +      return std::move(get<_Int>(__z));\nThis should either call `__get` (and do the `static_assert` here) or use `std::` to avoid ADL when calling `get`.\n> +++ libstdc++-v3/include/std/complex\n> @@ -611,0 +670,4 @@\n> +    constexpr const _Tp&&\n> +    get(const complex<_Tp>&& __z) noexcept\n> +    {\n> +      return std::move(get<_Int>(__z));\nSame here, use `__get` or `std::get`\n> +++ libstdc++-v3/include/std/complex\n> @@ -611,0 +670,4 @@\n> +    constexpr const _Tp&&\n> +    get(const complex<_Tp>&& __z) noexcept\n> +    {\n> +      return std::move(get<_Int>(__z));\nOK; this no longer applies on the last version.\n\nOn 2025-03-05 15:09:29+00:00, (tkaminsk) <tkaminsk@gcc.gnu.org> commented on the code:\n\n\n> +++ libstdc++-v3/include/std/complex\n> @@ -247,0 +269,4 @@\n> +      constexpr auto&&\n> +      __get(this _Cp&& __z, size_t __i) noexcept\n> +      {\n> +\tif (__i == 0)\nI think this would be better as function accepting only lvalues. This will reduce the number of instantiations required by the compiler (only 2 instantiations instead of 4), and remove the need for `forward_like`:\n```\nconstexpr auto&&\n      __get(this _Cp& __z, size_t __i) noexcept\n      {\n      // Or use ternary as before.\n\tif (__i == 0)\n\t  return __z._M_real;\n\treturn __z._M_imag;\n      }\n```\n\n\nThen the `complex<T>&&` overload of the `std::get` would use:\n```\n      return std::move(__z.__get(_Int));\n```\n> +++ libstdc++-v3/include/std/complex\n> @@ -247,0 +269,4 @@\n> +      constexpr auto&&\n> +      __get(this _Cp&& __z, size_t __i) noexcept\n> +      {\n> +\tif (__i == 0)\nErk, sorry, ignore the previous comment. I misread the snippet.\n\nOn 2025-03-05 15:09:58+00:00, (tkaminsk) <tkaminsk@gcc.gnu.org> commented on the code:\n\n\n> +++ libstdc++-v3/include/std/complex\n> @@ -611,0 +672,4 @@\n> +    constexpr const _Tp&&\n> +    get(const complex<_Tp>&& __z) noexcept\n> +    {\n> +      return std::move(__z).__get(_Int);\nThe `static_assert(_Int < 2);` equivalent for `Mandates` is missing here.\n\n\nOn 2025-03-06 07:51:08+00:00, (tkaminsk) wrote:\n\nThe changes looks good  to me.\n\n\nOn 2025-03-06 10:22:12+00:00, (peppe) wrote:\n\n@tkaminsk wrote in https://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-671:\n\n> The changes looks good to me.\n\nThank you, I'll push this to trunk later, and post the final version on the list!\n\n\nOn 2025-03-06 11:38:35+00:00, (peppe) wrote:\n\nPushed as r15-7853-gde231924b73bc1, thank you!\n\n\nOn 2025-03-06 11:39:24+00:00, Jonathan Wakely (redi) wrote:\n\n@peppe wrote in https://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-674:\n\n> @tkaminsk wrote in #34 (comment):\n> \n> > The changes looks good to me.\n> \n> Thank you, I'll push this to trunk later, and post the final version on the list!\n\nN.B. Tomasz is not an approver for libstdc++, so this should have waited for approval :-\\\n\n\nOn 2025-03-06 11:41:58+00:00, (tkaminsk) wrote:\n\n\n> Thank you, I'll push this to trunk later, and post the final version on the list!\n\nAs clarification here, the change still need to have @redi approval before being submitted to trunk. This is my fault, as I was not explicit on that fact in my message, and I will be more clear next time.\n\n\nOn 2025-03-06 11:51:22+00:00, Jonathan Wakely (redi) wrote:\n\nThe patch looks good though, so consider this retroactive approval 👍\n\n\nOn 2025-03-06 13:26:05+00:00, (peppe) wrote:\n\nHi,\nI'm truly sorry, I don't know why but I assumed that the above was indeed an approval. My bad, I'll verify more (and double ask in case of doubt).\n\n\nOn 2025-03-06 13:48:41+00:00, Jonathan Wakely (redi) wrote:\n\nNo harm done. Tomasz's comments were good and the patch you pushed is fine (I particularly like the `__get_part` name you came up with).\n\n\nOn 2026-04-22 10:51:14+00:00, Lichenor Forgejo Bot (forge-bot) wrote:\n\n<!-- pr-new-version -->\nVersion 1 of this pull request has been stored. It includes the following commits:\n- libstdc++: implement tuple protocol for std::complex (P2819R2) - 601a2df924b7bd13b21c7ee1af3f4531313a2409\n\n\n\nOn 2026-04-22 10:51:39+00:00, Lichenor Forgejo Bot (forge-bot) wrote:\n\nSent patch series version 1 containing 1 patches to gcc-patches mailing list <gcc-patches@gcc.gnu.org>.\n[Cover letter](https://inbox.sourceware.org/gcc-patches/bmm.hhubxss5wg.gcc.gcc-TEST.peppe.34.1.0@forge-stage.sourceware.org)","headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org; dmarc=none (p=none dis=none)\n header.from=forge-stage.sourceware.org","sourceware.org;\n spf=pass smtp.mailfrom=forge-stage.sourceware.org","server2.sourceware.org;\n arc=none smtp.remote-ip=38.145.34.39"],"Received":["from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0xwq2ls5z1yD5\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 21:35:23 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id D61F751A3B92\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 11:35:20 +0000 (GMT)","from forge-stage.sourceware.org (vm08.sourceware.org [38.145.34.39])\n by sourceware.org (Postfix) with ESMTPS id 34755450BBFA\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:46 +0000 (GMT)","from forge-stage.sourceware.org (localhost [IPv6:::1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256)\n (No client certificate requested)\n by forge-stage.sourceware.org (Postfix) with ESMTPS id 84BE442BDF\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:45 +0000 (UTC)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org D61F751A3B92","OpenDKIM Filter v2.11.0 sourceware.org 34755450BBFA"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 34755450BBFA","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 34755450BBFA","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776855106; cv=none;\n b=PWHCZI7/1SXPHx5RA722ET39PU+6/dGhNK3KhJWypQvgxj2ID/xiwh6Da3fOUPTshQpF3rDk+XVM22se7Fv38tA5PC1YfSYCEpWKV1UyX4eZMFISk87kxA7xmYOkt8pwQpcQzqapfJx1UfG2SGwelWVqgdPuq87U72Z00YMvH34=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776855106; c=relaxed/simple;\n bh=aJMNI2qMnOPPC1UKGupABuQW2TITXbiRA6XQNzZiGG8=;\n h=Subject:From:To:Message-ID:MIME-Version:Date;\n b=cfHCob7fs4B4sWIa5j/PEezOpXAbulgdBn0APs1AJAItA21hhtvjX+/QWUJCz2qoI/sR265AoajJyyZxR7eXMVCDG3Lx8Cz5n9pQ+q2Cn1lLk3+9DrTd06dtMRJWFrRJnFfit8dhDKpQtXsr55gNdfq9jdJqqnZ2yPSzC6v7t6Y=","ARC-Authentication-Results":"i=1; server2.sourceware.org","Subject":"[SUMMARY] Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol\n for std::complex (P2819R2)","From":"peppe via Sourceware Forge <forge-bot+peppe@forge-stage.sourceware.org>","To":"gcc-patches mailing list <gcc-patches@gcc.gnu.org>","In-Reply-To":"\n <bmm.hhubxss5wg.gcc.gcc-TEST.peppe.34.1.0@forge-stage.sourceware.org>","Message-ID":"\n <bmm.hhubyt32vw.gcc.gcc-TEST.peppe.34.1.SUMMARY@forge-stage.sourceware.org>","X-Mailer":"batrachomyomachia","X-Pull-Request-Organization":"gcc","X-Pull-Request-Repository":"gcc-TEST","X-Pull-Request":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"quoted-printable","MIME-Version":"1.0","Date":"Wed, 22 Apr 2026 10:51:45 +0000 (UTC)","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"}},{"id":3680566,"web_url":"http://patchwork.ozlabs.org/comment/3680566/","msgid":"<bmm.h5827h8ow0.gcc.gcc-TEST.peppe.34.674.CMT@forge-stage.sourceware.org>","list_archive_url":null,"date":"2025-03-06T10:22:12","subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","submitter":{"id":93222,"url":"http://patchwork.ozlabs.org/api/people/93222/","name":"peppe via Sourceware Forge","email":"forge-bot+peppe@forge-stage.sourceware.org"},"content":"@tkaminsk wrote in https://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-671:\n\n> The changes looks good to me.\n\nThank you, I'll push this to trunk later, and post the final version on the list!\n\n--\nhttps://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-674","headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org; dmarc=none (p=none dis=none)\n header.from=forge-stage.sourceware.org","sourceware.org;\n spf=pass smtp.mailfrom=forge-stage.sourceware.org","server2.sourceware.org;\n arc=none smtp.remote-ip=38.145.34.39"],"Received":["from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0xyh3cXYz1yD5\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 21:37:00 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 26E864335C40\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 11:36:43 +0000 (GMT)","from forge-stage.sourceware.org (vm08.sourceware.org [38.145.34.39])\n by sourceware.org (Postfix) with ESMTPS id D4C514B92092\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:43 +0000 (GMT)","from forge-stage.sourceware.org (localhost [IPv6:::1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256)\n (No client certificate requested)\n by forge-stage.sourceware.org (Postfix) with ESMTPS id 7D40742BE6\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:51:41 +0000 (UTC)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 26E864335C40","OpenDKIM Filter v2.11.0 sourceware.org D4C514B92092"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org D4C514B92092","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org D4C514B92092","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776855103; cv=none;\n b=xLbL7q+cdVsNiFEi66UiL9nptnXMA9x7MLGvDV5VtgOd2UNg+9Rc4Wsx3Em2I9vkXGhiUwIR9Hzc7lB23c0ue9e/VzphP9j7/Jx2BDTB10SAmGoXFe1W5iC6EwR7S1B9tRk4r4YCnRxrmMpWu9LeHXHpHBFrKYiX7jAgLl/SDeo=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776855103; c=relaxed/simple;\n bh=aucTRvwxPTZZt3so5eKQSaMEBTjbnk7cWrc6uRw7B+o=;\n h=Subject:From:To:Date:Message-ID:MIME-Version;\n b=or8n6kW9hbo+CCMdGH0y8bu3Dnt62ikdOzMK+vqBqIiNTaplW+LGB/VCpt5tFgGHL0GgrYRLCOWqERU/37VL5j/rV5HnSkUEYQKVfMm97UkssgmJ6tiUefdCl3zDQJs1scwggpS+uyVBwzN0ZugNojcq37O7iBOTpUD99JoHzfU=","ARC-Authentication-Results":"i=1; server2.sourceware.org","Subject":"Re: [PATCH v1 0/1] WIP: libstdc++: implement tuple protocol for\n std::complex (P2819R2)","From":"peppe via Sourceware Forge <forge-bot+peppe@forge-stage.sourceware.org>","To":"gcc-patches mailing list <gcc-patches@gcc.gnu.org>","Date":"Thu, 06 Mar 2025 10:22:12 +0000","Message-ID":"\n <bmm.h5827h8ow0.gcc.gcc-TEST.peppe.34.674.CMT@forge-stage.sourceware.org>","In-Reply-To":"\n <bmm.hhubxss5wg.gcc.gcc-TEST.peppe.34.1.0@forge-stage.sourceware.org>","X-Mailer":"batrachomyomachia","X-Pull-Request-Organization":"gcc","X-Pull-Request-Repository":"gcc-TEST","X-Pull-Request":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34","X-Comment":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/34#issuecomment-674","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"quoted-printable","MIME-Version":"1.0","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"}}]