220 24864 <f3cf4449-075f-48b0-a4b9-f89519765374@isocpp.org> article
Path: news.gmane.org!not-for-mail
From: daniele.bordes@gmail.com
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: Partial class: a separation of a class interface
 from its implementation with no memory costs
Date: Tue, 1 Mar 2016 02:18:51 -0800 (PST)
Lines: 121
Approved: news@gmane.org
Message-ID: <f3cf4449-075f-48b0-a4b9-f89519765374@isocpp.org>
References: <374600f5-0397-4243-91bc-d01afd145e6c@isocpp.org>
 <CAA7YVg3MdwT2yEMuDmrkQPyOuUaPC6LeY+8zvvWJfYvkAejxbA@mail.gmail.com>
 <a01958c0-8cfe-457a-a34a-e9a280b8600a@isocpp.org>
 <CAA7YVg3vRFHA0sPtoJgXEOSMXxfSOBD6Ac-ZLT2Xb5vUUspHVQ@mail.gmail.com>
 <59566830-e0fd-4730-9416-bc427c249c48@isocpp.org>
 <CAA7YVg3AOmiDXtY58AosYG=Qhq9K8J0q+jjdgLEi1P0Bph6r+Q@mail.gmail.com>
 <71766f85-7330-4387-8485-642e3f3ad003@isocpp.org>
 <CAA7YVg0wQ5Fc0MLP0no6tPip+pexrQvtsb0+US_tRfFJ+9DQDg@mail.gmail.com>
 <7b8d4b4b-2d2f-4dcf-87a6-daac5b94499d@isocpp.org>
 <CAA7YVg33-bsQU6rW=W+v3hEemF-0hYny6Pv7jfwFMHjHSPDqow@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_4256_1558937357.1456827531643"
X-Trace: ger.gmane.org 1456827535 14669 80.91.229.3 (1 Mar 2016 10:18:55 GMT)
X-Complaints-To: usenet@ger.gmane.org
NNTP-Posting-Date: Tue, 1 Mar 2016 10:18:55 +0000 (UTC)
To: ISO C++ Standard - Future Proposals <std-proposals@isocpp.org>
Original-X-From: std-proposals+bncBDEOD2UIVYHBBDGZ2W3AKGQEO2UN5FI@isocpp.org Tue Mar 01 11:18:55 2016
Return-path: <std-proposals+bncBDEOD2UIVYHBBDGZ2W3AKGQEO2UN5FI@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-io0-f200.google.com ([209.85.223.200])
	by plane.gmane.org with esmtp (Exim 4.69)
	(envelope-from <std-proposals+bncBDEOD2UIVYHBBDGZ2W3AKGQEO2UN5FI@isocpp.org>)
	id 1aahOI-00070O-LC
	for gclcip-std-proposals@m.gmane.org; Tue, 01 Mar 2016 11:18:54 +0100
Original-Received: by mail-io0-f200.google.com with SMTP id 70sf315600812iok.1
        for <gclcip-std-proposals@m.gmane.org>; Tue, 01 Mar 2016 02:18:54 -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
         :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=x/rC/POzMt1tMXkC/JV0G0v5Q4UpCNp9/v428migxaM=;
        b=0En0TWqtvhO1r2om8ul7djfsbX64jAqSPROikKZXg4a37rV6UPrd4dAj7Zhchsz9DH
         9DKhTFSJhY6dMmX7UKtNX1vrtZqNCFuLYxfye33zzJ1nUrl5Z24VRu6JPkxnCqkXOEiP
         P+BPvigaB+fkt50N0ZhIjlgRXzU06zgj3AyBo5vlwjBiMA2oPhzLbAYFs1SNhso9qLNa
         IM0JvjptGdmTRYBfleRyskP0vYkMamWHfr/DRQZt/Nid4BZVt1WeSaQBzpslVQJKqUKp
         TQ7ZsmNzuimY8StmZBuA0ETFyA0x8qDBtHIcvZmOZ9DxRwRrKrGPIgTrEsqMliaC7rcm
         tuzQ==
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
         :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=x/rC/POzMt1tMXkC/JV0G0v5Q4UpCNp9/v428migxaM=;
        b=KvO0mvH3hvJxMf+LNCJYtCUX1W7ojy7CgBeA9st5IxHc3OwnRDxEAPh27YODTksxuy
         Dcj94CZIpF6k08HhJcK+IIUxJ47AZh4huXfRuFFbZhlmM8yY4oN4/8HsMAO1OQw06il1
         dXxWAi5Ezj3YCSel533sFquQI8FFHMqYn70J4S9hVHNZk5eg4JD276RN/9zJ8UamHBre
         hyOCzSsP8YSwLa9s61y/VSHtDQOKTBBDrJMsQxE/7asqtAB4Hf++A0k1AzsFB5J6dFwP
         WgE4L9HELh3dMkDyvdi6lfdX2gI4RA32Xn52vG11r4qXDJ8GHXiPfKe30afeHeJUFo2H
         GwpQ==
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: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=x/rC/POzMt1tMXkC/JV0G0v5Q4UpCNp9/v428migxaM=;
        b=ifURjk0Av1yqPYEPDxqsaljowF1bTnNXc06xAcOeXRiL4lQC9Y6Soh/6m76ObtZUw/
         LvOVMaJl6kCVJu41lekkRmB2S86Tl1Z9RA9hcLOJOfvMKuWY95UzteRAnPmao7Tkbo+s
         +HUVrDXjI0/RDDUxSK9GzlXg9v1cd9FnPMX7ur2BRi/d0A2xSlmcRBGNkk/QP3qZGitQ
         Dv+9JHYJLOj2LcTsF+a+Iug2ko9zgHT5kUo3kuwf42wTfQs1xGSnALcYmMK9jqB9Rowu
         vLQDZ+lJgTdtD459BhKzDB/JCAnoO7i5v7MgtC0rrhCCy6Eavr03hwpRcVyNuiKHozOc
         mxnA==
