220 34549 <1f550260-377a-4409-b29e-dee0769d6bd9@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: Feedback requested on D0762R0 draft 1: result<T,
 E> and expected<T, E>: Summary of the Boost.Outcome
Date: Tue, 3 Oct 2017 08:21:33 -0700 (PDT)
Lines: 131
Approved: news@gmane.org
Message-ID: <1f550260-377a-4409-b29e-dee0769d6bd9@isocpp.org>
References: <1b0dc116-044e-4966-8c7b-aeadf0d1b300@isocpp.org>
 <f3a9a0ec-2060-4513-90ee-864e742e49c8@isocpp.org>
 <ba560292-2b30-44ff-8a37-96c95c2abd24@isocpp.org>
 <f90d8cd7-d12c-44c4-8f4f-78ebe10ab344@isocpp.org>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: blaine.gmane.org
Mime-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_6957_113859296.1507044093620"
X-Trace: blaine.gmane.org 1507044096 17230 195.159.176.226 (3 Oct 2017 15:21:36 GMT)
X-Complaints-To: usenet@blaine.gmane.org
NNTP-Posting-Date: Tue, 3 Oct 2017 15:21:36 +0000 (UTC)
To: ISO C++ Standard - Future Proposals <std-proposals@isocpp.org>
Original-X-From: std-proposals+bncBDGKFT5YZADRB7WVZ3HAKGQESKVP5TY@isocpp.org Tue Oct 03 17:21:31 2017
Return-path: <std-proposals+bncBDGKFT5YZADRB7WVZ3HAKGQESKVP5TY@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-qt0-f198.google.com ([209.85.216.198])
	by blaine.gmane.org with esmtp (Exim 4.84_2)
	(envelope-from <std-proposals+bncBDGKFT5YZADRB7WVZ3HAKGQESKVP5TY@isocpp.org>)
	id 1dzP0i-0003lv-5U
	for gclcip-std-proposals@m.gmane.org; Tue, 03 Oct 2017 17:21:28 +0200
Original-Received: by mail-qt0-f198.google.com with SMTP id 53sf5150510qtz.21
        for <gclcip-std-proposals@m.gmane.org>; Tue, 03 Oct 2017 08:21:36 -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=9FUn0M+pLnCsfVnQt8D8oLDU2fUrCpN2VA1qITg101g=;
        b=sigzU90/UDl7iDiKFra5etmOIj/iF/CD2IHDdKzm7sfmYkXCNYAzCZ4VWVvwpi0/tm
         ek0764bS1ms7Ia2nldX6RXDRgNcjwPq52HLros/pdYTwD3/+fUKvxBLIqZe9F28y73rC
         TvBTWuzlZkeT7kHCAQQKEYTWBYCNRtsaQD8NG5+Pf1Pek9T/YOYWjL11n9wo5JFvbRpM
         Sn14tCzKRvs5mSMFm7sfX2H4ZNet8mI1BFd6dnfLimmCPwVYJ0+zeAIBFvwtWp2CuKc0
         VuXGhRu6hpAxOgbs/LKgeTLFd6P0kpxg7VC883XeOk5dlA0lOJ7a3dNN87Zg7jPpv+BQ
         feQw==
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=9FUn0M+pLnCsfVnQt8D8oLDU2fUrCpN2VA1qITg101g=;
        b=jUc+8eMidFpvXwG6hmACCuOya9khawncOJf3XVPNmYmV84ZPXBjkfpDgJdbOemBcBS
         wAfTbQ2kdCIYl+A5bhavv1fpN9udgM3ubOInmuxkyUD3ppsN0Rh/WWk5k+kzqbRllCIg
         yJrxy4JKAfn+Vi3waL+GLeweiF40RE4W3DFtmkfaKfHU95+TBXN2BMOjf2xCbxHXH573
         u0uKFeXwYNM0elu7VVHVhuhPyX7zTpMMk1KktpFo1+YIW4tUFDw/rg3vZkSL8WZoNITK
         uuGOTu9Md/AAm+U+1ifsv3LR4OY5C3kPdxSPXr3BFiunxFsQEvbpAlLTpIm+euyq/RRL
         dYyQ==
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=9FUn0M+pLnCsfVnQt8D8oLDU2fUrCpN2VA1qITg101g=;
        b=Xk67ttCqWqESxG4aX0TIj/T+ccqdwWeU2HSwKYRCXtEO/moma5m1n962NQuKWkyW15
         qTsxaY9aYx5ddBdhDQG4ls4q2v6tUKKdjxJJv8ZmTZE5ulnIKGSmT2y9wsPct1x9DCtO
         TQsI/LCFxv0R2UZa0Ps1r/hMyKI8krexXeLTjPP/r7E0Wzt4utjfDlFuPW59/1xCowFU
         M1jq2IBlNTEwwxdKO/ZLhunp1UIARzsZrNAWaSE3mbSHDnOpj2idlsW9j0JaJ3aV5s7h
         ZEmyymsLFHRYlpM3WCBDzQnsMWH2ziTx/8v8NRqXFy67jb+1RYsWRA/kqCdwp/LidC9j
         Z5/A==
X-Gm-Message-State: AMCzsaWpgfQ1bPZeesB9WW/Vo29l9YGxzCbUdmdkpOE0t9qp4F0TVLBu
	q4/PGcluPLLo4Wv7htcoHTvBLg==
