Topic: Allowing one more case of unions to be standard layout


Author: Michael Reilly <omnipotententity@gmail.com>
Date: Thu, 14 May 2015 06:36:50 -0700 (PDT)
Raw View
------=_Part_9040_1796841640.1431610610826
Content-Type: multipart/alternative;
 boundary="----=_Part_9041_1602399366.1431610610826"

------=_Part_9041_1602399366.1431610610826
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

From =C2=A79.0

7. A class S is a standard-layout class if it:
(7.3) has the same access control (Clause 11) for all non-static data=20
members,


8 A standard-layout struct is a standard-layout class defined with the=20
class-key struct or the class-key class. A standard-layout union is a=20
standard-layout class defined with the class-key union.

As far as I can tell, =C2=A79.0.7.3 exists because of =C2=A79.2.13

13 Nonstatic data members of a (non-union) class with the same access=20
control (Clause 11) are allocated so that later members have higher=20
addresses within a class object. The order of allocation of non-static data=
=20
members with different access control is unspecified (Clause 11).=20
Implementation alignment requirements might cause two adjacent members not=
=20
to be allocated immediately after each other; so might requirements for=20
space for managing virtual functions (10.3) and virtual base classes (10.1)=
..


However, because a union has all of its non-static data members at the same=
=20
address (per =C2=A79.5.1), this is seemingly not a concern. Having discusse=
d it=20
on the std-discussion forum, no one else could come up with a rationale to=
=20
this consequence other than oversight.

Therefore, I propose the following modification to the wording of the=20
standard:

=C2=A79.0.7.3 *either *has the same access control (Clause 11) for all=20
non-static data members *or is a union type class,*


I'm not extremely familiar with the clang compiler, but this patch seems to=
=20
implement the change and pass all tests:


Index: lib/AST/DeclCXX.cpp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- lib/AST/DeclCXX.cpp (revision 237361)
+++ lib/AST/DeclCXX.cpp (working copy)
@@ -656,7 +656,8 @@
     case AS_public:     data().HasPublicFields =3D true;    break;
     case AS_none:       llvm_unreachable("Invalid access specifier");
     };
