[{"id":3674743,"web_url":"http://patchwork.ozlabs.org/comment/3674743/","msgid":"<CAH6eHdQpo+oKhEMo36ZM9qBmTyv3e-BGW4C-YNo0ek_L0h5k6g@mail.gmail.com>","list_archive_url":null,"date":"2026-04-08T12:34:30","subject":"Re: [PATCH] libstdc++/ranges: Implement LWG 3599 change to\n lazy_split_view","submitter":{"id":4329,"url":"http://patchwork.ozlabs.org/api/people/4329/","name":"Jonathan Wakely","email":"jwakely.gcc@gmail.com"},"content":"OK\n\nOn Wed, 8 Apr 2026, 13:20 Patrick Palka, <ppalka@redhat.com> wrote:\n\n> Tested on x86_64-pc-linux-gnu, does this look OK for trunk/backports?\n>\n> -- >8 --\n>\n> libstdc++-v3/ChangeLog:\n>\n>         * include/std/ranges (lazy_split_view::begin): Add\n>         const _Pattern contraint on const overload as per LWG 3599.\n>         (lazy_split_view::end): Likewise.\n>         * testsuite/std/ranges/adaptors/lazy_split.cc (test14): New\n>         test.\n> ---\n>  libstdc++-v3/include/std/ranges                        |  4 +++-\n>  .../testsuite/std/ranges/adaptors/lazy_split.cc        | 10 ++++++++++\n>  2 files changed, 13 insertions(+), 1 deletion(-)\n>\n> diff --git a/libstdc++-v3/include/std/ranges\n> b/libstdc++-v3/include/std/ranges\n> index 0aa4191e04f6..41175fd45e4b 100644\n> --- a/libstdc++-v3/include/std/ranges\n> +++ b/libstdc++-v3/include/std/ranges\n> @@ -3809,6 +3809,7 @@ namespace views::__adaptor\n>\n>        constexpr auto\n>        begin() const requires forward_range<_Vp> && forward_range<const\n> _Vp>\n> +       && forward_range<const _Pattern>\n>        {\n>         return _OuterIter<true>{this, ranges::begin(_M_base)};\n>        }\n> @@ -3826,7 +3827,8 @@ namespace views::__adaptor\n>        {\n>         if constexpr (forward_range<_Vp>\n>                       && forward_range<const _Vp>\n> -                     && common_range<const _Vp>)\n> +                     && common_range<const _Vp>\n> +                     && forward_range<const _Pattern>)\n>           return _OuterIter<true>{this, ranges::end(_M_base)};\n>         else\n>           return default_sentinel;\n> diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split.cc\n> b/libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split.cc\n> index 60ee7d70580e..1c69b8f27cfd 100644\n> --- a/libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split.cc\n> +++ b/libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split.cc\n> @@ -239,6 +239,15 @@ test13()\n>    constexpr decltype(views::lazy_split(views::single(0), 0).begin()) it;\n>  }\n>\n> +void\n> +test14()\n> +{\n> +  // LWG 3599\n> +  auto p = views::iota(0) | views::take(1) | views::reverse;\n> +  auto r = views::single(42) | views::lazy_split(p);\n> +  auto f = r.front();\n> +}\n> +\n>  int\n>  main()\n>  {\n> @@ -255,4 +264,5 @@ main()\n>    test11();\n>    static_assert(test12());\n>    test13();\n> +  test14();\n>  }\n> --\n> 2.54.0.rc0.180.g7c4e9e957a\n>\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 (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=nttXVc/U;\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 (2048-bit key,\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=nttXVc/U","sourceware.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com","sourceware.org; spf=pass smtp.mailfrom=gmail.com","server2.sourceware.org;\n arc=pass smtp.remote-ip=209.85.208.170"],"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 4frMwR4tqMz1xy1\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 08 Apr 2026 22:35:19 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id D65594BA2E1F\n\tfor <incoming@patchwork.ozlabs.org>; Wed,  8 Apr 2026 12:35:17 +0000 (GMT)","from mail-lj1-f170.google.com (mail-lj1-f170.google.com\n [209.85.208.170])\n by sourceware.org (Postfix) with ESMTPS id 57CDA4BA540B\n for <gcc-patches@gcc.gnu.org>; Wed,  8 Apr 2026 12:34:44 +0000 (GMT)","by mail-lj1-f170.google.com with SMTP id\n 38308e7fff4ca-38ce8a5bc20so50724331fa.1\n for <gcc-patches@gcc.gnu.org>; Wed, 08 Apr 2026 05:34:44 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org D65594BA2E1F","OpenDKIM Filter v2.11.0 sourceware.org 57CDA4BA540B"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 57CDA4BA540B","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 57CDA4BA540B","ARC-Seal":["i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1775651684; cv=pass;\n b=I7uLVMI1bBIJ8USPx5VSmUTpf4Wo045LEZwxbZGKkzc6byq900yofjhhTnYV3HaTJr3mx8FoMaVacei8n5KFqfrNw0hhpUJ3PkL6kFpnEtitTU9Cffr56Gr6MQ2ZQq7slI5AsVcSm/cSfAoTKIXzf1DbWE6zjp5uJFsg/hWZJAI=","i=1; a=rsa-sha256; t=1775651683; cv=none;\n d=google.com; s=arc-20240605;\n b=X8j+Hk1B+qIrSt/GaMcC+HCC79Uwxb5Jl+FhzsQhsd/Z+BndLdMv3Ig2dSR7JmcxJX\n 3ixS6xD6RbBwzqDO3QzMLKwinmh/ynJFbcfbD1tW9eL5qNvHNy3P5xsPpSLBN5+CpsPG\n Yh+ytykWsVUMGIWkzUComhPoFkpCaF2pnAK4uTTQLiA5MfAymENUTbdDjD69GeOHwRYX\n pc0LGEPGoDjjv3sPA1zgjPBs+mx5vm+k2uUY4xK+mYfOE5kd74sA1D7wA20o5FzDIOF0\n MwSu4nhCs34BeCNlzbjbqsqiVlgJt8yL+ovneIjI7aqzmukfYb2+cFbat1O9KMlMz+Bv\n ed2g=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=sourceware.org; s=key;\n t=1775651684; c=relaxed/simple;\n bh=OT9N22UHWXQiex5asqVXRXmCyl1eLeA4Ce5j4JOixYk=;\n h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To;\n b=kpSHPFsrKXGlb7nzk+tO9wZv4d8laCVwAvTCadDssFZBMpwUibbQ8kltAAszNDKM4z9dFb25/mvgpK1IzQf4+3nqcujgfNWzdipXBxxqErWzbdr1zbYFIu+L1JB+tZGJAt9LK38YPlIDG7LgQYnmjXPRuS+UYErNVAEFVolrAFc=","i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:dkim-signature;\n bh=s/+WUfmGSJJY3kpo/GrqPQf79vF+/z7qkfk9bn4vzpU=;\n fh=LdMeTRq2mjHVM5MGNEwL5fCNT7Qxdu5oPDhOnERiinM=;\n b=cSevvwmMA+7qI6K+RKDCECEd/2HqlJnUQCXo8T3xy4ilsa+7EdQH6vxJuN8+T0akke\n 7NCBWhlPUK6vYRBfMiP/+j4fPd8LjXeJK7NVckdv/szdktaifODiRzURbpLILEgCotvI\n RjBubVyHlwKZioPVGt+Z4G+doo8Ahub5TiES9ywOOq6dkFKIXRIv8R3z6vSaVuI3UY9Y\n AcNhhd3Ni9pplh/s6AxE6sxXP8jMzT+P2LW44hQEK4YyxdY5ECqe9HRaM071Di5c64hf\n lTcYAKbcWRPUjhvywLOI134njpVWs3sSMtNTL1QpgbHUXrAfNtjkY9cZkuF8BB+lumH5\n btDw==; darn=gcc.gnu.org"],"ARC-Authentication-Results":["i=2; server2.sourceware.org","i=1; mx.google.com; arc=none"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1775651683; x=1776256483; darn=gcc.gnu.org;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:from:to:cc:subject:date:message-id:reply-to;\n bh=s/+WUfmGSJJY3kpo/GrqPQf79vF+/z7qkfk9bn4vzpU=;\n b=nttXVc/UF/2NQsK3NZZVDdWLjpjOoy++x30Gm/oMzoO/LMwWdpHD9iV6//rerT0Eeu\n 3UUNMp7RRpAe+rvtDY3Qc+KMCTA1AXwAUD/GkiHBsTmG9Er2ci+eb3opjyVxKiySpFw2\n 2p+x+ZnWDCBDMvgm/CoCdkFXAcrwr8vr8VlBiVkQX99r2iG3aTukF4EXcOTwv7/AVW7H\n LWldA42tONc6Al/phRmBQyt7MR/feb0JFx5pMddrxpmOTTzaigYCYehGf880DE+z0OcK\n iNrcLRGLUU1tjyx4CaxtC4coygI4fii3sPKJ6MifdN7wx4ZthCUZYDTHWZeS10do8JW/\n 3eXw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775651683; x=1776256483;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=s/+WUfmGSJJY3kpo/GrqPQf79vF+/z7qkfk9bn4vzpU=;\n b=e1//KIUlVndl4RarFvDA4gP76tkgDfmMsJr1sRpRCYzMi+2J4FF3rnf6hDX5O32YK5\n /PNnErcWD45usx9vZkqOBYsyJ1292mjkMcY7PfeI0zcLkx0PkJGWxOuY6WJE9okjzoBw\n /fBnxbjRTH8Piw+rk82gkGheVI4I8VTYN1tkxzMDyR6e+XdEmrs/0eokB1NfK6Rud0/J\n 31jS5kMEPMdbIZqXTZA7yiwLMEX2x3hU7LWnwFuudxUlmvRwEPOypXDaHNUCob93BfmZ\n O7fDz0ib1UELk6fnc+nWPQhhneqStlk2MN0Vb9PeaF8VLwKeZC5I7gSjHuGRQ8lz3teL\n Z3KA==","X-Gm-Message-State":"AOJu0YyJwGkZD8lsCCjWjUW35O3i+3gx34BDGkZu+GND4Sg2XgHeD+rW\n jgSVCC2Cm2P85O8iE7ke4FLgHEHK4GUcaUYAP08mEGVYJ4oE1/2oddaLE34+y5zRy9kRokX2Rjk\n AL9M3Ajn8LlKwrvWK1VpdIu95Ixy/x5E=","X-Gm-Gg":"AeBDiesdklitooosZdSgBL01C/p4eBp9gRUBVNYb7774AOcCE1Z7Jfv7Sc2x9lBP4wM\n xS+P+Biu/JZoO6YiOpceuBCJfEvte94tvDbNDgAZq7IAz+q2FfQ7SSyOqv5dDbsVVrek67Wl8Vf\n JSWiMzFZz7tE5X1Gg47Z1b0Apd2szJzT1VuusOm+tQnb0qBVIZjWeWTW3zXsrkZihpq2tTJgk9N\n xUAXDL4Al7Nciv1bCS1qpekTcTVJbH6hpJ014ya5VvLu9lbhsGbCZSBwRH5OjglR1e1WfbSV58P\n /SzzfOnmmbDVZ4NkCbWY/yGF7S5iWbbUJXaySUDImWIS1rgVDAVXMRYmUx2uMyMHFpqAYarudYf\n h5Awwtd3jxpxOgCHbRSEvepQe/Ig=","X-Received":"by 2002:a05:651c:1105:b0:38e:6e0:e087 with SMTP id\n 38308e7fff4ca-38e06e123c6mr34821671fa.28.1775651682685; Wed, 08 Apr 2026\n 05:34:42 -0700 (PDT)","MIME-Version":"1.0","References":"<20260408121941.4047772-1-ppalka@redhat.com>","In-Reply-To":"<20260408121941.4047772-1-ppalka@redhat.com>","From":"Jonathan Wakely <jwakely.gcc@gmail.com>","Date":"Wed, 8 Apr 2026 13:34:30 +0100","X-Gm-Features":"AQROBzAqVXzFThCA7l1zU8IvAU4Cx-K7888rnqSgm9zuR56Z8DZVMbS1U6XiXVY","Message-ID":"\n <CAH6eHdQpo+oKhEMo36ZM9qBmTyv3e-BGW4C-YNo0ek_L0h5k6g@mail.gmail.com>","Subject":"Re: [PATCH] libstdc++/ranges: Implement LWG 3599 change to\n lazy_split_view","To":"Patrick Palka <ppalka@redhat.com>","Cc":"gcc-patches <gcc-patches@gcc.gnu.org>, \"libstdc++\" <libstdc++@gcc.gnu.org>","Content-Type":"multipart/alternative; boundary=\"000000000000ca976a064ef21f39\"","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"}}]