X-Google-Smtp-Source: AOwi7QCo8R7b1vLjnfpUx5uQNgJXwR67igu/XRTbvt0een/uup6Jt61RpEljGNdx/lzbKBwO8Rt5UA==
X-Received: by 10.31.49.134 with SMTP id x128mr3837533vkx.48.1507044095581;
        Tue, 03 Oct 2017 08:21:35 -0700 (PDT)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.176.74.140 with SMTP id s12ls4454014uae.20.gmail; Tue, 03 Oct
 2017 08:21:34 -0700 (PDT)
X-Received: by 10.31.218.3 with SMTP id r3mr807200vkg.28.1507044094263;
        Tue, 03 Oct 2017 08:21:34 -0700 (PDT)
In-Reply-To: <f90d8cd7-d12c-44c4-8f4f-78ebe10ab344@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-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:34549
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/34549>

------=_Part_6957_113859296.1507044093620
Content-Type: multipart/alternative; 
	boundary="----=_Part_6958_1207466558.1507044093620"

------=_Part_6958_1207466558.1507044093620
Content-Type: text/plain; charset="UTF-8"


>
>
> Yet another reason to prefer `expected`: it doesn't encourage you to use 
> poor interfaces.
>

A lot of these sweeping hand waving generalisations of yours unfortunately 
seem to repeatedly come from ignorance. It's hardly the first time you've 
made these unfounded claims, and you did so repeatedly throughout your 
reply.

Outcome's checked<T, E> is very similar to expected<T, E>. Do your research 
before making more claims without basis.
 

>
> `Result` uses "variant storage" just as much as `Expected`.
>

Outcome uses struct storage, not union storage.
 

>
> And a strong never empty guaranteed variant storage like Expected provides 
>> means a ton load more again implementation code, much of which is complex 
>> for the compiler to instantiate i.e. lots of SFINAE and concept matching. 
>> You've got potential double buffering in there,
>>
>
> P0110 shows that you don't have to double-buffer to get the strong never 
> empty guarantee. The proposal already requires, if you do 
> assignment/emplacement, that `E` is nothrow move constructible. That allows 
> you to avoid double buffering.
>
> That's not to say that the code isn't complex. But there is no potential 
> for double buffering.
>

D0323R3 currently entirely deletes assignment unless E is nothrow move 
constructible, thus allowing avoidance of having to consider double 
buffering.
 

>
> The moment the standard starts requiring a specific implementation is the 
> moment it stops being a standard and starts being an implementation of some 
> standard. The committee doesn't "historically" dictate implementations 
> because *it's not their job*.
>
> Things change as standard libraries grow.

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/1f550260-377a-4409-b29e-dee0769d6bd9%40isocpp.org.

------=_Part_6958_1207466558.1507044093620
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"><div><br></div><div>Yet another reason to prefer `expected`: it doesn&#=
39;t encourage you to use poor interfaces.</div></div></blockquote><div><br=
></div><div>A lot of these sweeping hand waving generalisations of yours un=
fortunately seem to repeatedly come from ignorance. It&#39;s hardly the fir=
st time you&#39;ve made these unfounded claims, and you did so repeatedly t=
hroughout your reply.</div><div><br></div><div>Outcome&#39;s checked&lt;T, =
E&gt; is very similar to expected&lt;T, E&gt;. Do your research before maki=
ng more claims without basis.</div><div>=C2=A0</div><blockquote class=3D"gm=
ail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc soli=
d;padding-left: 1ex;"><div dir=3D"ltr"><div><br></div><div>`Result` uses &q=
uot;variant storage&quot; just as much as `Expected`.<br></div></div></bloc=
kquote><div><br></div><div>Outcome uses struct storage, not union storage.<=
/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></div><div><br></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> And a strong never empty guaranteed variant storage=
 like Expected provides means a ton load more again implementation code, mu=
ch of which is complex for the compiler to instantiate i.e. lots of SFINAE =
and concept matching. You&#39;ve got potential double buffering in there,</=
div></div></blockquote><div><br></div><div>P0110 shows that you don&#39;t h=
ave to double-buffer to get the strong never empty guarantee. The proposal =
already requires, if you do assignment/emplacement, that `E` is nothrow mov=
e constructible. That allows you to avoid double buffering.</div><div><br><=
/div><div>That&#39;s not to say that the code isn&#39;t complex. But there =
is no potential for double buffering.<br></div></div></blockquote><div><br>=
</div><div>D0323R3 currently entirely deletes assignment unless E is nothro=
w move constructible, thus allowing avoidance of having to consider double =
buffering.<br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" styl=
e=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left:=
 1ex;"><div dir=3D"ltr"><div></div><div><br></div><div>The moment the stand=
ard starts requiring a specific implementation is the moment it stops being=
 a standard and starts being an implementation of some standard. The commit=
tee doesn&#39;t &quot;historically&quot; dictate implementations because <i=
>it&#39;s not their job</i>.</div><br></div></blockquote><div>Things change=
 as standard libraries grow.</div><div><br></div><div>Niall=C2=A0</div></di=
v>

<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/1f550260-377a-4409-b29e-dee0769d6bd9%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/1f550260-377a-4409-b29e-dee0769d6bd9=
%40isocpp.org</a>.<br />

------=_Part_6958_1207466558.1507044093620--

------=_Part_6957_113859296.1507044093620--

.
