220 38752 <906c89da-61de-41ae-bf38-c2cf8ade77b9@isocpp.org> article
Path: news.gmane.org!.POSTED!not-for-mail
From: Nicol Bolas <jmckesson@gmail.com>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: The madness called "simple concepts syntax"
Date: Wed, 20 Jun 2018 09:44:58 -0700 (PDT)
Lines: 195
Approved: news@gmane.org
Message-ID: <906c89da-61de-41ae-bf38-c2cf8ade77b9@isocpp.org>
References: <19c57a60-e883-4474-b106-7ff2ebc122ee@isocpp.org>
 <83850f66-75f2-4497-86f3-afd5fa91a067@isocpp.org>
 <a1ae0248-5af7-40b9-abcf-9f8c9e2c761e@isocpp.org>
 <ee3facb4-a0cd-4bd8-9197-f922787fec75@isocpp.org>
 <5574e3bb-3c4d-4459-a956-3fb77e26d050@isocpp.org>
 <3c5f8766-9ef4-46be-a9c2-7b5f9c7f5ee7@isocpp.org>
 <f866bc73-ddd3-43a6-82db-b977c90c09b1@isocpp.org>
 <57272b82-fbc7-490a-b332-73a2deaedac5@isocpp.org>
 <02c84409-d59c-480c-b33f-ced5cdd4fff2@isocpp.org>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: blaine.gmane.org
Mime-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_30654_819060810.1529513098671"
X-Trace: blaine.gmane.org 1529512974 19250 195.159.176.226 (20 Jun 2018 16:42:54 GMT)
X-Complaints-To: usenet@blaine.gmane.org
NNTP-Posting-Date: Wed, 20 Jun 2018 16:42:54 +0000 (UTC)
Cc: mihailnajdenov@gmail.com
To: ISO C++ Standard - Future Proposals <std-proposals@isocpp.org>
Original-X-From: std-proposals+bncBCEKFTV6ZUMBBC4JVLMQKGQEKBHIGFY@isocpp.org Wed Jun 20 18:42:50 2018
Return-path: <std-proposals+bncBCEKFTV6ZUMBBC4JVLMQKGQEKBHIGFY@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-yw0-f197.google.com ([209.85.161.197])
	by blaine.gmane.org with esmtp (Exim 4.84_2)
	(envelope-from <std-proposals+bncBCEKFTV6ZUMBBC4JVLMQKGQEKBHIGFY@isocpp.org>)
	id 1fVgC1-0004uD-Qg
	for gclcip-std-proposals@m.gmane.org; Wed, 20 Jun 2018 18:42:50 +0200
Original-Received: by mail-yw0-f197.google.com with SMTP id z65-v6sf100219ywa.14
        for <gclcip-std-proposals@m.gmane.org>; Wed, 20 Jun 2018 09:45:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=isocpp-org.20150623.gappssmtp.com; s=20150623;
        h=date:from:to:cc:message-id:in-reply-to:references:subject
         :mime-version:x-original-sender:reply-to:precedence:mailing-list
         :list-id:list-post:list-help:list-archive:list-subscribe
         :list-unsubscribe;
        bh=SwlE6VAPa0h8Hp1Cy2yofGe/FFLVrbHOTEOMZHOvESM=;
        b=Ttejz0fIljUUR0l8Q65iOC0VRPnVQQhgOqS41ZNjJj2SLaDekACR0EtZM68fcfEJ2P
         OVLjp28Ls1gms9OUVd5mLO3PX5IZg6FUcgJGpWB2Dy6eZNYSpNj9CYH2fg0izJaDAH9i
         iPOB3qwyaeRvXoOEknx8b10MfQpG/4zGxvLqEkY+0GahjkgvgqOdfLLblW1C0rAJTB6s
         L6eC35NaCdI47/HgweKy/c16iJ5AhTj1/kPMnbKvwXI99h2LqDR1y55OMVl0AQGfXmhT
         CBmEbkXQ89JPhqr0/LoQRCaSom0lRgoFtTVwNnp79U3m3nNW1QheTHcnbHZp/Q6Ffnhm
         BVLg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=date:from:to:cc:message-id:in-reply-to:references:subject
         :mime-version:x-original-sender:reply-to:precedence:mailing-list
         :list-id:list-post:list-help:list-archive:list-subscribe
         :list-unsubscribe;
        bh=SwlE6VAPa0h8Hp1Cy2yofGe/FFLVrbHOTEOMZHOvESM=;
        b=eHqbDXUcRwD8QRcFR14aDa9sfvZkOU/XZjNHJeek5WCIOycaR/L0vNU8/UvJMA0qos
         8/fJL2WEXBYX/6udeddULoyUKasOwmkHGaMHHHgQWXyfLySWwbJVgh4HiPhrd29wdQat
         v7UoEzHWZvAE+txyg1X0eCTUpC/XN4YY3nqQJIS3fuBql05Q7HkhvX3EEELVnqIUJTh/
         CLQuUbLS9SnWDhNWfdHLkq2Jix5fnZpPjY64EJz5xEcGGIvsqFibAx793ZaK3ziWrSdi
         KR3DvaKrnSMGCAtpBm7UnDphKzGCZWIeGkhG392swaaemW+/dc6taqDbbDIV5Vd1VaRr
         03ng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:date:from:to:cc:message-id:in-reply-to
         :references:subject:mime-version:x-original-sender:reply-to
         :precedence:mailing-list:list-id:x-spam-checked-in-group:list-post
         :list-help:list-archive:list-subscribe:list-unsubscribe;
        bh=SwlE6VAPa0h8Hp1Cy2yofGe/FFLVrbHOTEOMZHOvESM=;
        b=qjaz+ixJE7SQEAASwwhnPDfwnJVgy7K7gs9w3TsGTakkyysku++pdwyaAJa93XpL6i
         uDAsuSrxW/G/EXf4f+46F3mW5XtMO07DVUF5Ij6WWldYCp0Iiq31Kf/8j/y6R65dUxJN
         V1rgjwmosuwNqiXisNccR7N0Kz0SojsfCYloLdiNFm1uuTeOMXKenvtjmrCyG3jcdj8C
         j/n47bZrNbkjSzpu/sjsC99pqe6SyjvJU3806ZSgC8K4SHm7ceWomSEpfCd0Rhix9UGY
         sX6iMJJNuAwMvFooM13RZtgpuGE9NA8CVpYBsLfQ0n+/nvCfB/1m7Vn2X9Wl7h9bCMSQ
         MXhA==