X-Gm-Message-State: AG10YOQD9ZXaxuhy9RWwwy3JEKrurtZD9mqmkrnj5iT3E7+jnMgAwQ7XZR4RXhpDg0ihfQ==
X-Received: by 10.107.138.211 with SMTP id c80mr21793338ioj.20.1456827533705;
        Tue, 01 Mar 2016 02:18:53 -0800 (PST)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.107.26.196 with SMTP id a187ls1904277ioa.79.gmail; Tue, 01 Mar
 2016 02:18:52 -0800 (PST)
X-Received: by 10.50.66.236 with SMTP id i12mr43807igt.7.1456827532789;
        Tue, 01 Mar 2016 02:18:52 -0800 (PST)
In-Reply-To: <CAA7YVg33-bsQU6rW=W+v3hEemF-0hYny6Pv7jfwFMHjHSPDqow@mail.gmail.com>
X-Original-Sender: Daniele.Bordes@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:24864
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/24864>

------=_Part_4256_1558937357.1456827531643
Content-Type: multipart/alternative; 
	boundary="----=_Part_4257_1472370525.1456827531643"

------=_Part_4257_1472370525.1456827531643
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Please do not comment here anymore.
The proposal has been refined at this link:

https://groups.google.com/a/isocpp.org/forum/#!topic/std-proposals/VThp-UMc=
k7k


Il giorno marted=C3=AC 1 marzo 2016 10:34:08 UTC+1, Viacheslav Usov ha scri=
tto:
>
> On Mon, Feb 29, 2016 at 8:30 PM, <daniele...@gmail.com <javascript:>>=20
> wrote:
>
>> "The only thing not achieved by the above is the method call syntax."
>>
>> No. In the above C-like method all data members of the struct (declared=
=20
>> somewhere alse) are public.
>>
>
> "Declared somewhere else" means "not declared for interface users", which=
=20
> makes its entire content private. A forward-only plain C structure=20
> declaration has a lot more privacy than a C++ class with private parts; y=
ou=20
> know this, because this is what you want to achieve with your proposal.
>
> > Every other methods have access to the data members of the struct. My=
=20
> proposal keeps encapsulation, not only the call syntax.
>
> As stated above, a forward-only structure declaration is a lot more=20
> encapsulation than a full C++ class definition with private parts. It is=
=20
> still more encapsulation than your proposal. You were given a link to a=
=20
> document by Stroustrup, whose opinion seems so important for you, which=
=20
> stated quite plainly that *not placing* functions in a class achieves *be=
tter=20
> encapsulation*.
>
> Cheers,
> V.
>

--=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/f3cf4449-075f-48b0-a4b9-f89519765374%40isocpp.or=
g.

------=_Part_4257_1472370525.1456827531643
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Please do not comment here anymore.</div><div>The pro=
posal has been refined at this link:</div><div><br></div><div><a href=3D"ht=
tps://groups.google.com/a/isocpp.org/forum/#%21topic/std-proposals/VThp-UMc=
k7k" target=3D"_blank" rel=3D"nofollow">https://groups.google.com/a/<wbr>is=
ocpp.org/forum/#!topic/std-<wbr>proposals/VThp-UMck7k</a></div><br><br>Il g=
iorno marted=C3=AC 1 marzo 2016 10:34:08 UTC+1, Viacheslav Usov ha scritto:=
<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;bor=
der-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr"><div><div cla=
ss=3D"gmail_quote">On Mon, Feb 29, 2016 at 8:30 PM,  <span dir=3D"ltr">&lt;=
<a href=3D"javascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"jfUeL6cT=
BAAJ" rel=3D"nofollow" onmousedown=3D"this.href=3D&#39;javascript:&#39;;ret=
urn true;" onclick=3D"this.href=3D&#39;javascript:&#39;;return true;">danie=
le...@gmail.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" =
style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:r=
gb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir=3D"ltr">=
&quot;The only thing not achieved by the above is the method call syntax.&q=
uot;<div><br></div><div>No. In the above C-like method all data members of =
the struct (declared somewhere alse) are public.</div></div></blockquote><d=
iv><br></div><div>&quot;Declared somewhere else&quot; means &quot;not decla=
red for interface users&quot;, which makes its entire content private. A fo=
rward-only=C2=A0plain C structure declaration has a lot more privacy than a=
 C++ class with private parts; you know this, because this is what you want=
 to achieve with your proposal.</div><div><br></div><div>&gt; Every other m=
ethods have access to the data members of the struct. My proposal keeps enc=
apsulation, not only the call syntax.</div><div><br></div><div>As stated ab=
ove, a forward-only structure declaration is a lot more encapsulation than =
a full C++ class definition with private parts. It is still more encapsulat=
ion than your proposal. You were given a link to a document by Stroustrup, =
whose opinion seems so important for you, which stated quite plainly that <=
i>not placing</i>=C2=A0functions in a class achieves <i>better encapsulatio=
n</i>.<br></div><div><br></div><div>Cheers,</div><div>V.</div></div></div><=
/div>
</blockquote></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/f3cf4449-075f-48b0-a4b9-f89519765374%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/f3cf4449-075f-48b0-a4b9-f89519765374=
%40isocpp.org</a>.<br />

------=_Part_4257_1472370525.1456827531643--
------=_Part_4256_1558937357.1456827531643--

.
