220 22643 <51173e9e-9b40-43a2-b8b2-832ea5895fb5@isocpp.org> article
Path: news.gmane.org!not-for-mail
From: Lingxi Li <lilingxi.cs@gmail.com>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: Post-assignment operator
Date: Sat, 14 Nov 2015 10:16:11 -0800 (PST)
Lines: 139
Approved: news@gmane.org
Message-ID: <51173e9e-9b40-43a2-b8b2-832ea5895fb5@isocpp.org>
References: <f008efbb-88d8-4a77-8dee-c7ddbae46132@isocpp.org>
 <CANh-dXmXZ689SsMVM0JWLyJah32J2MhctCb68LHMmAv_3Pwg4A@mail.gmail.com>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: plane.gmane.org
Mime-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_676_1162193704.1447524971092"
X-Trace: ger.gmane.org 1447524988 20794 80.91.229.3 (14 Nov 2015 18:16:28 GMT)
X-Complaints-To: usenet@ger.gmane.org
NNTP-Posting-Date: Sat, 14 Nov 2015 18:16:28 +0000 (UTC)
To: ISO C++ Standard - Future Proposals <std-proposals@isocpp.org>
Original-X-From: std-proposals+bncBC27Z75TZMMBB3HUTWZAKGQEYE6CEHI@isocpp.org Sat Nov 14 19:16:13 2015
Return-path: <std-proposals+bncBC27Z75TZMMBB3HUTWZAKGQEYE6CEHI@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-io0-f199.google.com ([209.85.223.199])
	by plane.gmane.org with esmtp (Exim 4.69)
	(envelope-from <std-proposals+bncBC27Z75TZMMBB3HUTWZAKGQEYE6CEHI@isocpp.org>)
	id 1ZxfMz-0007kL-6u
	for gclcip-std-proposals@m.gmane.org; Sat, 14 Nov 2015 19:16:13 +0100
Original-Received: by ioo197 with SMTP id 197sf167372979ioo.0
        for <gclcip-std-proposals@m.gmane.org>; Sat, 14 Nov 2015 10:16:12 -0800 (PST)
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
         :content-type: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=FWifWLovRQdTv+yTwt0y1/fUhzDZDeFEYakIam6NfH4=;
        b=vdehItV58MjuXA+/qCZzMs8tVqgbR+/r8iSHCrGX1HrRr4Vj0c+o0G+mKnz6/cKcCj
         Nq4Drszh5w+uYgS7EzR5YBq9Z4HtndbWQ4UxFvJFUTk/P/+cXzq+RNJVedxwWmDHWxa9
         UV/ceKX3MfCzLRyrcSiRySuFcl1FJ1jFHxwlUmSTG5fM93fnxURZMO//+4gXchWRHkSW
         /4cqJ2Wb8JQrAKAf1lqZQ4G0ZrUFFrz+Xn2cYp0z1jU6ZGqr9y/5PXY3r7JTcroiKR0H
         nj+hpbfiTeEMUV+zDw4za1ZDYyM1YqE1Z8ROUO4Ir44vIl2LY4aQYJs/lWSwILhx6CN5
         R27A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20120113;
        h=date:from:to:message-id:in-reply-to:references:subject:mime-version
         :content-type: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=FWifWLovRQdTv+yTwt0y1/fUhzDZDeFEYakIam6NfH4=;
        b=VxR5o4Fa7ROb0zkBLkLbIH6yq53h31f3vFPqC8nU4AosFJL/lie8HpoTko0xBVDBFE
         Nn4l0j7a2YygVI5GWSrUEYSJnS4idIOLJDVhzlM+R8m9XpDr6k4FHw2aeiNvEltoWEju
         va+pwEmnGu3+lXI3cVPmj9Ba6pMBNrEpoW2T7t3GzANaDnusalgT5ANE/eoHWXAHIGdb
         wBy0BT3I3rR1LsPVFFuA9wDRBIbl3sKYwaPhabwdGW2XvXGdSNTxv3dWWXQ3rpIIblc+
         rGgwJW5P5QMqVTBlnq2h7AHNlCtiJjukW5O1NMc3CGf3TUUkYLMDPWANmg3PV28k8Yx+
         cHqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20130820;
        h=x-gm-message-state:date:from:to:message-id:in-reply-to:references
         :subject:mime-version:content-type: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=FWifWLovRQdTv+yTwt0y1/fUhzDZDeFEYakIam6NfH4=;
        b=A25n4b8NzQ0dL1os/Y8cUHoJfUpZuGHavJTocbin5YNOUPdT83dwILJg/3Noy/2eeh
         8T7Zi94bW1x4hSRZRi2Ku3kBrjmx38TpkFmlG9/KBlyCRHXt2RhCzuguMRfdqPmcM7kD
         ykk4zJUNXRe1+m0uNutUtDz2nLEfY5iS4KIplXkqkaI9gvUGTyrr/uG42XIINr+hp3d3
         Dz2PeXkWoz8x1SUvcgk6RILIyQ49QZ45gkyLmvHBJJ9vSszq1tD2hVRyybsqFvNw7L3f
         utM+21Yxka2yhHc1WSMwTmytJ4shW4pLgwC9aaH3WTGY8I/5PJBtmgIalxp9T25DmHkQ
         jH3w==
