220 39261 <fb8001ef-9dbc-4016-a60f-a4dfa55f275c@isocpp.org> article
Path: news.gmane.org!.POSTED!not-for-mail
From: Arthur O'Dwyer <arthur.j.odwyer@gmail.com>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: Move destructor draft
Date: Fri, 20 Jul 2018 16:23:44 -0700 (PDT)
Lines: 157
Approved: news@gmane.org
Message-ID: <fb8001ef-9dbc-4016-a60f-a4dfa55f275c@isocpp.org>
References: <0A99E209-333B-4140-8F65-2F022E681AC1@gmail.com>	<ac96d840-208a-472a-b0b6-712d0ad0d4cc@isocpp.org>	<CAFk2RUbrVj+3uHTSSYL8ipe=4Q=u1Lq47Pn7+aux6Rw-sNhzKQ@mail.gmail.com>	<A1D6E60D-8506-4E5A-A71A-A28B997E973B@gmail.com>	<55C0DDD4.8090100@halpernwightsoftware.com>	<411A67D7-B062-4D22-983A-095737483208@gmail.com>	<55C299B0.1060300@gmail.com>	<55C2ABA3.8060605@halpernwightsoftware.com>	<55C2ECDB.1060307@gmail.com> <CAD6_Qj-QuPRequYbFOL0SqrQSMDh73DbRr7TaqyOX42MZpYXTg@mail.gmail.com> <mpvuub$ekc$1@ger.gmane.org> <5de71605-7320-4130-938b-813304c51069@isocpp.org> <  mq2f45$k25$1@ger.gmane.org> <dc118bc8-2b00-4e23- b794-75779b15f463@isocpp.org> <mq2l4d$ub0$1@ger.gmane.org> <94331665-f7f3-444 b-a1dc-333a52be7873@isocpp.org> <mq3857$fc8$1@ger.gmane.org> <a2630a2b-51b1-4678-8217-1185ad484f9d
 @isocpp.org> <mqd0f6$up8$1@ger.gmane.org> <80721d48-888b-4dc8-b938-28f2ca329f04@isocpp.org> <mqifkk$76m$1@ger.gmane.org> <d2f76deb-d883-412f-b787-c42b9ad98f7f@isocpp.org>
 <mql69t$sdr$1@ger.gmane.org>
 <258bb255-f100-4667-bd25-af470b6d5d5f@isocpp.org>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: blaine.gmane.org
Mime-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_6755_581585786.1532129024372"
X-Trace: blaine.gmane.org 1532128901 28265 195.159.176.226 (20 Jul 2018 23:21:41 GMT)
X-Complaints-To: usenet@blaine.gmane.org
NNTP-Posting-Date: Fri, 20 Jul 2018 23:21:41 +0000 (UTC)
Cc: mihailnajdenov@gmail.com
To: ISO C++ Standard - Future Proposals <std-proposals@isocpp.org>
Original-X-From: std-proposals+bncBDLZJYWNDQIIDXWJ3ICRUBDXZO3OE@isocpp.org Sat Jul 21 01:21:36 2018
Return-path: <std-proposals+bncBDLZJYWNDQIIDXWJ3ICRUBDXZO3OE@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+bncBDLZJYWNDQIIDXWJ3ICRUBDXZO3OE@isocpp.org>)
	id 1fgeiN-0007FT-RX
	for gclcip-std-proposals@m.gmane.org; Sat, 21 Jul 2018 01:21:36 +0200
Original-Received: by mail-yb0-f197.google.com with SMTP id p4-v6sf6869511ybk.6
        for <gclcip-std-proposals@m.gmane.org>; Fri, 20 Jul 2018 16:23:47 -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=RPHLTjuw3kukTmQMo+BEkPf6q/FJuSIPpj8JOUlFuMk=;
        b=U9VuuccfSndv2O+ACIjRqK7o43wOnNZv3fq1irCvfAD2wKujksB4yBrxaxrADEbL3d
         r804rUb4/QM/swPRldsf2ngWsOuv4czc/rqkWRwYR3WVpU5hWUG/pvSg2i7XQBKtEmXs
         Dxcwn6GVwt5IQFXmMSDCailpQU4fI/73IlzXA5pU+OVq9jKJMWpYPUvVfXjGlOyGeH+9
         ma27v0UcQUJafv40+c5KzpDG8jT39rc3p6/xiyvCTwldyWM+YEGzVXSZgX3lDsDxtWhi
         D9wo63tkXRqVYV0tN3E3Rm2AqNvEXIoXrMRypIC3iOMRtgJjXHPGaxXqEOvRwYfQlqc2
         US6w==
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=RPHLTjuw3kukTmQMo+BEkPf6q/FJuSIPpj8JOUlFuMk=;
        b=YUf3vOSmtLnWtTJcDjAvafR8QBCyiXJJpwUWUWx4cjHHP88zNAmn9RzyAuZmz2jkjF
         vHQTC0FND32vftSz9R+W4fyZxHdI2hHreMn8UxwSyGQlZawsCzp8YwzoVmPmro5ZjrTy
         WplknfutG/o8oR6d/griZ+cevprL3HRQIBMVW9x4d97VPmiQJojC/NQCwS5mGcAx37fI
         j09jkKPbzvrmgfDE4Nr+Mv44m5LzEUbGC/YdzS3sMTU8B0687gD+Vbf34Ri6bCDDtg9Z
         S8Pmx4lVcL9wvj0nBa0KlUS3eNYu73H7bmI/itOnabM4fMTP1iPcY3lY5csxZixJ54N/
         aEBw==
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=RPHLTjuw3kukTmQMo+BEkPf6q/FJuSIPpj8JOUlFuMk=;
        b=NMxdsBEtiRO2PtnGEN73tiAY1r/szfldDrVphQp2XjbVbAUtijpuTiHte3utA5VNJI
         28tTj0/xYoZVUwi5Nu7IBCGx4evFnleVMZiPGv1aXVAaeeGmxu20f8zJ37CkSs7/bdH2
         593VGccFyR+FOe+LC0FmwobHNJZSfaLxCKBBZHnkpE146cJXJpAU/wdNK2A2CKfCylQG
         A9pc9jMD/eiFpTOtclfxexpI3GTWdmk9hD6pKOyZnjFoAGahoNOzyiNlN2bKo6f2qG0c
         Rxh8VrnyeALWHLb+vwIHgOco6omXubyX8nJUfPEO4QKpf4I7FGunOIilp/AxGEER1w2Y
         6BzQ==