-    if ((data().HasPrivateFields + data().HasProtectedFields +
+    if (!isUnion() &&
+        (data().HasPrivateFields + data().HasProtectedFields +
          data().HasPublicFields) > 1)
       data().IsStandardLayout =3D false;

With luck other compiler implementations should be similarly=20
straight-forward, as data member addressing for unions is already a special=
=20
case and almost certainly already acts in the way that this proposed change=
=20
specifies they should act.

Thank you for your time and consideration,
Michael Reilly

--=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_9041_1602399366.1431610610826
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">From =C2=A79.0<br><br><blockquote>7. A class S is a standa=
rd-layout class if it:<br>(7.3) has the same access control (Clause 11) for=
 all non-static data members,<br></blockquote><br>8
 A standard-layout struct is a standard-layout class defined with the=20
class-key struct or the class-key class. A standard-layout union is a=20
standard-layout class defined with the class-key union.<br><br>As far as I =
can tell, =C2=A79.0.7.3 exists because of =C2=A79.2.13<br><br><blockquote>1=
3
 Nonstatic data members of a (non-union) class with the same access=20
control (Clause 11) are allocated so that later members have higher=20
addresses within a class object. The order of allocation of non-static=20
data members with different access control is unspecified (Clause 11).=20
Implementation alignment requirements might cause two adjacent members=20
not to be allocated immediately after each other; so might requirements=20
for space for managing virtual functions (10.3) and virtual base classes
 (10.1).<br></blockquote><br>However, because a union has all of its non-st=
atic data members at the same address (per =C2=A79.5.1), this is seemingly =
not a concern. Having discussed it on the std-discussion forum, no one else=
 could come up with a rationale to this consequence other than oversight.<b=
r><br>Therefore, I propose the following modification to the wording of the=
 standard:<br><br><blockquote>=C2=A79.0.7.3 <b>either </b>has the same acce=
ss control (Clause 11) for all non-static data members <b>or is a union typ=
e class,</b><br></blockquote><br>I'm not extremely familiar with the clang =
compiler, but this patch seems to implement the change and pass all tests:<=
br><br><div class=3D"prettyprint" style=3D"background-color: rgb(250, 250, =
250); border-color: rgb(187, 187, 187); border-style: solid; border-width: =
1px; word-wrap: break-word;"><code class=3D"prettyprint"><div class=3D"subp=
rettyprint"><span style=3D"color: #000;" class=3D"styled-by-prettify"><br><=
/span><span style=3D"color: #606;" class=3D"styled-by-prettify">Index</span=
><span style=3D"color: #660;" class=3D"styled-by-prettify">:</span><span st=
yle=3D"color: #000;" class=3D"styled-by-prettify"> lib</span><span style=3D=
"color: #660;" class=3D"styled-by-prettify">/</span><span style=3D"color: #=
000;" class=3D"styled-by-prettify">AST</span><span style=3D"color: #660;" c=
lass=3D"styled-by-prettify">/</span><span style=3D"color: #606;" class=3D"s=
tyled-by-prettify">DeclCXX</span><span style=3D"color: #660;" class=3D"styl=
ed-by-prettify">.</span><span style=3D"color: #000;" class=3D"styled-by-pre=
ttify">cpp<br></span><span style=3D"color: #660;" class=3D"styled-by-pretti=
fy">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"><br></span><span style=3D"co=
lor: #660;" class=3D"styled-by-prettify">---</span><span style=3D"color: #0=
00;" class=3D"styled-by-prettify"> lib</span><span style=3D"color: #660;" c=
lass=3D"styled-by-prettify">/</span><span style=3D"color: #000;" class=3D"s=
tyled-by-prettify">AST</span><span style=3D"color: #660;" class=3D"styled-b=
y-prettify">/</span><span style=3D"color: #606;" class=3D"styled-by-prettif=
y">DeclCXX</span><span style=3D"color: #660;" class=3D"styled-by-prettify">=
..</span><span style=3D"color: #000;" class=3D"styled-by-prettify">cpp </spa=
n><span style=3D"color: #660;" class=3D"styled-by-prettify">(</span><span s=
tyle=3D"color: #000;" class=3D"styled-by-prettify">revision </span><span st=
yle=3D"color: #066;" class=3D"styled-by-prettify">237361</span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">)</span><span style=3D"color=
: #000;" class=3D"styled-by-prettify"><br></span><span style=3D"color: #660=
;" class=3D"styled-by-prettify">+++</span><span style=3D"color: #000;" clas=
s=3D"styled-by-prettify"> lib</span><span style=3D"color: #660;" class=3D"s=
tyled-by-prettify">/</span><span style=3D"color: #000;" class=3D"styled-by-=
prettify">AST</span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">/</span><span style=3D"color: #606;" class=3D"styled-by-prettify">DeclCX=
X</span><span style=3D"color: #660;" class=3D"styled-by-prettify">.</span><=
span style=3D"color: #000;" class=3D"styled-by-prettify">cpp </span><span s=
tyle=3D"color: #660;" class=3D"styled-by-prettify">(</span><span style=3D"c=
olor: #000;" class=3D"styled-by-prettify">working copy</span><span style=3D=
"color: #660;" class=3D"styled-by-prettify">)</span><span style=3D"color: #=
000;" class=3D"styled-by-prettify"><br></span><span style=3D"color: #660;" =
class=3D"styled-by-prettify">@@</span><span style=3D"color: #000;" class=3D=
"styled-by-prettify"> </span><span style=3D"color: #660;" class=3D"styled-b=
y-prettify">-</span><span style=3D"color: #066;" class=3D"styled-by-prettif=
y">656</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,</s=
pan><span style=3D"color: #066;" class=3D"styled-by-prettify">7</span><span=
 style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D=
"color: #660;" class=3D"styled-by-prettify">+</span><span style=3D"color: #=
066;" class=3D"styled-by-prettify">656</span><span style=3D"color: #660;" c=
lass=3D"styled-by-prettify">,</span><span style=3D"color: #066;" class=3D"s=
tyled-by-prettify">8</span><span style=3D"color: #000;" class=3D"styled-by-=
prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify"=
>@@</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>&nb=
sp; &nbsp; &nbsp;</span><span style=3D"color: #008;" class=3D"styled-by-pre=
ttify">case</span><span style=3D"color: #000;" class=3D"styled-by-prettify"=
> AS_public</span><span style=3D"color: #660;" class=3D"styled-by-prettify"=
>:</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> &nbsp; =
&nbsp; data</span><span style=3D"color: #660;" class=3D"styled-by-prettify"=
>().</span><span style=3D"color: #606;" class=3D"styled-by-prettify">HasPub=
licFields</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> =
</span><span style=3D"color: #660;" class=3D"styled-by-prettify">=3D</span>=
<span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span sty=
le=3D"color: #008;" class=3D"styled-by-prettify">true</span><span style=3D"=
color: #660;" class=3D"styled-by-prettify">;</span><span style=3D"color: #0=
00;" class=3D"styled-by-prettify"> &nbsp; &nbsp;</span><span style=3D"color=
: #008;" class=3D"styled-by-prettify">break</span><span style=3D"color: #66=
0;" class=3D"styled-by-prettify">;</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"><br>&nbsp; &nbsp; &nbsp;</span><span style=3D"color=
: #008;" class=3D"styled-by-prettify">case</span><span style=3D"color: #000=
;" class=3D"styled-by-prettify"> AS_none</span><span style=3D"color: #660;"=
 class=3D"styled-by-prettify">:</span><span style=3D"color: #000;" class=3D=
"styled-by-prettify"> &nbsp; &nbsp; &nbsp; llvm_unreachable</span><span sty=
le=3D"color: #660;" class=3D"styled-by-prettify">(</span><span style=3D"col=
or: #080;" class=3D"styled-by-prettify">"Invalid access specifier"</span><s=
pan style=3D"color: #660;" class=3D"styled-by-prettify">);</span><span styl=
e=3D"color: #000;" class=3D"styled-by-prettify"><br>&nbsp; &nbsp; &nbsp;</s=
pan><span style=3D"color: #660;" class=3D"styled-by-prettify">};</span><spa=
n style=3D"color: #000;" class=3D"styled-by-prettify"><br></span><span styl=
e=3D"color: #660;" class=3D"styled-by-prettify">-</span><span style=3D"colo=
r: #000;" class=3D"styled-by-prettify"> &nbsp; &nbsp;</span><span style=3D"=
color: #008;" class=3D"styled-by-prettify">if</span><span style=3D"color: #=
000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #660;" cla=
ss=3D"styled-by-prettify">((</span><span style=3D"color: #000;" class=3D"st=
yled-by-prettify">data</span><span style=3D"color: #660;" class=3D"styled-b=
y-prettify">().</span><span style=3D"color: #606;" class=3D"styled-by-prett=
ify">HasPrivateFields</span><span style=3D"color: #000;" class=3D"styled-by=
-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify=
">+</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> data</=
span><span style=3D"color: #660;" class=3D"styled-by-prettify">().</span><s=
pan style=3D"color: #606;" class=3D"styled-by-prettify">HasProtectedFields<=
/span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><sp=
an style=3D"color: #660;" class=3D"styled-by-prettify">+</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"><br></span><span style=3D"co=
lor: #660;" class=3D"styled-by-prettify">+</span><span style=3D"color: #000=
;" class=3D"styled-by-prettify"> &nbsp; &nbsp;</span><span style=3D"color: =
#008;" class=3D"styled-by-prettify">if</span><span style=3D"color: #000;" c=
lass=3D"styled-by-prettify"> </span><span style=3D"color: #660;" class=3D"s=
tyled-by-prettify">(!</span><span style=3D"color: #000;" class=3D"styled-by=
-prettify">isUnion</span><span style=3D"color: #660;" class=3D"styled-by-pr=
ettify">()</span><span style=3D"color: #000;" class=3D"styled-by-prettify">=
 </span><span style=3D"color: #660;" class=3D"styled-by-prettify">&amp;&amp=
;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br></spa=
n><span style=3D"color: #660;" class=3D"styled-by-prettify">+</span><span s=
tyle=3D"color: #000;" class=3D"styled-by-prettify"> &nbsp; &nbsp; &nbsp; &n=
bsp;</span><span style=3D"color: #660;" class=3D"styled-by-prettify">(</spa=
n><span style=3D"color: #000;" class=3D"styled-by-prettify">data</span><spa=
n style=3D"color: #660;" class=3D"styled-by-prettify">().</span><span style=
=3D"color: #606;" class=3D"styled-by-prettify">HasPrivateFields</span><span=
 style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D=
"color: #660;" class=3D"styled-by-prettify">+</span><span style=3D"color: #=
000;" class=3D"styled-by-prettify"> data</span><span style=3D"color: #660;"=
 class=3D"styled-by-prettify">().</span><span style=3D"color: #606;" class=
=3D"styled-by-prettify">HasProtectedFields</span><span style=3D"color: #000=
;" class=3D"styled-by-prettify"> </span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">+</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; data</span><span styl=
e=3D"color: #660;" class=3D"styled-by-prettify">().</span><span style=3D"co=
lor: #606;" class=3D"styled-by-prettify">HasPublicFields</span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">)</span><span style=3D"color=
: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #660;" =
class=3D"styled-by-prettify">&gt;</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> </span><span style=3D"color: #066;" class=3D"style=
d-by-prettify">1</span><span style=3D"color: #660;" class=3D"styled-by-pret=
tify">)</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br=
>&nbsp; &nbsp; &nbsp; &nbsp;data</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">().</span><span style=3D"color: #606;" class=3D"sty=
led-by-prettify">IsStandardLayout</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> </span><span style=3D"color: #660;" class=3D"style=
d-by-prettify">=3D</span><span style=3D"color: #000;" class=3D"styled-by-pr=
ettify"> </span><span style=3D"color: #008;" class=3D"styled-by-prettify">f=
alse</span><span style=3D"color: #660;" class=3D"styled-by-prettify">;</spa=
n><span style=3D"color: #000;" class=3D"styled-by-prettify"><br></span></di=
v></code></div><br>With luck other compiler implementations should be simil=
arly straight-forward, as data member addressing for unions is already a sp=
ecial case and almost certainly already acts in the way that this proposed =
change specifies they should act.<br><br>Thank you for your time and consid=
eration,<br>Michael Reilly<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"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_9041_1602399366.1431610610826--
------=_Part_9040_1796841640.1431610610826--

.


Author: Myriachan <myriachan@gmail.com>
Date: Mon, 18 May 2015 12:58:20 -0700 (PDT)
Raw View
------=_Part_1726_1063561431.1431979100191
Content-Type: multipart/alternative;
 boundary="----=_Part_1727_1770576836.1431979100191"

------=_Part_1727_1770576836.1431979100191
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Thursday, May 14, 2015 at 6:36:50 AM UTC-7, Michael Reilly wrote:
>
> However, because a union has all of its non-static data members at the=20
> same address (per =C2=A79.5.1), this is seemingly not a concern. Having=
=20
> discussed it on the std-discussion forum, no one else could come up with =
a=20
> rationale to this consequence other than oversight.
>
> Therefore, I propose the following modification to the wording of the=20
> standard:
>
>
Do you think that you could make a paper and submit it by Friday's=20
deadline?  Nobody's said anything on this list, so I guess nobody strongly=
=20
objects to it.  *shrug*

Melissa=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_1727_1770576836.1431979100191
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On Thursday, May 14, 2015 at 6:36:50 AM UTC-7, Michael Rei=
lly 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">How=
ever, because a union has all of its non-static data members at the same ad=
dress (per =C2=A79.5.1), this is seemingly not a concern. Having discussed =
it on the std-discussion forum, no one else could come up with a rationale =
to this consequence other than oversight.<br><br>Therefore, I propose the f=
ollowing modification to the wording of the standard:<br><br></div></blockq=
uote><div><br>Do you think that you could make a paper and submit it by Fri=
day's deadline?&nbsp; Nobody's said anything on this list, so I guess nobod=
y strongly objects to it.&nbsp; *shrug*<br><br>Melissa <br></div></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_1727_1770576836.1431979100191--
------=_Part_1726_1063561431.1431979100191--

.


Author: Michael Reilly <omnipotententity@gmail.com>
Date: Wed, 20 May 2015 08:25:53 -0700 (PDT)
Raw View
------=_Part_4318_1685879389.1432135553186
Content-Type: multipart/alternative;
 boundary="----=_Part_4319_675652405.1432135553186"

------=_Part_4319_675652405.1432135553186
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Monday, May 18, 2015 at 3:58:20 PM UTC-4, Myriachan wrote:
>
> On Thursday, May 14, 2015 at 6:36:50 AM UTC-7, Michael Reilly wrote:
>>
>> However, because a union has all of its non-static data members at the=
=20
>> same address (per =C2=A79.5.1), this is seemingly not a concern. Having=
=20
>> discussed it on the std-discussion forum, no one else could come up with=
 a=20
>> rationale to this consequence other than oversight.
>>
>> Therefore, I propose the following modification to the wording of the=20
>> standard:
>>
>>
> Do you think that you could make a paper and submit it by Friday's=20
> deadline?  Nobody's said anything on this list, so I guess nobody strongl=
y=20
> objects to it.  *shrug*
>
> Melissa=20
>

I can absolutely write up a paper before Friday.  As this is my first=20
proposal, is there a specific template or format I should use?  Also to=20
whom or where should I submit?

Michael=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_4319_675652405.1432135553186
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On Monday, May 18, 2015 at 3:58:20 PM UTC-4, Myriachan wro=
te:<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">On Thursda=
y, May 14, 2015 at 6:36:50 AM UTC-7, Michael Reilly wrote:<blockquote class=
=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc s=
olid;padding-left:1ex"><div dir=3D"ltr">However, because a union has all of=
 its non-static data members at the same address (per =C2=A79.5.1), this is=
 seemingly not a concern. Having discussed it on the std-discussion forum, =
no one else could come up with a rationale to this consequence other than o=
versight.<br><br>Therefore, I propose the following modification to the wor=
ding of the standard:<br><br></div></blockquote><div><br>Do you think that =
you could make a paper and submit it by Friday's deadline?&nbsp; Nobody's s=
aid anything on this list, so I guess nobody strongly objects to it.&nbsp; =
*shrug*<br><br>Melissa <br></div></div></blockquote><div><br>I can absolute=
ly write up a paper before Friday.&nbsp; As this is my first proposal, is t=
here a specific template or format I should use?&nbsp; Also to whom or wher=
e should I submit?<br><br>Michael <br></div></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_4319_675652405.1432135553186--
------=_Part_4318_1685879389.1432135553186--

.


Author: Michael Reilly <omnipotententity@gmail.com>
Date: Wed, 20 May 2015 08:38:32 -0700 (PDT)
Raw View
------=_Part_590_659084443.1432136312893
Content-Type: multipart/alternative;
 boundary="----=_Part_591_511582275.1432136312893"

------=_Part_591_511582275.1432136312893
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable



On Wednesday, May 20, 2015 at 11:25:53 AM UTC-4, Michael Reilly wrote:
>
> On Monday, May 18, 2015 at 3:58:20 PM UTC-4, Myriachan wrote:
>>
>> On Thursday, May 14, 2015 at 6:36:50 AM UTC-7, Michael Reilly wrote:
>>>
>>> However, because a union has all of its non-static data members at the=
=20
>>> same address (per =C2=A79.5.1), this is seemingly not a concern. Having=
=20
>>> discussed it on the std-discussion forum, no one else could come up wit=
h a=20
>>> rationale to this consequence other than oversight.
>>>
>>> Therefore, I propose the following modification to the wording of the=
=20
>>> standard:
>>>
>>>
>> Do you think that you could make a paper and submit it by Friday's=20
>> deadline?  Nobody's said anything on this list, so I guess nobody strong=
ly=20
>> objects to it.  *shrug*
>>
>> Melissa=20
>>
>
> I can absolutely write up a paper before Friday.  As this is my first=20
> proposal, is there a specific template or format I should use?  Also to=
=20
> whom or where should I submit?
>
> Michael=20
>

Please forgive me, I have found https://isocpp.org/std/submit-a-proposal  I=
=20
shall get started immediately.=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_591_511582275.1432136312893
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><br>On Wednesday, May 20, 2015 at 11:25:53 AM UTC-4, M=
ichael Reilly wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;ma=
rgin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=
=3D"ltr">On Monday, May 18, 2015 at 3:58:20 PM UTC-4, Myriachan wrote:<bloc=
kquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-lef=
t:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">On Thursday, May 14, 20=
15 at 6:36:50 AM UTC-7, Michael Reilly wrote:<blockquote class=3D"gmail_quo=
te" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-=
left:1ex"><div dir=3D"ltr">However, because a union has all of its non-stat=
ic data members at the same address (per =C2=A79.5.1), this is seemingly no=
t a concern. Having discussed it on the std-discussion forum, no one else c=
ould come up with a rationale to this consequence other than oversight.<br>=
<br>Therefore, I propose the following modification to the wording of the s=
tandard:<br><br></div></blockquote><div><br>Do you think that you could mak=
e a paper and submit it by Friday's deadline?&nbsp; Nobody's said anything =
on this list, so I guess nobody strongly objects to it.&nbsp; *shrug*<br><b=
r>Melissa <br></div></div></blockquote><div><br>I can absolutely write up a=
 paper before Friday.&nbsp; As this is my first proposal, is there a specif=
ic template or format I should use?&nbsp; Also to whom or where should I su=
bmit?<br><br>Michael <br></div></div></blockquote><div><br>Please forgive m=
e, I have found https://isocpp.org/std/submit-a-proposal&nbsp; I shall get =
started immediately. <br></div></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_591_511582275.1432136312893--
------=_Part_590_659084443.1432136312893--

.