220 8319 <c505e517-1c73-4486-b9dd-9ec15af1e649@isocpp.org> article
Path: news.gmane.org!not-for-mail
From: fmatthew5876@gmail.com
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Proposal: Default swap operation
Date: Tue, 31 Dec 2013 17:42:54 -0800 (PST)
Lines: 72
Approved: news@gmane.org
Message-ID: <c505e517-1c73-4486-b9dd-9ec15af1e649@isocpp.org>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: plane.gmane.org
Mime-Version: 1.0
Content-Type: multipart/alternative; 
	boundary="----=_Part_8498_11022869.1388540574214"
X-Trace: ger.gmane.org 1388540575 17637 80.91.229.3 (1 Jan 2014 01:42:55 GMT)
X-Complaints-To: usenet@ger.gmane.org
NNTP-Posting-Date: Wed, 1 Jan 2014 01:42:55 +0000 (UTC)
To: std-proposals@isocpp.org
Original-X-From: std-proposals+bncBDELF54RTIGRBHXFRWLAKGQEUJPVOII@isocpp.org Wed Jan 01 02:43:00 2014
Return-path: <std-proposals+bncBDELF54RTIGRBHXFRWLAKGQEUJPVOII@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-oa0-f70.google.com ([209.85.219.70])
	by plane.gmane.org with esmtp (Exim 4.69)
	(envelope-from <std-proposals+bncBDELF54RTIGRBHXFRWLAKGQEUJPVOII@isocpp.org>)
	id 1VyApk-0006bl-Qy
	for gclcip-std-proposals@m.gmane.org; Wed, 01 Jan 2014 02:42:57 +0100
Original-Received: by mail-oa0-f70.google.com with SMTP id m1sf65812294oag.5
        for <gclcip-std-proposals@m.gmane.org>; Tue, 31 Dec 2013 17:42:55 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20120113;
        h=date:from:to:message-id:subject:mime-version:x-original-sender
         :reply-to:precedence:mailing-list:list-id:list-post:list-help
         :list-archive:list-subscribe:list-unsubscribe:content-type;
        bh=FWlC6E7TP3nuh5FYrXFzCH9VE7PDQcf960NP+OEcCqU=;
        b=vBcdhQqOkB2wOdwKOvsPDERa+BALPnxNN4n05UrbI4bE25gUEIrtPsolEkOuujuncH
         EFt+3AnUQEj+V7o0HQeytUJaoqjq8lgCtkYNANHelKckSBxrkAoKZ4bqAO1wg7/Q+VIV
         Uzuzcv6lh/a3x33OggCsdUGl8YhBH0ngERBBQvQJY0Ckxh0kVpNeqFxHBhV7oibon6Kr
         wYmO9Ne8YxuYvqJH0iCB3Lg4da9e2Gw2wIXBwavGxecPfHV4WftGNKfLfFPpj6nDhYPm
         xqQzr76xP/El2DuPMDHUAypNdtXAi2GMb96UGX/4+HRL0DBOq+xpwwHNAyWJAklU5fWp
         zylA==
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:subject:mime-version
         :x-original-sender:reply-to:precedence:mailing-list:list-id
         :list-post:list-help:list-archive:list-subscribe:list-unsubscribe
         :content-type;
        bh=FWlC6E7TP3nuh5FYrXFzCH9VE7PDQcf960NP+OEcCqU=;
        b=mKQt1w9SECPOj0TVPrmbPd1T0vdjpSZLL+PprhBh6FYJInT/it73d3pkhp7ewCHbrF
         7PEW1RPnhVRUJDwQtYNhqHrAcSCE8/r8QlEozHgtt6UB9fmowCMXq9u926q+tQgSa+FF
         Q5Rd8KYNB0R0qvFE0qPR56NDa2mhBkyND6vCaWrA89L3v2VV2NDcslGj6xjU8SmFG9Dj
         nvI4h9QEJzwaMF5MDE7aACyxeYrnewNJ+qdkmsT6E3O2lD96jT80mH/1o92QrJmciHol
         m2RUk0eGuRIWVS/Y1AJEDPKnaOP9c9ZHZ44QlwSNPI91HFg2rH9w9g+vhEVN2gdtiH/3
         IzxQ==
X-Gm-Message-State: ALoCoQnGbbR79HTMBZ1Is9K+lv7UQgfS2Fx5pxkMzsXZcFddL/PFOZPildG//L/rV17wZaLMBrRr
X-Received: by 10.43.142.196 with SMTP id jj4mr28057325icc.11.1388540575387;
        Tue, 31 Dec 2013 17:42:55 -0800 (PST)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.49.15.234 with SMTP id a10ls4018439qed.92.gmail; Tue, 31 Dec
 2013 17:42:54 -0800 (PST)
X-Received: by 10.49.35.107 with SMTP id g11mr896942qej.5.1388540574721;
        Tue, 31 Dec 2013 17:42:54 -0800 (PST)
X-Original-Sender: fmatthew5876@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: <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: <http://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>,
 <mailto:googlegroups-manage+399137483710+unsubscribe@googlegroups.com>
Xref: news.gmane.org gmane.comp.lang.c++.isocpp.proposals:8319
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/8319>

------=_Part_8498_11022869.1388540574214
Content-Type: text/plain; charset=ISO-8859-1

Writing swap() is one of those boilerplate kinds of things that is usually 
trivial but annoying (and error prone when you change data members but 
forget to update swap()).

Why not allow this:

class Foo {
  public:
    void swap(Foo& f) = default;
  private:
    int a;
    Bar b;
    float c;
    Baz* d;
};

Which would be the equivalent of this:

void Foo::swap(Foo& f) {
  using std::swap;
  swap(a, f.a);
  swap(b, f.b);
  swap(c, f.c);
  swap(d, f.d);
}

Any reason this wouldn't make it as a proposal?

-- 

--- 
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_8498_11022869.1388540574214
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Writing swap() is one of those boilerplate kinds of things=
 that is usually trivial but annoying (and error prone when you change data=
 members but forget to update swap()).<div><br></div><div>Why not allow thi=
s:</div><div><br></div><div>class Foo {</div><div>&nbsp; public:</div><div>=
&nbsp; &nbsp; void swap(Foo&amp; f) =3D default;</div><div>&nbsp; private:<=
/div><div>&nbsp; &nbsp; int a;</div><div>&nbsp; &nbsp; Bar b;</div><div>&nb=
sp; &nbsp; float c;</div><div>&nbsp; &nbsp; Baz* d;</div><div>};</div><div>=
<br></div><div>Which would be the equivalent of this:</div><div><br></div><=
div>void Foo::swap(Foo&amp; f) {<br>&nbsp; using std::swap;</div><div>&nbsp=
; swap(a, f.a);</div><div>&nbsp; swap(b, f.b);</div><div>&nbsp; swap(c, f.c=
);</div><div>&nbsp; swap(d, f.d);</div><div>}</div><div><br></div><div>Any =
reason this wouldn't make it as a proposal?</div></div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<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_8498_11022869.1388540574214--

.
