From patchwork Wed Apr 8 12:19:41 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Palka X-Patchwork-Id: 132808 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id 47D4C4BA2E09 for ; Wed, 8 Apr 2026 12:20:56 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 47D4C4BA2E09 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=iasugizT X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTP id 9A01B4BA2E0E for ; Wed, 8 Apr 2026 12:19:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9A01B4BA2E0E Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 9A01B4BA2E0E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775650793; cv=none; b=pVcWpIg1PPzeStAYfnvOzRM8iWKEQTJrR2iEpvRfd80SoVfjPLgVq1p7SHvQjuZcLij0UFieKiIubWny+ROohdGJRzSPC4OXTtM2FrFDtchDv4r7O4aiSyZ9RTlVAV971ImvGsWWA6k5H4HHA7aNs6SinjMkyFtH1XesKwcIUw0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775650793; c=relaxed/simple; bh=4EnXe73kz881ODAzjZlZC6MhwGcchpdBFSEoqCdXsoc=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=JgpZ7dSKP68W5W0KMIsR7EhHIGLeWc1J9e3O3OTpbcKWqrTdRsaR2EQv6xVJphpvKFBvh/tBZgVnECthoiITTmDH5BJr4w5WF1blz7pNSbuXfWdmYQgtFEGsdR2GF5pqN3jQeSrAEFhCiWa1n5JuEvzjAY9I+WkMac3xlbcUd+M= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9A01B4BA2E0E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1775650793; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=iJbgSa4qRIUauyIkkmJy7uWqsrttqONd0QtoJgIEVi4=; b=iasugizTG5RZUOEg4xiwF3Dp8otukJqSQtpmLLo2fn2KKdBegCQyWTj/vBLLmjhQwdZaMA pli9+PqIRXPQ6STp9FvE6kEQnhIBiwhDqpy/HhnLG6zcwInkCM8tkTOVvr9IHszyDhGN7m XCImOrlTbE4xcFPyaml7W5q2b1dMTMk= Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-249-KiiJHfo3Mm2DKMlRKyAxXA-1; Wed, 08 Apr 2026 08:19:52 -0400 X-MC-Unique: KiiJHfo3Mm2DKMlRKyAxXA-1 X-Mimecast-MFC-AGG-ID: KiiJHfo3Mm2DKMlRKyAxXA_1775650792 Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-50b2955cc1eso9915881cf.2 for ; Wed, 08 Apr 2026 05:19:52 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775650791; x=1776255591; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=iJbgSa4qRIUauyIkkmJy7uWqsrttqONd0QtoJgIEVi4=; b=Iz/lQkmZgva/J85xF74+t+yyrKqTiJcbdrPlwXlLar485wpds3mwFg4usYxSXS7eWs CXiGhJ1gv+FnxJ03vTlz/hP6nlfD8SnKYQaWJevdwAN/DxtWqh7uJzsdYjuGpHumUySE P0N1fQmb6lLnIG3FAqBJhr2pbdMAEjzImOz60uGx6o1J0gFKOz9u2BAJackKFTpYbSnG j8jUzWEmB/nfqxEaJWMzc+us5lzO0XG1cGwgMaHDPinO/9Mzy2ScPllRfrXXLL7oYzbL sc+ODydFy61HvqUbr7FzbveY2Q2QswvwXdv5fE/MEYeT70isQdndkh7d6FMj/okmT7LL FEAg== X-Gm-Message-State: AOJu0YwkVFjT6gdUtB8yjdk5FppOZ31OPbNqUNentAMpNIryDTPgurjo tztk9YsavB7F26dFyxCQJsTt7kXmWSg5X3O6rbLLqkjt+v2atnx3R2PMX3ht1pz+OZX1BmHOdTx aZUhwgmJQVkJQqYEN6MI5MSrr81pZdZfb4iClkLmV3L3kaz7ySvo8i+H8sfaP8tLbwGzS82RoMO EYhoo44APCBE1WX1H8V4euyIRVGq9lD+bVvOsnO2I+ X-Gm-Gg: AeBDiesNMveDJ2SM/H5e2NAU3rZ0IRrsga5oljC14tZpmnfg508o7VAeBy5tr+SquLG t+qplk4/3r95JC8LfON6aAHKE2mfak44npjxPOrXL2vYW3WDUWUNXkZAfUHCuhlHGDBoHToVSUb 7uzrKyxk5Y5giJT3IXQK9B5N9XyCVENkRlNKf9W+R7OG1XPBgtuBcH4sKzcNQBVFErJxySthEcL KHOdnmXySqiHMQ288T7IA4M6JKtrphBfEhGH736lb9AjF3ewu8PojUM9trkbHDG1aKadciFA+bh iOg8t0D5uWoAThN51PbDCn7D6nZq5r4/GK/hdPA8wExu+dWFPcyc03qMR943TlZz7eOksxqPrfe K/dTTHmBfZ7Ga X-Received: by 2002:ac8:7d4d:0:b0:50b:8ccc:a41f with SMTP id d75a77b69052e-50db02d5f1dmr37236971cf.6.1775650790728; Wed, 08 Apr 2026 05:19:50 -0700 (PDT) X-Received: by 2002:ac8:7d4d:0:b0:50b:8ccc:a41f with SMTP id d75a77b69052e-50db02d5f1dmr37236471cf.6.1775650790196; Wed, 08 Apr 2026 05:19:50 -0700 (PDT) Received: from idea ([2600:4040:aa66:bf00:9e8e:99ff:fed1:71f]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-50d712c2617sm124767011cf.31.2026.04.08.05.19.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Apr 2026 05:19:49 -0700 (PDT) From: Patrick Palka To: gcc-patches@gcc.gnu.org Cc: libstdc++@gcc.gnu.org, Patrick Palka Subject: [PATCH] libstdc++/ranges: Implement LWG 3599 change to lazy_split_view Date: Wed, 8 Apr 2026 08:19:41 -0400 Message-ID: <20260408121941.4047772-1-ppalka@redhat.com> X-Mailer: git-send-email 2.54.0.rc0.180.g7c4e9e957a MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: XZsD37jQCO_HOf85qErWgAsYBgo8kpJbzpVewFyiVdA_1775650792 X-Mimecast-Originator: redhat.com content-type: text/plain; charset="US-ASCII"; x-default=true X-Spam-Status: No, score=-14.4 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED, SPF_HELO_PASS, SPF_NONE, TXREP autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org Tested on x86_64-pc-linux-gnu, does this look OK for trunk/backports? -- >8 -- libstdc++-v3/ChangeLog: * include/std/ranges (lazy_split_view::begin): Add const _Pattern contraint on const overload as per LWG 3599. (lazy_split_view::end): Likewise. * testsuite/std/ranges/adaptors/lazy_split.cc (test14): New test. --- libstdc++-v3/include/std/ranges | 4 +++- .../testsuite/std/ranges/adaptors/lazy_split.cc | 10 ++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/libstdc++-v3/include/std/ranges b/libstdc++-v3/include/std/ranges index 0aa4191e04f6..41175fd45e4b 100644 --- a/libstdc++-v3/include/std/ranges +++ b/libstdc++-v3/include/std/ranges @@ -3809,6 +3809,7 @@ namespace views::__adaptor constexpr auto begin() const requires forward_range<_Vp> && forward_range + && forward_range { return _OuterIter{this, ranges::begin(_M_base)}; } @@ -3826,7 +3827,8 @@ namespace views::__adaptor { if constexpr (forward_range<_Vp> && forward_range - && common_range) + && common_range + && forward_range) return _OuterIter{this, ranges::end(_M_base)}; else return default_sentinel; diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split.cc index 60ee7d70580e..1c69b8f27cfd 100644 --- a/libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split.cc +++ b/libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split.cc @@ -239,6 +239,15 @@ test13() constexpr decltype(views::lazy_split(views::single(0), 0).begin()) it; } +void +test14() +{ + // LWG 3599 + auto p = views::iota(0) | views::take(1) | views::reverse; + auto r = views::single(42) | views::lazy_split(p); + auto f = r.front(); +} + int main() { @@ -255,4 +264,5 @@ main() test11(); static_assert(test12()); test13(); + test14(); }