X-Gm-Message-State: AOUpUlH/p5PI2gc559afff0CAKX+90PsRSwdZsQ1JqXH8uClUREt6YRY
	1g3cMqz5VUpzIXmmJfKWk3Al5Q==
X-Google-Smtp-Source: AAOMgpdXBizaGRFVfp6b7yg/WUyVmqCBsPWFYibyGS8ROblfMY/5roCWb4SGZ926kupZ5wRIMNDXqg==
X-Received: by 2002:a81:280c:: with SMTP id o12-v6mr1176468ywo.106.1532129026546;
        Fri, 20 Jul 2018 16:23:46 -0700 (PDT)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 2002:a0d:cb82:: with SMTP id n124-v6ls391804ywd.14.gmail; Fri, 20
 Jul 2018 16:23:45 -0700 (PDT)
X-Received: by 2002:a0d:de01:: with SMTP id h1-v6mr118654ywe.3.1532129025270;
        Fri, 20 Jul 2018 16:23:45 -0700 (PDT)
In-Reply-To: <258bb255-f100-4667-bd25-af470b6d5d5f@isocpp.org>
X-Original-Sender: arthur.j.odwyer@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:39261
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/39261>

------=_Part_6755_581585786.1532129024372
Content-Type: multipart/alternative; 
	boundary="----=_Part_6756_1699092616.1532129024372"

------=_Part_6756_1699092616.1532129024372
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Friday, July 20, 2018 at 9:55:38 AM UTC-7, mihailn...@gmail.com wrote:
>
>
> Does anyone know what happened to this proposal and destructive move in=
=20
> general? It seems the current [[trivially relocatable]] covers similar=20
> ground, but it is not the same - it can't, well, move-destruct (AFAICC).
>
> Is destructive move dead now, in favor of just marking the types, already=
=20
> "trivially relocatable"?=20
>

My impression is that previous proposals to introduce a new first-class=20
spelling (such as Denis's >>T(T&)) have not made much headway against the=
=20
Committee. Therefore, both my upcoming P1144=20
<https://quuxplusone.github.io/blog/2018/07/18/announcing-trivially-relocat=
able/>=20
"Object relocation in terms of move plus destroy" and Niall's P1029=20
"[[move_relocates]]" try to express the idea in terms of composing existing=
=20
operations:
- P1144 says "always (relocate =3D move + destroy), and sometimes (relocate=
 =3D=20
memcpy + drop)"
- P1029 says "sometimes (move =3D memcpy + drop + default-construct)"

I'd be interested to talk more about "[P1144] can't, well, move-destruct" =
=E2=80=94=20
perhaps in a new dedicated thread, though.

I'd also like to hear from anyone who was involved in actual discussions of=
=20
N4158, P0023, etc.

I have just now found the LEWG discussion of Pablo's N4034 (June 2014,=20
Rapperswil):
- http://wiki.edg.com/bin/view/Wg21rapperswil2014/N4034
And the EWG discussion of Pablo's N4158 (November 2014, Urbana):
- http://wiki.edg.com/bin/view/Wg21urbana-champaign/EvolutionWorkingGroup#N=
4158_Destructive_Move_Rev_1

It looks like things were generally favorable: LEWG sent it quickly to LWG,=
=20
LWG bounced it back to EWG due to the unexploredness of std::bless/launder=
=20
at the time, EWG expressed concern with the lack of std::bless/launder but=
=20
"encouraged more work in this direction" (of course); and then it fell into=
=20
a black hole and never emerged again.