X-Gm-Message-State: ALoCoQmGXflqHvQpq8gPzOyFLSJdXz1T/Y73pFkI7b7X6HabzGYnMdiQKKbAFcQgRw5kMAoP3zdg
X-Received: by 10.107.128.166 with SMTP id k38mr25190617ioi.34.1447524972502;
        Sat, 14 Nov 2015 10:16:12 -0800 (PST)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.50.114.102 with SMTP id jf6ls520452igb.5.gmail; Sat, 14 Nov
 2015 10:16:11 -0800 (PST)
X-Received: by 10.50.40.36 with SMTP id u4mr150086igk.5.1447524971819;
        Sat, 14 Nov 2015 10:16:11 -0800 (PST)
In-Reply-To: <CANh-dXmXZ689SsMVM0JWLyJah32J2MhctCb68LHMmAv_3Pwg4A@mail.gmail.com>
X-Original-Sender: lilingxi.cs@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: <http://groups.google.com/a/isocpp.org/group/std-proposals/post>, <mailto:std-proposals@isocpp.org>
List-Help: <http://support.google.com/a/isocpp.org/bin/topic.py?topic=25838>, <mailto:std-proposals+help@isocpp.org>
List-Archive: <http://groups.google.com/a/isocpp.org/group/std-proposals/>
List-Subscribe: <http://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>,
 <http://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>
Xref: news.gmane.org gmane.comp.lang.c++.isocpp.proposals:22643
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/22643>

------=_Part_676_1162193704.1447524971092
Content-Type: multipart/alternative; 
	boundary="----=_Part_677_804193311.1447524971093"

------=_Part_677_804193311.1447524971093
Content-Type: text/plain; charset=UTF-8

I didn't know about this thing yet. But, yes, this will do it, though as a 
library feature. Thanks :)

On Sunday, November 15, 2015 at 2:07:17 AM UTC+8, Jeffrey Yasskin wrote:
>
> Check out std::exchange().
> On Nov 14, 2015 9:32 AM, "Lingxi Li" <lilin...@gmail.com <javascript:>> 
> wrote:
>
>> I frequently find code similar to the following:
>>
>> delete ptr;
>> ptr = nullptr;
>> close(fd);
>> fd = -1;
>>
>> Why don't we just introduce a post-assignment operator that performs the 
>> assignment
>> but returns the previous value of the left-hand-side, just like the 
>> post-increment/decrement
>> operator? Denote such an operator by `.=`, the above code snippet could 
>> be simplied to
>>
>> delete ptr .= nullptr;
>> close(fd .= -1);
>>
>> -- 
>>
>> --- 
>> 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-proposal...@isocpp.org <javascript:>.
>> To post to this group, send email to std-pr...@isocpp.org <javascript:>.
>> Visit this group at 
>> http://groups.google.com/a/isocpp.org/group/std-proposals/.
>>
>

-- 

--- 
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.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/.

