220 39409 <fa71557a-d506-4f1d-b39e-590f337b8ae3@isocpp.org> article
Path: news.gmane.org!.POSTED!not-for-mail
From: Niall Douglas <nialldouglas14@gmail.com>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: Re: Alternative proposal for mapping P0709
 Deterministic Exceptions into C
Date: Wed, 25 Jul 2018 12:47:03 -0700 (PDT)
Lines: 112
Approved: news@gmane.org
Message-ID: <fa71557a-d506-4f1d-b39e-590f337b8ae3@isocpp.org>
References: <6a65c934-5d2a-4e75-b88d-9eaaee338bd3@isocpp.org>
 <1c229827-6d5d-45bd-8766-c3af818b2b0b@isocpp.org> <CAC+0CCP_jeR=fr7a+XVeVJ+0wm4KG9U6iEunOHk3y2qSi3jrjg@mail.gmail.com>
 <4ac80882-16fc-4ab4-9a12-64da1ef0e974@isocpp.org>
 <CAC+0CCPJLYt4frAh+xcSyEpA9qiEdy=O98utgxz2Or5mwMoabw@mail.gmail.com>
 <8866881c-ef1d-4c37-9242-5b1d3327c288@isocpp.org>
 <e8190580-cda9-4899-ba2b-9a0fd5d48073@isocpp.org>
 <363df3db-b747-449f-b95d-81d15b6c3842@isocpp.org>
 <ceee4153-dde7-43a3-b43f-aaf62aa01b60@isocpp.org>
 <edaab808-c155-4369-9be9-e1a0fad36265@isocpp.org>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: blaine.gmane.org
Mime-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_9439_1083350221.1532548023426"
X-Trace: blaine.gmane.org 1532547898 13486 195.159.176.226 (25 Jul 2018 19:44:58 GMT)
X-Complaints-To: usenet@blaine.gmane.org
NNTP-Posting-Date: Wed, 25 Jul 2018 19:44:58 +0000 (UTC)
To: ISO C++ Standard - Future Proposals <std-proposals@isocpp.org>
Original-X-From: std-proposals+bncBDGKFT5YZADRBOFH4PNAKGQE6MIBKLA@isocpp.org Wed Jul 25 21:44:54 2018
Return-path: <std-proposals+bncBDGKFT5YZADRBOFH4PNAKGQE6MIBKLA@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-yb0-f197.google.com ([209.85.213.197])
	by blaine.gmane.org with esmtp (Exim 4.84_2)
	(envelope-from <std-proposals+bncBDGKFT5YZADRBOFH4PNAKGQE6MIBKLA@isocpp.org>)
	id 1fiPiQ-0003Pv-I2
	for gclcip-std-proposals@m.gmane.org; Wed, 25 Jul 2018 21:44:54 +0200
