220 17715 <32925383-d00e-4e1d-81df-2516c2ccaa6f@isocpp.org> article
Path: news.gmane.org!not-for-mail
From: Edward Catmur <ed@catmur.co.uk>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: =?UTF-8?Q?=5Bstd=2Dproposals=5D_Re=3A_Proposal=3A_Class_static_=E2=80=9Cproper?=
	=?UTF-8?Q?ty=E2=80=9D_constants_in_vtables?=
Date: Tue, 5 May 2015 23:49:07 -0700 (PDT)
Lines: 39
Approved: news@gmane.org
Message-ID: <32925383-d00e-4e1d-81df-2516c2ccaa6f@isocpp.org>
References: <49c358a2-d19a-415f-a4fa-1ff67286a0ad@isocpp.org>
 <8ac58c5d-6542-43ff-b42c-b58cbf16be6d@isocpp.org>
 <e1a82147-6cdc-4bca-b132-667f659be816@isocpp.org>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: plane.gmane.org
Mime-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_5604_154822941.1430894947748"
X-Trace: ger.gmane.org 1430894952 12202 80.91.229.3 (6 May 2015 06:49:12 GMT)
X-Complaints-To: usenet@ger.gmane.org
NNTP-Posting-Date: Wed, 6 May 2015 06:49:12 +0000 (UTC)
To: std-proposals@isocpp.org
Original-X-From: std-proposals+bncBDZLZTXF7UJBBZHSU2VAKGQE4BDXIJY@isocpp.org Wed May 06 08:49:11 2015
Return-path: <std-proposals+bncBDZLZTXF7UJBBZHSU2VAKGQE4BDXIJY@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-pa0-f71.google.com ([209.85.220.71])
	by plane.gmane.org with esmtp (Exim 4.69)
	(envelope-from <std-proposals+bncBDZLZTXF7UJBBZHSU2VAKGQE4BDXIJY@isocpp.org>)
	id 1Ypt8o-0006Z1-Hi
	for gclcip-std-proposals@m.gmane.org; Wed, 06 May 2015 08:49:10 +0200
Original-Received: by pabvw2 with SMTP id vw2sf1359522pab.2
        for <gclcip-std-proposals@m.gmane.org>; Tue, 05 May 2015 23:49:09 -0700 (PDT)
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:list-post:list-help:list-archive
         :list-subscribe:list-unsubscribe;
        bh=4vcvMHGf+vWNRyldrpwJytbVy4SkIRCZqsDNj4ethNg=;
        b=Ykvy7Sxv4456ckb31xsRJxd5oDFoY8PLpLMQgW86e/dxbGE7njcle7/ORUWbHHct/L
         Oh7oYRLPCL2/Ij4BiqgOpbE9bRPseTW8eChRp9p3wFl27LA9i+nk/2McmXGV9NU/241O
         8kdxAdiNekbty5CXfsDneXrlWn8HVmlkLo8Nw0Ej384MWMcQbD1V9QiTpIyEPc59g5ta
         gsRSn3scb0h19zu8vsEULKggXKmC9cc4t3Lqr3l29hNeYQyP0pCNSKEPb3+dJT4oZIV4
         TwnQhKzfQ4llUG3BB3fYYnIza8TnV4hK4cfDG84FAhcjkrE2QzUIS9BExevwDsW0D23a
         jvmw==
X-Gm-Message-State: ALoCoQkqvTvJUb1IIB/A3OswMiRAVhWJ/lYO73Rg3k1UjpM3sgu9B7jsX3G5qCVsXn4e86It/0gi
X-Received: by 10.68.211.230 with SMTP id nf6mr2986654pbc.10.1430894949475;
        Tue, 05 May 2015 23:49:09 -0700 (PDT)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.140.87.69 with SMTP id q63ls5516qgd.90.gmail; Tue, 05 May 2015
 23:49:08 -0700 (PDT)
X-Received: by 10.140.93.226 with SMTP id d89mr338524qge.38.1430894948703;
        Tue, 05 May 2015 23:49:08 -0700 (PDT)
In-Reply-To: <e1a82147-6cdc-4bca-b132-667f659be816@isocpp.org>
X-Original-Sender: ed@catmur.co.uk
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: <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:17715
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/17715>

------=_Part_5604_154822941.1430894947748
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

The term "attribute" is [[already_taken]]. Call these what they are: virtua=
l static data members.=20

I would also suggest collecting some performance measurements to back up yo=
ur argument (eg with a hand-rolled vtable implementation). You should also =
make it clear that you understand that the C++ standard does not mandate vt=
ables as an implementation technique although of course in practice every i=
mplementation uses them.=20

Would this mean that pointers to data members can now involve a vtable look=
up? Could that break ABI?=20

I note you haven't provided definitions for the members as would usually be=
 required for static data members. Is that an omission or intentional?=20

Is it really necessary that virtual static data members be const? Non-const=
 virtual static data members would have to be allocated outside the vtable =
itself, but access to them would still be considerably cheaper than a nulla=
ry virtual method call. Note that also objects with run time initialization=
 would need to be allocated outside the vtable, even if they were const the=
reafter.=20

--=20

---=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.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposa=
ls/.

------=_Part_5604_154822941.1430894947748--

.
