[{"id":3681940,"web_url":"http://patchwork.ozlabs.org/comment/3681940/","msgid":"<CACb0b4kKb6GNSUMS+Ovt9yN_0eGzKbaoCQtT1h8xxpe50DMgGA@mail.gmail.com>","list_archive_url":null,"date":"2026-04-24T10:11:44","subject":"Re: [PATCH] libstdc++: Constrain views::adjacent(_transform)?<0> to\n forward_ranges.","submitter":{"id":48004,"url":"http://patchwork.ozlabs.org/api/people/48004/","name":"Jonathan Wakely","email":"jwakely@redhat.com"},"content":"On Fri, 24 Apr 2026 at 11:05, Tomasz Kamiński <tkaminsk@redhat.com> wrote:\n>\n> This resolves LWG 4098, \"views::adjacent<0> should reject non-forward ranges\"\n> which was approved in Sofia 2024.\n>\n> libstdc++-v3/ChangeLog:\n>\n>         * include/std/ranges (_AdjacentTransform::operator())\n>         (_Adjacent::operator()): Require forward_range for N == 0.\n>         * testsuite/std/ranges/adaptors/adjacent/1.cc: Test if input_ranges\n>         are rejected.\n>         * testsuite/std/ranges/adaptors/adjacent_transform/1.cc: Likewise.\n> ---\n> Testing on x86_64-linux. *adaptors/adjacent* test passed.\n> OK for trunk when all tests passes?\n>\n>  libstdc++-v3/include/std/ranges                        | 10 ++++++++--\n>  .../testsuite/std/ranges/adaptors/adjacent/1.cc        |  7 +++++++\n>  .../std/ranges/adaptors/adjacent_transform/1.cc        |  7 +++++++\n>  3 files changed, 22 insertions(+), 2 deletions(-)\n>\n> diff --git a/libstdc++-v3/include/std/ranges b/libstdc++-v3/include/std/ranges\n> index 9c7d639a154..ba4c9f60ab2 100644\n> --- a/libstdc++-v3/include/std/ranges\n> +++ b/libstdc++-v3/include/std/ranges\n> @@ -5859,8 +5859,11 @@ namespace views::__adaptor\n>      template<size_t _Nm>\n>        struct _Adjacent : __adaptor::_RangeAdaptorClosure<_Adjacent<_Nm>>\n>        {\n> +       // _GLIBCXX_RESOLVE_LIB_DEFECTS\n> +       // 4098. views::adjacent<0> should reject non-forward ranges\n>         template<viewable_range _Range>\n> -         requires (_Nm == 0) || __detail::__can_adjacent_view<_Nm, _Range>\n> +         requires (_Nm == 0) && forward_range<_Range>\n\nPlease add parentheses around these to make the operator precedence clear.\n\n> +                  || __detail::__can_adjacent_view<_Nm, _Range>\n>           constexpr auto\n>           operator() [[nodiscard]] (_Range&& __r) const\n>           {\n> @@ -6197,8 +6200,11 @@ namespace views::__adaptor\n>      template<size_t _Nm>\n>        struct _AdjacentTransform : __adaptor::_RangeAdaptor<_AdjacentTransform<_Nm>>\n>        {\n> +       // _GLIBCXX_RESOLVE_LIB_DEFECTS\n> +       // 4098. views::adjacent<0> should reject non-forward ranges\n>         template<viewable_range _Range, typename _Fp>\n> -         requires (_Nm == 0) || __detail::__can_adjacent_transform_view<_Nm, _Range, _Fp>\n> +         requires (_Nm == 0) && forward_range<_Range>\n> +                  || __detail::__can_adjacent_transform_view<_Nm, _Range, _Fp>\n>           constexpr auto\n>           operator() [[nodiscard]] (_Range&& __r, _Fp&& __f) const\n>           {\n> diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent/1.cc\n> index 0a5c67f5614..57322922e5e 100644\n> --- a/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent/1.cc\n> +++ b/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent/1.cc\n> @@ -9,6 +9,13 @@\n>  namespace ranges = std::ranges;\n>  namespace views = std::views;\n>\n> +template<typename Range>\n> +concept can_adjacent0 = requires (Range& rg)\n> +{ views::adjacent<0>(rg); };\n> +\n> +static_assert( !can_adjacent0<__gnu_test::test_input_range<int>> );\n> +static_assert( can_adjacent0<__gnu_test::test_forward_range<int>> );\n> +\n>  constexpr bool\n>  test01()\n>  {\n> diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc\n> index 6890618754b..a75d02efbb8 100644\n> --- a/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc\n> +++ b/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc\n> @@ -9,6 +9,13 @@\n>  namespace ranges = std::ranges;\n>  namespace views = std::views;\n>\n> +template<typename Range>\n> +concept can_adjacent0 = requires (Range& rg)\n> +{ views::adjacent_transform<0>(rg, []() { return 10; }); };\n> +\n> +static_assert( !can_adjacent0<__gnu_test::test_input_range<int>> );\n> +static_assert( can_adjacent0<__gnu_test::test_forward_range<int>> );\n> +\n>  constexpr bool\n>  test01()\n>  {\n> --\n> 2.53.0\n>","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\tdkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=MYv86tx9;\n\tdkim-atps=neutral","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;\n\tdkim=pass (1024-bit key,\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=MYv86tx9","sourceware.org; dmarc=pass (p=quarantine dis=none)\n header.from=redhat.com","sourceware.org; spf=pass smtp.mailfrom=redhat.com","server2.sourceware.org;\n arc=none smtp.remote-ip=170.10.129.124"],"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 4g280X5Nx0z1xvV\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 20:12:43 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 812194BB3BEB\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 10:12:41 +0000 (GMT)","from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.129.124])\n by sourceware.org (Postfix) with ESMTP id B38AC4BB3B94\n for <gcc-patches@gcc.gnu.org>; Fri, 24 Apr 2026 10:12:02 +0000 (GMT)","from mail-yx1-f69.google.com (mail-yx1-f69.google.com\n [74.125.224.69]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-369-zVfZwPLFNZquqv9D8NgWmg-1; Fri, 24 Apr 2026 06:12:01 -0400","by mail-yx1-f69.google.com with SMTP id\n 956f58d0204a3-65022c7ac7dso13366916d50.3\n for <gcc-patches@gcc.gnu.org>; Fri, 24 Apr 2026 03:12:01 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 812194BB3BEB","OpenDKIM Filter v2.11.0 sourceware.org B38AC4BB3B94"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org B38AC4BB3B94","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org B38AC4BB3B94","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1777025522; cv=none;\n b=qgMN/DMsW+au8UD4MCmZobGCds3giAK8sl+AnSZr2eVW57FqlIRZXrSnrJxV0hpHPBq0M9Ja9xSk10HM4U0vCk87ARRA0SKMPPmeYmIirhlKsEK/ayPIMSioP6fU7L36hREwfexl5aKT3KEAWWABKrOQtJSWeVnYKf40YYdcPq4=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1777025522; c=relaxed/simple;\n bh=SrZygMM07846qlPeN8Ou6diMoHmKw052NbxOkgznCsc=;\n h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To;\n b=C7bmNk6RDrsAEg3rC9TNYHdvCxevhPYExHDEVFgUleeWuwrPDaHmou2+Q/Om2r1wPx55Bl53JJk7msLnouPPlzcpVC4h11GEB74Y/fd0ltz+o4JPCN/wODvoSoqyb/MDqLsz+O+gRSpkzRNPP8wi834ArSoQxLyyYx851bMwogo=","ARC-Authentication-Results":"i=1; server2.sourceware.org","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1777025522;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=OnlNy/gjP7lIrtCLOvRq0hlbGbIwm1Yh26wU3DnDiyg=;\n b=MYv86tx9cC+pVIjaYJ1l3Hzvyv48cbBkTT8iqKZ10Ee0Jx32AWLiRl339mECau2fZ4qqX5\n 1SVojpv3qAzzFZkOO+/oIofiMxnNWtaMLNu1RcVDv19ZafFiHSTdAq6AXWXg2Cmb4r+0KQ\n f5XdSPjcFHzWvu3fLeFzVktOoaycoWY=","X-MC-Unique":"zVfZwPLFNZquqv9D8NgWmg-1","X-Mimecast-MFC-AGG-ID":"zVfZwPLFNZquqv9D8NgWmg_1777025520","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1777025520; x=1777630320;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=OnlNy/gjP7lIrtCLOvRq0hlbGbIwm1Yh26wU3DnDiyg=;\n b=M/JRiwACeLHjJn4ae8LK6Ze22ZqQsKI5ItT56ky0GSLAeCDKbZ0EYCT5crsNh+qjlr\n VfqQGRzXL+TY2lO/nhFiokYHbu34V1ohiGCIZGSocqvE5W+3pD3+FnRsaU3vfkjawhs0\n hN3E3ox56Ls7RO0jjuRglSEZSeccRxiQ/X9s93y9qMKVRilFzoCoR+pK3tCSByMrtiPR\n 7Kd+sIm+dK8i5Jbfzlwwr0376/0CAj7FX8tHll1e6sGGGQmT2lRA6lMlhSaYg03SAotG\n EkKGYmHXvpCIGd9C0I9z7wbLfIIKpVEMVhqX4L8E6VoouQq3LhIzMv5Omq6U2BU7w8Ou\n +N2A==","X-Forwarded-Encrypted":"i=1;\n AFNElJ+YecXv4B9zcFUwUt7Ltunsw1UDYfdbKowE5M2mVH+k9UlWNHp5siqSbJaLECjn9W79KZ2RSn+84HUPEA==@gcc.gnu.org","X-Gm-Message-State":"AOJu0YwR9fYhDbVlQKwRZWSb1jTG++SV+JLZHY18s0ZXIqxJ42hTb8a7\n klpo8UrrL0Fh0QAAK/GoZjlstlNJcacNhUAKdhS9mBD4PaBcQfl5CheTRqO7Vac/3MOwcm/SeNx\n 8xpxtAk7JQoxE7n0dL7TVK6Oz4w/nxsHFREvVqLLiyQccSInm7PhIzxcqXDTqpvhL6Twy8DPW7B\n Aiy7+ahYA0CuWKl/n9d3TdCwquptyhdbm7ug==","X-Gm-Gg":"AeBDievc7AF3jcjxHBC0qRNdqva84xZ/c3UnyuLFQzj9JXH7/rb0585ddyp47qxXEyg\n 8w7koc3xxu2YxVPm5CYfRTV11RCQJZAurApd3T1KJufoBVeL5CHEX9N2QN+i9G1bByidSrq7ROd\n Pt82iDo8gPv2ArvJCo23dOdIcLHwzxXylcvg69CFqmKAUKJ23cezJv0vLS4B5QJNHeu0NOQ5V7G\n 0bZLgf4HrkdPJYcoT8+IdP3owQHfJZSCuGHZB8rVorgXU2FUqV38TyqjbdjWLP12pSOG5BpbTXV\n 6w==","X-Received":["by 2002:a05:690e:d59:b0:652:5567:b408 with SMTP id\n 956f58d0204a3-65310869318mr27868011d50.26.1777025520442;\n Fri, 24 Apr 2026 03:12:00 -0700 (PDT)","by 2002:a05:690e:d59:b0:652:5567:b408 with SMTP id\n 956f58d0204a3-65310869318mr27867985d50.26.1777025519915; Fri, 24 Apr 2026\n 03:11:59 -0700 (PDT)"],"MIME-Version":"1.0","References":"<20260424100453.1166034-1-tkaminsk@redhat.com>","In-Reply-To":"<20260424100453.1166034-1-tkaminsk@redhat.com>","From":"Jonathan Wakely <jwakely@redhat.com>","Date":"Fri, 24 Apr 2026 11:11:44 +0100","X-Gm-Features":"AQROBzCgLLUStQLp5_Hg2L1I_fSmnmxdzsDG8XdL_IE8QhdgJlL7eGxWQJaNjok","Message-ID":"\n <CACb0b4kKb6GNSUMS+Ovt9yN_0eGzKbaoCQtT1h8xxpe50DMgGA@mail.gmail.com>","Subject":"Re: [PATCH] libstdc++: Constrain views::adjacent(_transform)?<0> to\n forward_ranges.","To":"=?utf-8?q?Tomasz_Kami=C5=84ski?= <tkaminsk@redhat.com>","Cc":"libstdc++@gcc.gnu.org, gcc-patches@gcc.gnu.org","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"Jn3iRSx7ZWQNgz9-A1Bg_dVoFt6e6QIYCOFeUZ38UNQ_1777025520","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","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":3681954,"web_url":"http://patchwork.ozlabs.org/comment/3681954/","msgid":"<CACb0b4kB3wN-oNeUTdTG6-LB0uyQuijz2t1pANeYtEDJwnZskQ@mail.gmail.com>","list_archive_url":null,"date":"2026-04-24T10:27:21","subject":"Re: [PATCH] libstdc++: Constrain views::adjacent(_transform)?<0> to\n forward_ranges.","submitter":{"id":48004,"url":"http://patchwork.ozlabs.org/api/people/48004/","name":"Jonathan Wakely","email":"jwakely@redhat.com"},"content":"On Fri, 24 Apr 2026 at 11:11, Jonathan Wakely <jwakely@redhat.com> wrote:\n>\n> On Fri, 24 Apr 2026 at 11:05, Tomasz Kamiński <tkaminsk@redhat.com> wrote:\n> >\n> > This resolves LWG 4098, \"views::adjacent<0> should reject non-forward ranges\"\n> > which was approved in Sofia 2024.\n> >\n> > libstdc++-v3/ChangeLog:\n> >\n> >         * include/std/ranges (_AdjacentTransform::operator())\n> >         (_Adjacent::operator()): Require forward_range for N == 0.\n> >         * testsuite/std/ranges/adaptors/adjacent/1.cc: Test if input_ranges\n> >         are rejected.\n> >         * testsuite/std/ranges/adaptors/adjacent_transform/1.cc: Likewise.\n> > ---\n> > Testing on x86_64-linux. *adaptors/adjacent* test passed.\n> > OK for trunk when all tests passes?\n> >\n> >  libstdc++-v3/include/std/ranges                        | 10 ++++++++--\n> >  .../testsuite/std/ranges/adaptors/adjacent/1.cc        |  7 +++++++\n> >  .../std/ranges/adaptors/adjacent_transform/1.cc        |  7 +++++++\n> >  3 files changed, 22 insertions(+), 2 deletions(-)\n> >\n> > diff --git a/libstdc++-v3/include/std/ranges b/libstdc++-v3/include/std/ranges\n> > index 9c7d639a154..ba4c9f60ab2 100644\n> > --- a/libstdc++-v3/include/std/ranges\n> > +++ b/libstdc++-v3/include/std/ranges\n> > @@ -5859,8 +5859,11 @@ namespace views::__adaptor\n> >      template<size_t _Nm>\n> >        struct _Adjacent : __adaptor::_RangeAdaptorClosure<_Adjacent<_Nm>>\n> >        {\n> > +       // _GLIBCXX_RESOLVE_LIB_DEFECTS\n> > +       // 4098. views::adjacent<0> should reject non-forward ranges\n> >         template<viewable_range _Range>\n> > -         requires (_Nm == 0) || __detail::__can_adjacent_view<_Nm, _Range>\n> > +         requires (_Nm == 0) && forward_range<_Range>\n>\n> Please add parentheses around these to make the operator precedence clear.\n\nOK with that change (in both places).\n\n>\n> > +                  || __detail::__can_adjacent_view<_Nm, _Range>\n> >           constexpr auto\n> >           operator() [[nodiscard]] (_Range&& __r) const\n> >           {\n> > @@ -6197,8 +6200,11 @@ namespace views::__adaptor\n> >      template<size_t _Nm>\n> >        struct _AdjacentTransform : __adaptor::_RangeAdaptor<_AdjacentTransform<_Nm>>\n> >        {\n> > +       // _GLIBCXX_RESOLVE_LIB_DEFECTS\n> > +       // 4098. views::adjacent<0> should reject non-forward ranges\n> >         template<viewable_range _Range, typename _Fp>\n> > -         requires (_Nm == 0) || __detail::__can_adjacent_transform_view<_Nm, _Range, _Fp>\n> > +         requires (_Nm == 0) && forward_range<_Range>\n> > +                  || __detail::__can_adjacent_transform_view<_Nm, _Range, _Fp>\n> >           constexpr auto\n> >           operator() [[nodiscard]] (_Range&& __r, _Fp&& __f) const\n> >           {\n> > diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent/1.cc\n> > index 0a5c67f5614..57322922e5e 100644\n> > --- a/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent/1.cc\n> > +++ b/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent/1.cc\n> > @@ -9,6 +9,13 @@\n> >  namespace ranges = std::ranges;\n> >  namespace views = std::views;\n> >\n> > +template<typename Range>\n> > +concept can_adjacent0 = requires (Range& rg)\n> > +{ views::adjacent<0>(rg); };\n> > +\n> > +static_assert( !can_adjacent0<__gnu_test::test_input_range<int>> );\n> > +static_assert( can_adjacent0<__gnu_test::test_forward_range<int>> );\n> > +\n> >  constexpr bool\n> >  test01()\n> >  {\n> > diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc\n> > index 6890618754b..a75d02efbb8 100644\n> > --- a/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc\n> > +++ b/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc\n> > @@ -9,6 +9,13 @@\n> >  namespace ranges = std::ranges;\n> >  namespace views = std::views;\n> >\n> > +template<typename Range>\n> > +concept can_adjacent0 = requires (Range& rg)\n> > +{ views::adjacent_transform<0>(rg, []() { return 10; }); };\n> > +\n> > +static_assert( !can_adjacent0<__gnu_test::test_input_range<int>> );\n> > +static_assert( can_adjacent0<__gnu_test::test_forward_range<int>> );\n> > +\n> >  constexpr bool\n> >  test01()\n> >  {\n> > --\n> > 2.53.0\n> >","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\tdkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=EobFqaRY;\n\tdkim-atps=neutral","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;\n\tdkim=pass (1024-bit key,\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=EobFqaRY","sourceware.org; dmarc=pass (p=quarantine dis=none)\n header.from=redhat.com","sourceware.org; spf=pass smtp.mailfrom=redhat.com","server2.sourceware.org;\n arc=none smtp.remote-ip=170.10.133.124"],"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 4g28Lz28KGz1yHv\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 20:28:41 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id B710F4BB3BE6\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 10:28:39 +0000 (GMT)","from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.133.124])\n by sourceware.org (Postfix) with ESMTP id EC8A04BB3B95\n for <gcc-patches@gcc.gnu.org>; Fri, 24 Apr 2026 10:27:41 +0000 (GMT)","from mail-yx1-f69.google.com (mail-yx1-f69.google.com\n [74.125.224.69]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-504-0V1exe6HPkqFoKj_J_ILEw-1; Fri, 24 Apr 2026 06:27:38 -0400","by mail-yx1-f69.google.com with SMTP id\n 956f58d0204a3-64eaa6294d9so7314289d50.1\n for <gcc-patches@gcc.gnu.org>; Fri, 24 Apr 2026 03:27:37 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org B710F4BB3BE6","OpenDKIM Filter v2.11.0 sourceware.org EC8A04BB3B95"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org EC8A04BB3B95","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org EC8A04BB3B95","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1777026462; cv=none;\n b=YdxqZTEe7xkCgMExWxBKxUcm6FOxRtHRUZP+7yQbvTxZgVlfO9Va3N2O+5BVlJ3YVnbzpC68oPiNwDkj5gx6wz/A7jBa3lbfsow8/PriLWliDqxTA80iuQ0Yo2LTxw2eZSnXcWoZ7MTH0X2jOLKnB5UbmpmH0pK921M/w6V1yeg=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1777026462; c=relaxed/simple;\n bh=KyLJorAbaWUugeRnRbC906Wka+HcZM/CCv3ABk4nXa4=;\n h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To;\n b=DpJnUA38bktEKJolfFrSY3VZu9z4CL9YZRF3TVl37PMWYDN7HV2el0e/stryb5gUXhKDMo2wWOT3iVeEYd8R4NUPZdGlIqSn+ZZwDbhp3mtGj6M4TtAhQ99AMEtbplgXUgXHz6fq8JB58oyMB3lCbI/dJ+vR823b7ikOdEFSmt4=","ARC-Authentication-Results":"i=1; server2.sourceware.org","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1777026461;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=9NMBQmcMdkM+EUBe1pjFmLVE89v4hIvdkPGLNapNS3w=;\n b=EobFqaRYuxlIVpjgU7k/lIBUMkPh2mEcWF4D7MHthkb8oamtv2lhwuxeJYkO9bMCNcZA90\n o14eF8B4MuFmqzDrugRM/SBqlP3MPvBLBihNrCQxqMFf58BOJ3Pi3mYEdenKaxvig9Bp06\n Th93orEtpDpyDLMUHdZsCX3KIBlCRgg=","X-MC-Unique":"0V1exe6HPkqFoKj_J_ILEw-1","X-Mimecast-MFC-AGG-ID":"0V1exe6HPkqFoKj_J_ILEw_1777026457","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1777026457; x=1777631257;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=9NMBQmcMdkM+EUBe1pjFmLVE89v4hIvdkPGLNapNS3w=;\n b=R0nZ5B/tkKbPRgQP4r1S+o2X7ZFrFMiyO5eqIUGGh+ovBpdrbFq392ml+VKkwF3wY6\n 6lKRo7xqTdkwNwmu6LAR0RwD6TArX+bgBWC0lMJaHpTuG3jFJd2XCt160NJxRo7AixZf\n 71mBEhoCp1RchH/I8CixvT6WwRbitUA8UtwNRoP0in0dzMsscAZy5Y+1k+PXeBrei/aB\n 5bVLgJNogkyL3mrb01hDJFD9NsNCkJ04RGxi69oTVKJqwT25jFUP7nsi+yJLPvjtRoTT\n hekbrPEKZAPsPkH8C0CYZCNyxGiF82sEDf6M+keRE5Wk5nmLRglbPx60g+TJahNyqrEh\n yuiw==","X-Forwarded-Encrypted":"i=1;\n AFNElJ+v1QhBSv6EuLH7I1nnw8ojtT7zHXkl+9MQeH4XglPDA6yatiHLTnXzPpXEmJHBgpbnl86nq29IVcjMJg==@gcc.gnu.org","X-Gm-Message-State":"AOJu0Ywc/PpcsLxbeXPqTAtahA/Ct6Mtb6BqhO5Qu0akt9V2Efcjd0Zt\n qIw6y3q1nOtBfc23tZnH+O/OI5c5mzhAxMpGh9cguA28wFKNyHi9PiGCn5EVaEo8ch77CixXZym\n dIoQZ7hV9EF+T1duraZMcKyZm7zdYmpu9j4P6pG6HaR/bLU3yi8g/ZI+d8t8p4vm2rN3mXObYWz\n 1vB2RH9FM8ikXMMS5PLJCxd0OPPH6PJSCNqg==","X-Gm-Gg":"AeBDietf5lfXa0Tz7zQD4XOKhg7of8dCBkhH0tmkuc7EXJZNXXE4I2wE4fui3T99asN\n HlJ470NK/bhRhXX28iw4Ri1mBiv8FcExEM04jfOnzlQHS2g/TDJlRKeXWgnwIgAaEY7BKQ3xWbO\n pl67o+7dV9eLgHIB9DggTPvNB+IDJ/ZnZ7X9PRlEkgTjFK0vwwPGGH4VByk9NWjsyPkmu2H7doZ\n lZ0NbwpTqb3eozlGyekvHfRDOV9Xv/v/v9tO1PVTi5fVhUzjMqaPiQxOJqC0xOm4/7/Rb2+a1/3\n tw==","X-Received":["by 2002:a05:690e:12c7:b0:651:b962:bc22 with SMTP id\n 956f58d0204a3-65310abe2dbmr28231701d50.63.1777026457378;\n Fri, 24 Apr 2026 03:27:37 -0700 (PDT)","by 2002:a05:690e:12c7:b0:651:b962:bc22 with SMTP id\n 956f58d0204a3-65310abe2dbmr28231689d50.63.1777026456988; Fri, 24 Apr 2026\n 03:27:36 -0700 (PDT)"],"MIME-Version":"1.0","References":"<20260424100453.1166034-1-tkaminsk@redhat.com>\n <CACb0b4kKb6GNSUMS+Ovt9yN_0eGzKbaoCQtT1h8xxpe50DMgGA@mail.gmail.com>","In-Reply-To":"\n <CACb0b4kKb6GNSUMS+Ovt9yN_0eGzKbaoCQtT1h8xxpe50DMgGA@mail.gmail.com>","From":"Jonathan Wakely <jwakely@redhat.com>","Date":"Fri, 24 Apr 2026 11:27:21 +0100","X-Gm-Features":"AQROBzCeieRI1MxFafMchIAc9TJvcxDdfyLE81uKe9PAMCVw_CSwglPNr3WMMx4","Message-ID":"\n <CACb0b4kB3wN-oNeUTdTG6-LB0uyQuijz2t1pANeYtEDJwnZskQ@mail.gmail.com>","Subject":"Re: [PATCH] libstdc++: Constrain views::adjacent(_transform)?<0> to\n forward_ranges.","To":"=?utf-8?q?Tomasz_Kami=C5=84ski?= <tkaminsk@redhat.com>","Cc":"libstdc++@gcc.gnu.org, gcc-patches@gcc.gnu.org","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"W1Bm5URKNrw2b_TfY0FohHmutFgmbawT4Ver1MJEoT4_1777026457","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","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"}}]