------=_Part_677_804193311.1447524971093
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I didn&#39;t know about this thing yet. But, yes, this wil=
l do it, though as a library feature. Thanks :)<br><br>On Sunday, November =
15, 2015 at 2:07:17 AM UTC+8, Jeffrey Yasskin wrote:<blockquote class=3D"gm=
ail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc soli=
d;padding-left: 1ex;"><p dir=3D"ltr">Check out std::exchange().</p>
<div class=3D"gmail_quote">On Nov 14, 2015 9:32 AM, &quot;Lingxi Li&quot; &=
lt;<a href=3D"javascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"BfURn=
9V1AwAJ" rel=3D"nofollow" onmousedown=3D"this.href=3D&#39;javascript:&#39;;=
return true;" onclick=3D"this.href=3D&#39;javascript:&#39;;return true;">li=
lin...@gmail.com</a>&gt; wrote:<br type=3D"attribution"><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex"><div dir=3D"ltr">I frequently find code similar to the follow=
ing:<br><br><div style=3D"border:1px solid rgb(187,187,187);word-wrap:break=
-word;background-color:rgb(250,250,250)"><code><div><span style=3D"color:#0=
08">delete</span><span style=3D"color:#000"> ptr</span><span style=3D"color=
:#660">;</span><span style=3D"color:#000"><br>ptr </span><span style=3D"col=
or:#660">=3D</span><span style=3D"color:#000"> </span><span style=3D"color:=
#008">nullptr</span><span style=3D"color:#660">;</span><span style=3D"color=
:#000"><br>close</span><span style=3D"color:#660">(</span><span style=3D"co=
lor:#000">fd</span><span style=3D"color:#660">);</span><span style=3D"color=
:#000"><br>fd </span><span style=3D"color:#660">=3D</span><span style=3D"co=
lor:#000"> </span><span style=3D"color:#660">-</span><span style=3D"color:#=
066">1</span><span style=3D"color:#660">;</span></div></code></div><br>Why =
don&#39;t we just introduce a post-assignment operator that performs the as=
signment<br>but returns the previous value of the left-hand-side, just like=
 the post-increment/decrement<br>operator? Denote such an operator by `.=3D=
`, the above code snippet could be simplied to<br><br><div style=3D"border:=
1px solid rgb(187,187,187);word-wrap:break-word;background-color:rgb(250,25=
0,250)"><code><div><span style=3D"color:#008">delete</span><span style=3D"c=
olor:#000"> ptr </span><span style=3D"color:#660">.=3D</span><span style=3D=
"color:#000"> </span><span style=3D"color:#008">nullptr</span><span style=
=3D"color:#660">;</span><span style=3D"color:#000"><br>close</span><span st=
yle=3D"color:#660">(</span><span style=3D"color:#000">fd </span><span style=
=3D"color:#660">.=3D</span><span style=3D"color:#000"> </span><span style=
=3D"color:#660">-</span><span style=3D"color:#066">1</span><span style=3D"c=
olor:#660">);</span></div></code></div><br></div>

<p></p>

-- <br>
<br>
--- <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"javascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"=
BfURn9V1AwAJ" rel=3D"nofollow" onmousedown=3D"this.href=3D&#39;javascript:&=
#39;;return true;" onclick=3D"this.href=3D&#39;javascript:&#39;;return true=
;">std-proposal...@<wbr>isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"javascript:" target=3D"_bla=
nk" gdf-obfuscated-mailto=3D"BfURn9V1AwAJ" rel=3D"nofollow" onmousedown=3D"=
this.href=3D&#39;javascript:&#39;;return true;" onclick=3D"this.href=3D&#39=
;javascript:&#39;;return true;">std-pr...@isocpp.org</a>.<br>
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/" target=3D"_blank" rel=3D"nofollow" onmousedown=3D"this.href=
=3D&#39;http://groups.google.com/a/isocpp.org/group/std-proposals/&#39;;ret=
urn true;" onclick=3D"this.href=3D&#39;http://groups.google.com/a/isocpp.or=
g/group/std-proposals/&#39;;return true;">http://groups.google.com/a/<wbr>i=
socpp.org/group/std-<wbr>proposals/</a>.<br>
</blockquote></div>
</blockquote></div>

<p></p>

-- <br />
<br />
--- <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 />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/">http://groups.google.com/a/isocpp.org/group/std-proposals/<=
/a>.<br />

------=_Part_677_804193311.1447524971093--
------=_Part_676_1162193704.1447524971092--

.