X-Gm-Message-State: APt69E3ReyLbvdeide6hKH58JW8tsVXjozY/jgwNIAcm13iSHUNcDuA/
	YIrjkseEtvSn2vga5rBOzekIyw==
X-Google-Smtp-Source: ADUXVKLH+DC0e3BArEfgfWhYL9+8RVo0xjl+dccnCQzNuGrM+GANSK3S4zemhV2b6tJBHICqGnnoEg==
X-Received: by 2002:a81:3903:: with SMTP id g3-v6mr5738162ywa.49.1529513100535;
        Wed, 20 Jun 2018 09:45:00 -0700 (PDT)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 2002:a81:3157:: with SMTP id x84-v6ls518904ywx.32.gmail; Wed, 20
 Jun 2018 09:44:59 -0700 (PDT)
X-Received: by 2002:a0d:cb58:: with SMTP id n85-v6mr1105836ywd.5.1529513099356;
        Wed, 20 Jun 2018 09:44:59 -0700 (PDT)
In-Reply-To: <02c84409-d59c-480c-b33f-ced5cdd4fff2@isocpp.org>
X-Original-Sender: jmckesson@gmail.com
Precedence: list
Mailing-list: list std-proposals@isocpp.org; contact std-proposals+owners@isocpp.org
List-ID: <std-proposals.isocpp.org>
X-Spam-Checked-In-Group: std-proposals@isocpp.org
X-Google-Group-Id: 399137483710
List-Post: <https://groups.google.com/a/isocpp.org/group/std-proposals/post>, <mailto:std-proposals@isocpp.org>
List-Help: <https://support.google.com/a/isocpp.org/bin/topic.py?topic=25838>, <mailto:std-proposals+help@isocpp.org>
List-Archive: <https://groups.google.com/a/isocpp.org/group/std-proposals/>
List-Subscribe: <https://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>,
 <mailto:std-proposals+subscribe@isocpp.org>
List-Unsubscribe: <mailto:googlegroups-manage+399137483710+unsubscribe@googlegroups.com>,
 <https://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>
Xref: news.gmane.org gmane.comp.lang.c++.isocpp.proposals:38752
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/38752>

------=_Part_30654_819060810.1529513098671
Content-Type: multipart/alternative; 
	boundary="----=_Part_30655_1199753039.1529513098672"

------=_Part_30655_1199753039.1529513098672
Content-Type: text/plain; charset="UTF-8"

