From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com [IPv6:2a00:1450:4864:20::634]) by sourceware.org (Postfix) with ESMTPS id 712703858CDB; Wed, 17 Jan 2024 07:22:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 712703858CDB Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 712703858CDB Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::634 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705476162; cv=none; b=Ky57DDZEqN7SdPg6+0AF/pHJFRhJU5jWVf4S4DXOznlQqH6I4DXcUFF5kouqggvhM6kfzGRdJwjew8pNaGzotNVqCLEMgvw8dp8w0tvOSblKjdwhVALrgf58krWcTGSfA9HiefQTb0kN1yGaWHYVftsYw7xY10ddFt5+NWm/d1o= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705476162; c=relaxed/simple; bh=JFjOukO2K4x0RhUnMY0y2wOqaYbTi1C2FIMnAhH7XUs=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=Ng3C4IYALzEEIH+5YrlvZ+fRh5wKeHUg4h5J/YYLKiF6FtSGdTZ/WVDEiT7UEFQFAHD4o6SC82clCU9KzsvErS0LkxePoYd5HTCBcl3W06JthIdPmg7sevoDp6ZvxEaooVsV4CPa7VzfsId3VFnnd2+s7NaD01GljNwy0WqNJBM= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-ej1-x634.google.com with SMTP id a640c23a62f3a-a2dd05e02ffso308641966b.3; Tue, 16 Jan 2024 23:22:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1705476159; x=1706080959; darn=gcc.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=u+ziGIYvlJ8fNUGmFTyG2L5b7ZnRfYfKaHnbIQ8S1zo=; b=UCg6HcYdEtvYFUi+cJwzoMy762ogd6RqHLrmmHuUuOGtoo4u656/YcOEvQXKheA2up nUIlfBix1BvNhjbfSibEVBcZYfvPaMHjtDmTV8bHhp1m0jamtnfoZdkRuEJ07EVWwPMI JEfFRph3W/7s/K5/vuARyOyYJADE+BoBoeUg0FmpgO+6QrQx4exT+Su1IoLsVfZ10Ob2 wvRUP+JmdZrvbZ4BUaKuWWJ0Plosa4ogNCT/DFdP0/8OcybYDmc6YuoYI0AzY6Jf6amx MRlCCIw/q7w8E/NY+mu1m5QDUpAe0IDB9SCeDXmEFt7Rxoe3jmXoH9tNLWV0/7F2KXgL kjqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705476159; x=1706080959; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=u+ziGIYvlJ8fNUGmFTyG2L5b7ZnRfYfKaHnbIQ8S1zo=; b=nx0MVIEvOzob0lcQOjXfsEwqSpZrplAhpaNkcRkMqHLR+RrrG3cxTXiaLfH1gVzPhF RiLRc3zbPcaP9mp597Lj7tK4UJw8q+KaRrz8B/KqiBJoVSIABiHP8nI0IU2qTTh0/G36 8nRBfp/AeOApcLmwtHEB/VW9jGUqcL77BrGLlwLdHszXip2Y+KOfzmA+rhjqKgrIkhGM bLlsatYd/7PTUlFpxv0Jrl/Wi5wWceTIxF1cysYKfU9nBwP6pqG67a/xuxVtGl+k0c9D XkTrXrLeiSsbpTRwspU9C3lH+GBn/7eO24uNXTIB8FM3xLzuEjM6KbvcAd+h4eZ+esF9 1pHg== X-Gm-Message-State: AOJu0YwhR4xA8vSbwSpZgrvBDdP5uiDvVHUoXwcuyaRO9FYjtaUOgWkW jUSplcYmliWEzjevWPLO/5hI7b2kmbhzythoYpo= X-Google-Smtp-Source: AGHT+IGEpW7wmWeybJnpBvSTuW+zTaaN4KH+rvap+KWtBzLO8ZpZxhwtkF1M0oDFPGXUbpKMncLgZkN+gSn5Eb4rJk0= X-Received: by 2002:a17:906:c0e:b0:a28:aa7f:1183 with SMTP id s14-20020a1709060c0e00b00a28aa7f1183mr2737265ejf.102.1705476158888; Tue, 16 Jan 2024 23:22:38 -0800 (PST) MIME-Version: 1.0 References: <20240117023641.3389770-1-ppalka@redhat.com> In-Reply-To: <20240117023641.3389770-1-ppalka@redhat.com> From: Jonathan Wakely Date: Wed, 17 Jan 2024 07:22:26 +0000 Message-ID: Subject: Re: [PATCH] libstdc++/ranges: Define _S_has_simple_call_op on newer adaptors To: Patrick Palka Cc: gcc-patches , "libstdc++" Content-Type: multipart/alternative; boundary="0000000000009f9f41060f1f1c2d" X-Spam-Status: No, score=-6.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --0000000000009f9f41060f1f1c2d Content-Type: text/plain; charset="UTF-8" On Wed, 17 Jan 2024, 02:37 Patrick Palka, wrote: > Tested on x86_64-pc-linux-gnu, does this look OK for trunk? > OK > -- >8 -- > > This compile-time and diagnostic improvement[1] is less important in > C++23 mode where deducing this is available and used in _Pipe, but for > benefit of C++20 mode and for consistency let's set the flag on the most > recently added range adaptors which lack it. > > [1]: Defining _S_has_simple_call_op=true for a range adaptor closure > object signals that the adaptor has an operator() that's not overloaded > according to the constness/value category of the object, which in turn > allows us to implement the operator() of the composition of such adaptors > in a simpler way. > > libstdc++-v3/ChangeLog: > > * include/std/ranges (views::_Adjacent::_S_has_simple_call_op): > Define to true. > (views::_AsRvalue::_S_has_simple_call_op): Likewise. > (views::_Enumerate::_S_has_simple_call_op): Likewise. > (views::_AsConst::_S_has_simple_call_op): Likewise. > --- > libstdc++-v3/include/std/ranges | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/libstdc++-v3/include/std/ranges > b/libstdc++-v3/include/std/ranges > index 7ef835f486a..66502cc1da4 100644 > --- a/libstdc++-v3/include/std/ranges > +++ b/libstdc++-v3/include/std/ranges > @@ -5669,6 +5669,8 @@ namespace views::__adaptor > else > return adjacent_view, > _Nm>(std::forward<_Range>(__r)); > } > + > + static constexpr bool _S_has_simple_call_op = true; > }; > > template > @@ -8844,6 +8846,8 @@ namespace views::__adaptor > else > return as_rvalue_view(std::forward<_Range>(__r)); > } > + > + static constexpr bool _S_has_simple_call_op = true; > }; > > inline constexpr _AsRvalue as_rvalue; > @@ -9147,6 +9151,8 @@ namespace views::__adaptor > constexpr auto > operator() [[nodiscard]] (_Range&& __r) const > { return enumerate_view>(std::forward<_Range>(__r)); > } > + > + static constexpr bool _S_has_simple_call_op = true; > }; > > inline constexpr _Enumerate enumerate; > @@ -9253,6 +9259,8 @@ namespace views::__adaptor > else > return as_const_view(std::forward<_Range>(__r)); > } > + > + static constexpr bool _S_has_simple_call_op = true; > }; > > inline constexpr _AsConst as_const; > -- > 2.43.0.367.g186b115d30 > > --0000000000009f9f41060f1f1c2d--