Original-Received: by mail-yb0-f197.google.com with SMTP id g6-v6sf4577893ybc.5
        for <gclcip-std-proposals@m.gmane.org>; Wed, 25 Jul 2018 12:47:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=isocpp-org.20150623.gappssmtp.com; s=20150623;
        h=date:from:to: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=ouuDb8ZnUN6yF2MXvuujy7CTRUWfrgnj+sVufmEjII8=;
        b=vNfQapRZ65l4YEUSckxbcKXyv98DNwgwVpIiODWNitNOlpkviqWD9BUblFI5DChsLA
         E3NXJhjtApBJKIpmCjgYSMPQRO9xQqLXS4WQalRp61SJFgQQXrUNbYzLgEZShRffnInk
         XWefwRcigbkosSAKyrgChQCunX4lKA4BDgR2MAs5IgNEB77JawMkg6B2lXmUg3lQ4Aal
         CwrHMwRtMt7hB+k7Pjh+Ox8k1OUsBYuMo3ottni+2zA+Nt+SiMg1H5YONl7W67+xwHxK
         fU7yhm+YmmXg5c8+NL6uD40sFqvzThY2f9qyOcjQc/n+DOlyt5cHJH76ZZkWwdXm8IaA
         1ryw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=date:from:to: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=ouuDb8ZnUN6yF2MXvuujy7CTRUWfrgnj+sVufmEjII8=;
        b=k/OQYPJVZNfDxOWkhxwCNK/nydrMf3ZS0ecIV0pkyTtPtJ78Br7vHSbvA0ZrHAnB59
         Eq6JFLwQWDVzgQ4cW2Qv/Ok+gV1SDPJaS31N9TUMLmX7TjNMjEkVMYXPEkttrgTsXsi0
         PXc+7LYWjppjNlNrNRssgeMm7MXhWuJgrN5JPAYWykuvuCpxqjfQiOCEt0dwHC117WPw
         R1q7FMfO45dZ0k5LJaeDyC+Gn9nBUsxH3JsUy2rlY79MVPgeLs3DRTkrjoK2sOzn7L5m
         LVicgm8PERqhz+gw9giAT4/xcBIXZfKm476hR2Ai3sAp0ghMVqULGXc9dNzFWkaP5PI0
         d8VQ==
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: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=ouuDb8ZnUN6yF2MXvuujy7CTRUWfrgnj+sVufmEjII8=;
        b=Kxuvq5ZuwXEa9n13NwOo3jsGua5LN0FTFmXsjGKqrqG5NffRQAwXFIbEOpV/x86J/y
         0EZ3iFbmJGoBjtISYUPmTz+8I3E/esqLDCBh3iLeF2woJRF0Z+pfgUe9Lp2jm3v8WmdM
         LBj0Eta+uCOisHD/aHVzEfn6eeM0IEyBdebAR3kE1TZqegP0PW7wCikoJDMCFznoYvwV
         w6jHC99i/DBdrlT7Tq9kIprstowen/FhOckSmT4biIo3K2+3ELwnRGJVo21zbqOC7IBT
         0n+CZ8B6DVbdWaudDCDgZDnFjinisVWPua9AOno9lyhgnZKW/pSZt0H/1xO/Tk8w1HFZ
         DiCQ==
X-Gm-Message-State: AOUpUlGS++fchyK0wFP2Jas4mSjEIm63eaGzP9r1PYdVFD11P+jiIGas
	s726Itg/WECAnW4CJR5kjYjC8w==
X-Google-Smtp-Source: AAOMgpfWzVyKTNFG1rERlsdyPIhDki2UgVgzDsIvFr/YZUdKW3nhIp4FeOfoUWMf1nxNWLxDqnlC4A==
X-Received: by 2002:a81:b2c5:: with SMTP id q188-v6mr6156053ywh.5.1532548025117;
        Wed, 25 Jul 2018 12:47:05 -0700 (PDT)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 2002:a25:5502:: with SMTP id j2-v6ls3596896ybb.7.gmail; Wed, 25
 Jul 2018 12:47:04 -0700 (PDT)
X-Received: by 2002:a25:5f4a:: with SMTP id h10-v6mr377242ybm.5.1532548024004;
        Wed, 25 Jul 2018 12:47:04 -0700 (PDT)
In-Reply-To: <edaab808-c155-4369-9be9-e1a0fad36265@isocpp.org>
X-Original-Sender: nialldouglas14@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:39409
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/39409>

------=_Part_9439_1083350221.1532548023426
Content-Type: multipart/alternative; 
	boundary="----=_Part_9440_1277428745.1532548023426"

------=_Part_9440_1277428745.1532548023426
Content-Type: text/plain; charset="UTF-8"


>
> But in short, C22 _Fails(T) maps directly onto C++ 23 throws(T).
>>
>
> Pedantic note: `throws(T)` doesn't exist. `throws(<expr>)` is a 
> *conditional* throws declaration, much like `noexcept(<expr>)`. P0709 
> makes that abundantly clear.
>
> What you're looking for is `throws{T}`. Which P0709 treats as an 
> extension, not a required part of the proposal. So there's no guarantee it 
> will make it into any hypothetical C++23.
>