On Wednesday, June 20, 2018 at 2:46:56 AM UTC-4, mihailn...@gmail.com wrote:
>
> On Wednesday, June 20, 2018 at 1:32:55 AM UTC+3, Nicol Bolas wrote:
>>
>> On Tuesday, June 19, 2018 at 4:57:07 PM UTC-4, mihailn...@gmail.com 
>> wrote:
>>>
>>> On Tuesday, June 19, 2018 at 10:15:35 PM UTC+3, Nicol Bolas wrote:
>>>>
>>>> On Tuesday, June 19, 2018 at 2:48:17 PM UTC-4, mihailn...@gmail.com 
>>>> wrote:
>>>>>
>>>>> In any case Concepts-sans-terse is not frozen. And that is what 
>>>>> worries me.
>>>>>
>>>>
>>>> Are you also worried that contracts aren't frozen either? Or that 
>>>> ranges isn't frozen? Or `operator<=>` isn't frozen yet?
>>>>
>>>> They're not frozen because C++20 is not frozen. That's how standards 
>>>> are developed. Concepts is decoupled from terse syntax; one is in, and the 
>>>> other is out.
>>>>
>>>
> I *wish* that was the case, but "the other" is not 'out' - it is still 
> actively pursued. Hence this topic.
>
> My wish is to have this discussion after C++ 23 instead.
>

Your earlier statement suggested that you were concerned that terse syntax 
was interferring with the rest of concepts being shipped: "Even worse - to 
have the terse lambda blocking normal lambda. Because we are there with 
Concepts."

But now, you're saying that you're not concerned with when the rest of 
concepts is shipped. You're merely concerned that terse syntax *exists at 
all*. That people are working on trying to get a feature into the standard 
that you don't want.

Let me put it a different way. Do you *really* want to have to write this 
to have a conceptualized lambda:

[]<Concept C1, Concept C2>(C1 &c1, const C2 &c2) {...}

Rather than

[](Concept &c1, const Concept &c2) {...}

Or

[](Concept{} &c1, const Concept{} &c2) {...}

Why is the first one better than the second or third? What is all of that 
verbiage providing?

-- 
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/906c89da-61de-41ae-bf38-c2cf8ade77b9%40isocpp.org.

------=_Part_30655_1199753039.1529513098672
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On Wednesday, June 20, 2018 at 2:46:56 AM UTC-4, mihailn..=
..@gmail.com wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;marg=
in-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"=
ltr">On Wednesday, June 20, 2018 at 1:32:55 AM UTC+3, Nicol Bolas wrote:<bl=
ockquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-l=
eft:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">On Tuesday, June 19, =
2018 at 4:57:07 PM UTC-4, <a>mihailn...@gmail.com</a> wrote:<blockquote cla=
ss=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc=
 solid;padding-left:1ex"><div dir=3D"ltr">On Tuesday, June 19, 2018 at 10:1=
5:35 PM UTC+3, Nicol Bolas wrote:<blockquote class=3D"gmail_quote" style=3D=
"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><d=
iv dir=3D"ltr">On Tuesday, June 19, 2018 at 2:48:17 PM UTC-4, <a>mihailn...=
@gmail.com</a> wrote:<blockquote class=3D"gmail_quote" style=3D"margin:0;ma=
rgin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"lt=
r"><div>In any case Concepts<span style=3D"display:inline!important;float:n=
one;background-color:transparent;color:rgb(34,34,34);font-family:&quot;Aria=
l&quot;,&quot;Helvetica&quot;,sans-serif;font-size:13px;font-style:normal;f=
ont-variant:normal;font-weight:400;letter-spacing:normal;text-align:left;te=
xt-decoration:none;text-indent:0px;text-transform:none;white-space:normal;w=
ord-spacing:0px">-sans-terse</span> is not frozen. And that is what worries=
 me.</div></div></blockquote><div><br></div><div>Are you also worried that =