My hope, as you can tell, is that now that we have explored ways of=20
blessing "regions of storage" so that they become "objects" (so that=20
std::vector is almost implementable these days! ;)) that some of EWG's=20
concerns may have been alleviated.  Also, N4158 lacked a public=20
implementation that provably worked with things like allocators, whereas=20
P1144 thinks the proper interaction with allocators is so easy=20
<https://godbolt.org/g/K2EqMx> the paper doesn't even talk about them.

=E2=80=93Arthur

--=20
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 e=
mail 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/fb8001ef-9dbc-4016-a60f-a4dfa55f275c%40isocpp.or=
g.

------=_Part_6756_1699092616.1532129024372
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On Friday, July 20, 2018 at 9:55:38 AM UTC-7, mihailn...@g=
mail.com wrote:<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><div>Does anyone know what happened to this proposal and d=
estructive move in general? It seems the current [[trivially relocatable]] =
covers similar ground, but it is not the same - it can&#39;t, well, move-de=
struct (AFAICC).</div><div><br></div><div>Is <span style=3D"display:inline!=
important;float:none;background-color:transparent;color:rgb(34,34,34);font-=
family:&quot;Arial&quot;,&quot;Helvetica&quot;,sans-serif;font-size:13px;fo=
nt-style:normal;font-variant:normal;font-weight:400;letter-spacing:normal;t=
ext-align:left;text-decoration:none;text-indent:0px;text-transform:none;whi=
te-space:normal;word-spacing:0px">destructive move dead now, in favor of ju=
st marking the types, already &quot;<span style=3D"display:inline!important=
;float:none;background-color:transparent;color:rgb(34,34,34);font-family:&q=
uot;Arial&quot;,&quot;Helvetica&quot;,sans-serif;font-size:13px;font-style:=
normal;font-variant:normal;font-weight:400;letter-spacing:normal;text-align=
:left;text-decoration:none;text-indent:0px;text-transform:none;white-space:=
normal;word-spacing:0px">trivially </span>relocatable&quot;?</span>=C2=A0</=
div></div></blockquote><div><br></div><div>My impression is that previous p=
roposals to introduce a new first-class spelling (such as Denis&#39;s <font=
 face=3D"courier new, monospace">&gt;&gt;T(T&amp;)</font>) have not made mu=
ch headway against the Committee. Therefore, both my upcoming <a href=3D"ht=
tps://quuxplusone.github.io/blog/2018/07/18/announcing-trivially-relocatabl=
e/">P1144</a> &quot;Object relocation in terms of move plus destroy&quot; a=
nd Niall&#39;s P1029 &quot;[[move_relocates]]&quot; try to express the idea=
 in terms of composing existing operations:</div><div>- P1144 says &quot;al=
ways (relocate =3D move + destroy), and sometimes (relocate =3D memcpy + dr=
op)&quot;</div><div>- P1029 says &quot;sometimes (move =3D memcpy + drop + =
default-construct)&quot;</div><div><br></div><div>I&#39;d be interested to =
talk more about &quot;[P1144] can&#39;t, well, move-destruct&quot; =E2=80=
=94 perhaps in a new dedicated thread, though.</div><div><br></div><div>I&#=
39;d also like to hear from anyone who was involved in actual discussions o=
f N4158, P0023, etc.</div><div><br></div><div>I have just now found the LEW=
G discussion of Pablo&#39;s N4034 (June 2014, Rapperswil):</div><div>-=C2=
=A0http://wiki.edg.com/bin/view/Wg21rapperswil2014/N4034</div><div>And the =
EWG discussion of Pablo&#39;s N4158 (November 2014, Urbana):</div><div>-=C2=
=A0http://wiki.edg.com/bin/view/Wg21urbana-champaign/EvolutionWorkingGroup#=
N4158_Destructive_Move_Rev_1</div><div><br></div><div>It looks like things =
were generally favorable: LEWG sent it quickly to LWG, LWG bounced it back =
to EWG due to the unexploredness of std::bless/launder at the time, EWG exp=
ressed concern with the lack of std::bless/launder but &quot;encouraged mor=
e work in this direction&quot; (of course); and then it fell into a black h=
ole and never emerged again.</div><div><br></div><div>My hope, as you can t=
ell, is that now that we have explored ways of blessing &quot;regions of st=
orage&quot; so that they become &quot;objects&quot; (so that std::vector is=
 almost implementable these days! ;)) that some of EWG&#39;s concerns may h=
ave been alleviated. =C2=A0Also, N4158 lacked a public implementation that =
provably worked with things like allocators, whereas P1144 thinks the prope=
r interaction with allocators is=C2=A0<a href=3D"https://godbolt.org/g/K2Eq=
Mx">so easy</a> the paper doesn&#39;t even talk about them.</div><div><br><=
/div><div>=E2=80=93Arthur</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/fb8001ef-9dbc-4016-a60f-a4dfa55f275c%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/fb8001ef-9dbc-4016-a60f-a4dfa55f275c=
%40isocpp.org</a>.<br />

------=_Part_6756_1699092616.1532129024372--

------=_Part_6755_581585786.1532129024372--

.