There may be some movement on that next revision of P0709 in order to ease 
things for WG14.
 

>
> The only difference is auto-propagation, so a _Fails(T) if unhandled 
>> results in a failure to compile, whereas a throws(T) if unhandled 
>> propagates upwards.
>>
>> This is what WG14 asked for. As C++ 23 would surely be incorporating C22 
>> into itself, whatever goes into C also goes in C++.
>>
>
> That's not how C++ has worked since 1998. C++11 did not incorporate C99 
> wholesale; it only took specific things from it. Similarly, C++14/17/20 did 
> not adopt C11 wholesale. The two languages are *diverging*.
>

> So why should we expect C++23 to adopt C22 in this way?
>
> Both convenors of WG14 and WG21 want coevolution on this feature, 
especially as it makes it much easier to bring C++ contracts into C. That 
doesn't mean it will happen of course. But it does mean that right now, 
that's the aim, until either committee conclusively decides otherwise.

Niall

-- 
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/fa71557a-d506-4f1d-b39e-590f337b8ae3%40isocpp.org.

------=_Part_9440_1277428745.1532548023426
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><blockquote class=3D"gmail_quote" style=3D"margin: 0;margi=
n-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"l=
tr"><blockquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;b=
order-left:1px #ccc solid;padding-left:1ex"><div>But in short, C22 _Fails(T=
) maps directly onto C++ 23 throws(T).</div></blockquote><div><br></div><di=
v>Pedantic note: `throws(T)` doesn&#39;t exist. `throws(&lt;expr&gt;)` is a=
 <i>conditional</i> throws declaration, much like `noexcept(&lt;expr&gt;)`.=
 P0709 makes that abundantly clear.</div><div><br></div><div>What you&#39;r=
e looking for is `throws{T}`. Which P0709 treats as an extension, not a req=
uired part of the proposal. So there&#39;s no guarantee it will make it int=
o any hypothetical C++23.</div></div></blockquote><div><br></div><div>There=
 may be some movement on that next revision of P0709 in order to ease thing=
s for WG14.</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=
=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: =
1ex;"><div dir=3D"ltr"><div><br></div><blockquote class=3D"gmail_quote" sty=
le=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1e=
x"><div>The only difference is auto-propagation, so a _Fails(T) if unhandle=
d results in a failure to compile, whereas a throws(T) if unhandled propaga=
tes upwards.</div><div><br></div><div>This is what WG14 asked for. As C++ 2=
3 would surely be incorporating C22 into itself, whatever goes into C also =
goes in C++.</div></blockquote><div><br></div><div>That&#39;s not how C++ h=
as worked since 1998. C++11 did not incorporate C99 wholesale; it only took=
 specific things from it. Similarly, C++14/17/20 did not adopt C11 wholesal=
e. The two languages are <i>diverging</i>.<br></div></div></blockquote><blo=
ckquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-=
left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr"><div><br></div><d=
iv>So why should we expect C++23 to adopt C22 in this way?<br></div><div><b=
r></div></div></blockquote><div>Both convenors of WG14 and WG21 want coevol=
ution on this feature, especially as it makes it much easier to bring C++ c=
ontracts into C. That doesn&#39;t mean it will happen of course. But it doe=
s mean that right now, that&#39;s the aim, until either committee conclusiv=
ely decides otherwise.</div><div><br></div><div>Niall</div><div><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/fa71557a-d506-4f1d-b39e-590f337b8ae3%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/fa71557a-d506-4f1d-b39e-590f337b8ae3=
%40isocpp.org</a>.<br />

------=_Part_9440_1277428745.1532548023426--

------=_Part_9439_1083350221.1532548023426--

.