contracts aren&#39;t frozen either? Or that ranges isn&#39;t frozen? Or `op=
erator&lt;=3D&gt;` isn&#39;t frozen yet?</div><div><br></div><div>They&#39;=
re not frozen because C++20 is not frozen. That&#39;s how standards are dev=
eloped. Concepts is decoupled from terse syntax; one is in, and the other i=
s out.</div></div></blockquote></div></blockquote></div></blockquote></div>=
</blockquote><blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-le=
ft: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr">=
<div><br></div><div>I *wish* that was the case, but &quot;the other&quot; i=
s not &#39;out&#39; - it is still actively pursued. Hence this topic.</div>=
<div><br></div><div>My wish is to have this discussion after C++ 23 instead=
..<br></div></div></blockquote><div><br></div><div>Your earlier statement su=
ggested that you were concerned that terse syntax was interferring with the=
 rest of concepts being shipped: &quot;Even worse - to have the terse lambd=
a blocking normal lambda. Because we are there with Concepts.&quot;</div><d=
iv><br></div><div>But now, you&#39;re saying that you&#39;re not concerned =
with when the rest of concepts is shipped. You&#39;re merely concerned that=
 terse syntax <i>exists at all</i>. That people are working on trying to ge=
t a feature into the standard that you don&#39;t want.</div><div><br></div>=
<div>Let me put it a different way. Do you <i>really</i> want to have to wr=
ite this to have a conceptualized lambda:</div><div><br></div><div style=3D=
"background-color: rgb(250, 250, 250); border-color: rgb(187, 187, 187); bo=
rder-style: solid; border-width: 1px; overflow-wrap: break-word;" class=3D"=
prettyprint"><code class=3D"prettyprint"><div class=3D"subprettyprint"><spa=
n style=3D"color: #660;" class=3D"styled-by-prettify">[]&lt;</span><span st=
yle=3D"color: #606;" class=3D"styled-by-prettify">Concept</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> C1</span><span style=3D"col=
or: #660;" class=3D"styled-by-prettify">,</span><span style=3D"color: #000;=
" class=3D"styled-by-prettify"> </span><span style=3D"color: #606;" class=
=3D"styled-by-prettify">Concept</span><span style=3D"color: #000;" class=3D=
"styled-by-prettify"> C2</span><span style=3D"color: #660;" class=3D"styled=
-by-prettify">&gt;(</span><span style=3D"color: #000;" class=3D"styled-by-p=
rettify">C1 </span><span style=3D"color: #660;" class=3D"styled-by-prettify=
">&amp;</span><span style=3D"color: #000;" class=3D"styled-by-prettify">c1<=
/span><span style=3D"color: #660;" class=3D"styled-by-prettify">,</span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=
=3D"color: #008;" class=3D"styled-by-prettify">const</span><span style=3D"c=
olor: #000;" class=3D"styled-by-prettify"> C2 </span><span style=3D"color: =
#660;" class=3D"styled-by-prettify">&amp;</span><span style=3D"color: #000;=
" class=3D"styled-by-prettify">c2</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">)</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-pret=
tify">{...}</span><span style=3D"color: #000;" class=3D"styled-by-prettify"=
><br><br></span><span style=3D"color: #606;" class=3D"styled-by-prettify">R=
ather</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> than=
<br><br></span><span style=3D"color: #660;" class=3D"styled-by-prettify">[]=
(</span><span style=3D"color: #606;" class=3D"styled-by-prettify">Concept</=
span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><spa=
n style=3D"color: #660;" class=3D"styled-by-prettify">&amp;</span><span sty=
le=3D"color: #000;" class=3D"styled-by-prettify">c1</span><span style=3D"co=
lor: #660;" class=3D"styled-by-prettify">,</span><span style=3D"color: #000=
;" class=3D"styled-by-prettify"> </span><span style=3D"color: #008;" class=
=3D"styled-by-prettify">const</span><span style=3D"color: #000;" class=3D"s=
tyled-by-prettify"> </span><span style=3D"color: #606;" class=3D"styled-by-=
prettify">Concept</span><span style=3D"color: #000;" class=3D"styled-by-pre=
ttify"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify">&a=
mp;</span><span style=3D"color: #000;" class=3D"styled-by-prettify">c2</spa=
n><span style=3D"color: #660;" class=3D"styled-by-prettify">)</span><span s=
tyle=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"c=
olor: #660;" class=3D"styled-by-prettify">{...}</span><span style=3D"color:=
 #000;" class=3D"styled-by-prettify"><br><br></span><span style=3D"color: #=
606;" class=3D"styled-by-prettify">Or</span><span style=3D"color: #000;" cl=
ass=3D"styled-by-prettify"><br><br></span><span style=3D"color: #660;" clas=
s=3D"styled-by-prettify">[](</span><span style=3D"color: #606;" class=3D"st=
yled-by-prettify">Concept</span><span style=3D"color: #660;" class=3D"style=
d-by-prettify">{}</span><span style=3D"color: #000;" class=3D"styled-by-pre=
ttify"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify">&a=
mp;</span><span style=3D"color: #000;" class=3D"styled-by-prettify">c1</spa=
n><span style=3D"color: #660;" class=3D"styled-by-prettify">,</span><span s=
tyle=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"c=
olor: #008;" class=3D"styled-by-prettify">const</span><span style=3D"color:=
 #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #606;" c=
lass=3D"styled-by-prettify">Concept</span><span style=3D"color: #660;" clas=
s=3D"styled-by-prettify">{}</span><span style=3D"color: #000;" class=3D"sty=
led-by-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-pr=
ettify">&amp;</span><span style=3D"color: #000;" class=3D"styled-by-prettif=
y">c2</span><span style=3D"color: #660;" class=3D"styled-by-prettify">)</sp=
an><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span =
style=3D"color: #660;" class=3D"styled-by-prettify">{...}</span></div></cod=
e></div><div><br></div><div>Why is the first one better than the second or =
third? What is all of that verbiage providing?<br></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/906c89da-61de-41ae-bf38-c2cf8ade77b9%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/906c89da-61de-41ae-bf38-c2cf8ade77b9=
%40isocpp.org</a>.<br />

------=_Part_30655_1199753039.1529513098672--

------=_Part_30654_819060810.1529513098671--

.
