Topic: Anonymous unions in inherited class with parent


Author: Douglas Boffey <douglas.boffey@gmail.com>
Date: Mon, 9 Jun 2014 02:39:02 -0700 (PDT)
Raw View
------=_Part_170_30270006.1402306743026
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable


On Sunday, 8 June 2014 11:18:04 UTC+1, Jonatan Wallmander wrote:=20
>
>  The idea is to allow child classes to form unions with parent class=20
> variables.
>
> Consider this (current state of affairs):=20
>
> =20
>    1. class vsx_tuple3
>    2. {
>    3. public:
>    4.   float v0;
>    5.   float v1;
>    6.   float v2;
>    7. };
>    8.=20
>    9. class vsx_vector : public vsx_tuple3
>    10. {
>    11. public:
>    12.   union
>    13.   {
>    14.     float v0;
>    15.     float x;
>    16.   };
>    17. =20
>    18.   union
>    19.   {
>    20.     float v1;
>    21.     float y;
>    22.   };
>    23.   ...etc...
>    24. };
>    25. =20
>    26. int main(int argc, char* argv[])
>    27. {
>    28.   vsx_vector* nv =3D new vsx_nvector();
>    29.   nv->a =3D 2.5;
>    30.   vsx_printf(" sizeof vector: %d\n ", sizeof(vsx_vector));   //=20
>    Outputs: sizeof nvector: 16
>    31.   vsx_printf(" sizeof tuple3: %d\n ", sizeof(vsx_tuple3)); //=20
>    Outputs: sizeof tuple3: 8
>    32.   vsx_printf(" nv t3 a: %f\n ", ((vsx_tuple3*)nv)->a ); //=20
>    Outputs: 0.0
>    33. }
>   =20
>
>   =20
>  I don=E2=80=99t see a definition for vsx_vector::a

> =20
>   =20
>   =20
> Here's a bug (or maybe not) in the language: The vsx_tuple3 variables are=
=20
> effectively inaccessible.
>
=20
Nope, you just have to access them like nv->vsx_tuple3::v2, etc.

>  Also, I kind of would have expected introducing that overridden new "a"=
=20
> would result in an error.
> Alas, no error.
>
>
> So, maybe it would be possible to improve the language into something lik=
e=20
> this:
>
> =20
>    1. class vsx_tuple3
>    2. {
>    3. public:
>    4.   float v0;
>    5.   float v1;
>    6.   float v2;
>    7. };
>    8. =20
>    9. class vsx_vector : public vsx_tuple3
>    10. {
>    11. public:
>    12.   union : vsx_tuple3::v0
>    13.   {
>    14.     float x;=20
>    15.   };
>    16. =20
>    17.   union : vsx_tuple3::v1
>    18.   {
>    19.     float y;
>    20.   };
>    21.   ...decorative methods that deal with dot/cross product etc...
>    22. };
>    23. =20
>   =20
>
> This could cause problems:
=20
=20
 class Base {                                                      =20
public:                                                      =20
  unsigned char a;                                                      =20
  unsigned char b;                                                      =20
};                                                      =20
                                                      =20
class Derived : public Base {                                              =
=20
       =20
public:                                                      =20
  union : Base::a {                                                      =
=20
    unsigned long long a_shadow;                                          =
=20
           =20
  }                                                      =20
};

=20
Assuming that sizeof(unsigned long long) > sizeof(unsigned char), a_shadow=
=20
would cover the memory for Base::b as well.
=20
=20

>  Here, (in the derived class) x point to the same memory area as=20
> vsx_tuple3::a.
>
> This adds a syntactic bonus - one can rename variables (or rather, add an=
=20
> alias name to them) in child classes - useful to make code more readable=
=20
> when using the child class, and still access the base class.
>
> I thought that either:
=20
 typedef a b;
=20
or
=20
=20
 using b =3D a;
=20
would do that?
=20

>  I.e.
>
>   myObject->v0 =3D 3.14159 * 0.5;
>
> is not as readable as:
>
>   myObject->angleRadians =3D 3.14159 * 0.5;
>
> when they share the same base class...
>
>
> Also yet an alternative way of doing the declaration is:
>
> =20
>    1. class vsx_vector : public vsx_tuple3
>    2. {
>    3. public:
>    4.   union
>    5.   {
>    6. <span class=3D"br0" style=3D"color: rgb(0, 12
>   =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_170_30270006.1402306743026
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><BR>On Sunday, 8 June 2014 11:18:04 UTC+1, Jonatan Wallman=
der wrote:=20
<BLOCKQUOTE style=3D"BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex=
; PADDING-LEFT: 1ex" class=3Dgmail_quote>
<DIV dir=3Dltr>
<DIV>The idea is to allow child classes to form unions with parent class va=
riables.</DIV>
<DIV><BR></DIV>Consider this (current state of affairs):=20
<DIV><BR></DIV>
<DIV>
<OL style=3D"PADDING-BOTTOM: 0px; LINE-HEIGHT: 21px; BACKGROUND-COLOR: rgb(=
248,248,248); MARGIN: 0px; PADDING-LEFT: 48px; PADDING-RIGHT: 0px; FONT-FAM=
ILY: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu =
Sans Mono', 'Bitstream Vera Sans Mono', monospace, serif; COLOR: rgb(172,17=
2,172); FONT-SIZE: 12px; PADDING-TOP: 0px">
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><SPAN style=3D"COLOR: rgb(0,0,255)">=
class</SPAN>&nbsp;vsx_tuple3</DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><SPAN style=3D"COLOR: rgb(0,128,0)">=
{</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><SPAN style=3D"COLOR: rgb(0,0,255)">=
public</SPAN><SPAN style=3D"COLOR: rgb(0,128,128)">:</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp;&nbsp;<SPAN style=3D"COLOR: rg=
b(0,0,255)">float</SPAN>&nbsp;v0<SPAN style=3D"COLOR: rgb(0,128,128)">;</SP=
AN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp;&nbsp;<SPAN style=3D"COLOR: rg=
b(0,0,255)">float</SPAN>&nbsp;v1<SPAN style=3D"COLOR: rgb(0,128,128)">;</SP=
AN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><SPAN style=3D"COLOR: rgb(0,128,128)=
">&nbsp; float v2;</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><SPAN style=3D"COLOR: rgb(0,128,0)">=
}</SPAN><SPAN style=3D"COLOR: rgb(0,128,128)">;</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><BR></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><SPAN style=3D"COLOR: rgb(0,0,255)">=
class</SPAN>&nbsp;vsx_vector&nbsp;<SPAN style=3D"COLOR: rgb(0,128,128)">:</=
SPAN>&nbsp;<SPAN style=3D"COLOR: rgb(0,0,255)">public</SPAN>&nbsp;vsx_<WBR>=
tuple3</DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><SPAN style=3D"COLOR: rgb(0,128,0)">=
{</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><SPAN style=3D"COLOR: rgb(0,0,255)">=
public</SPAN><SPAN style=3D"COLOR: rgb(0,128,128)">:</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp;&nbsp;<SPAN style=3D"COLOR: rg=
b(0,0,255)">union</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp;&nbsp;<SPAN style=3D"COLOR: rg=
b(0,128,0)">{</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp; &nbsp;&nbsp;<SPAN style=3D"CO=
LOR: rgb(0,0,255)">float</SPAN>&nbsp;v0<SPAN style=3D"COLOR: rgb(0,128,128)=
">;</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp; &nbsp;&nbsp;<SPAN style=3D"CO=
LOR: rgb(0,0,255)">float</SPAN>&nbsp;x<SPAN style=3D"COLOR: rgb(0,128,128)"=
>;</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp;&nbsp;<SPAN style=3D"COLOR: rg=
b(0,128,0)">}</SPAN><SPAN style=3D"COLOR: rgb(0,128,128)">;</SPAN></DIV></L=
I>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp;</DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp;&nbsp;<SPAN style=3D"COLOR: rg=
b(0,0,255)">union</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp;&nbsp;<SPAN style=3D"COLOR: rg=
b(0,128,0)">{</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp; &nbsp;&nbsp;<SPAN style=3D"CO=
LOR: rgb(0,0,255)">float</SPAN>&nbsp;v1<SPAN style=3D"COLOR: rgb(0,128,128)=
">;</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp; &nbsp;&nbsp;<SPAN style=3D"CO=
LOR: rgb(0,0,255)">float</SPAN>&nbsp;y<SPAN style=3D"COLOR: rgb(0,128,128)"=
>;</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp;&nbsp;<SPAN style=3D"COLOR: rg=
b(0,128,0)">}</SPAN><SPAN style=3D"COLOR: rgb(0,128,128)">;</SPAN></DIV></L=
I>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><SPAN style=3D"COLOR: rgb(0,128,128)=
">&nbsp; ...etc...</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><SPAN style=3D"COLOR: rgb(0,128,0)">=
}</SPAN><SPAN style=3D"COLOR: rgb(0,128,128)">;</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp;</DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><SPAN style=3D"COLOR: rgb(0,0,255)">=
int</SPAN>&nbsp;main<SPAN style=3D"COLOR: rgb(0,128,0)">(</SPAN><SPAN style=
=3D"COLOR: rgb(0,0,255)">int</SPAN>&nbsp;argc,&nbsp;<SPAN style=3D"COLOR: r=
gb(0,0,255)">char</SPAN><SPAN style=3D"COLOR: rgb(0,0,64)">*</SPAN>&nbsp;ar=
gv<SPAN style=3D"COLOR: rgb(0,128,0)">[</SPAN><SPAN style=3D"COLOR: rgb(0,1=
28,0)"><WBR>]</SPAN><SPAN style=3D"COLOR: rgb(0,128,0)">)</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><SPAN style=3D"COLOR: rgb(0,128,0)">=
{</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp; vsx_vector<SPAN style=3D"COLO=
R: rgb(0,0,64)">*</SPAN>&nbsp;nv&nbsp;<SPAN style=3D"COLOR: rgb(0,0,128)">=
=3D</SPAN>&nbsp;<SPAN style=3D"COLOR: rgb(0,0,221)">new</SPAN>&nbsp;vsx_<WB=
R>nvector<SPAN style=3D"COLOR: rgb(0,128,0)">(</SPAN><SPAN style=3D"COLOR: =
rgb(0,128,0)">)</SPAN><SPAN style=3D"COLOR: rgb(0,128,128)">;</SPAN><BR></D=
IV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp; nv<SPAN style=3D"COLOR: rgb(0=
,0,64)">-</SPAN><SPAN style=3D"COLOR: rgb(0,0,128)">&gt;</SPAN>a&nbsp;<SPAN=
 style=3D"COLOR: rgb(0,0,128)">=3D</SPAN>&nbsp;<SPAN style=3D"COLOR: rgb(12=
8,0,128)">2.5</SPAN><SPAN style=3D"COLOR: rgb(0,128,128)">;</SPAN></DIV></L=
I>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp; vsx_printf<SPAN style=3D"COLO=
R: rgb(0,128,0)">(</SPAN><SPAN style=3D"COLOR: rgb(255,0,0)">" sizeof vecto=
r: %d<SPAN style=3D"COLOR: rgb(0,0,153); FONT-WEIGHT: bold">\n</SPAN>&nbsp;=
"</SPAN>,&nbsp;<SPAN style=3D"COLOR: rgb(0,0,221)">sizeof</SPAN><SPAN style=
=3D"COLOR: rgb(0,128,0)">(</SPAN>vsx_vector<SPAN style=3D"COLOR: rgb(0,128,=
0)">)</SPAN><SPAN style=3D"COLOR: rgb(0,128,0)">)</SPAN><SPAN style=3D"COLO=
R: rgb(0,128,128)">; &nbsp; // Outputs: sizeof nvector: 16</SPAN><BR></DIV>=
</LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp; vsx_printf<SPAN style=3D"COLO=
R: rgb(0,128,0)">(</SPAN><SPAN style=3D"COLOR: rgb(255,0,0)">" sizeof tuple=
3: %d<SPAN style=3D"COLOR: rgb(0,0,153); FONT-WEIGHT: bold">\n</SPAN>&nbsp;=
"</SPAN>,&nbsp;<SPAN style=3D"COLOR: rgb(0,0,221)">sizeof</SPAN><SPAN style=
=3D"COLOR: rgb(0,128,0)">(</SPAN>vsx_tuple3<SPAN style=3D"COLOR: rgb(0,128,=
0)">)</SPAN><SPAN style=3D"COLOR: rgb(0,128,0)">)</SPAN><SPAN style=3D"COLO=
R: rgb(0,128,128)">; // Outputs: sizeof tuple3: 8</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp; vsx_printf<SPAN style=3D"COLO=
R: rgb(0,128,0)">(</SPAN><SPAN style=3D"COLOR: rgb(255,0,0)">" nv t3 a: %f<=
SPAN style=3D"COLOR: rgb(0,0,153); FONT-WEIGHT: bold">\n</SPAN>&nbsp;"</SPA=
N>,&nbsp;<SPAN style=3D"COLOR: rgb(0,128,0)">(</SPAN><SPAN style=3D"COLOR: =
rgb(0,128,0)">(</SPAN>vsx_tuple3<SPAN style=3D"COLOR: rgb(0,0,64)">*</SPAN>=
<SPAN style=3D"COLOR: rgb(0,128,0)">)</SPAN>nv<SPAN style=3D"COLOR: rgb(0,1=
28,0)">)</SPAN><SPAN style=3D"COLOR: rgb(0,0,64)">-</SPAN><SPAN style=3D"CO=
LOR: rgb(0,0,128)">&gt;</SPAN>a&nbsp;<SPAN style=3D"COLOR: rgb(0,128,0)">)<=
/SPAN><SPAN style=3D"COLOR: rgb(0,128,128)"><WBR>; // Outputs: 0.0</SPAN></=
DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><SPAN style=3D"COLOR: rgb(0,128,0)">=
}</SPAN><BR></DIV></LI></OL></DIV>
<OL></OL></DIV>
<DIV></DIV></BLOCKQUOTE>
<DIV>I don=E2=80=99t see a definition for vsx_vector::a</DIV>
<BLOCKQUOTE style=3D"BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex=
; PADDING-LEFT: 1ex" class=3Dgmail_quote>
<DIV dir=3Dltr>
<DIV>
<OL style=3D"PADDING-BOTTOM: 0px; LINE-HEIGHT: 21px; BACKGROUND-COLOR: rgb(=
248,248,248); MARGIN: 0px; PADDING-LEFT: 48px; PADDING-RIGHT: 0px; FONT-FAM=
ILY: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu =
Sans Mono', 'Bitstream Vera Sans Mono', monospace, serif; COLOR: rgb(172,17=
2,172); FONT-SIZE: 12px; PADDING-TOP: 0px"><FONT color=3D#008000 face=3D"Co=
nsolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, B=
itstream Vera Sans Mono, monospace, serif"><SPAN style=3D"LINE-HEIGHT: 21px=
; FONT-SIZE: 12px"><BR></SPAN></FONT></OL></DIV>
<DIV><FONT color=3D#008000 face=3D"Consolas, Menlo, Monaco, Lucida Console,=
 Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, monospace, se=
rif"><SPAN style=3D"LINE-HEIGHT: 21px; FONT-SIZE: 12px">Here's a bug (or ma=
ybe not) in the language: The vsx_tuple3 variables are effectively inaccess=
ible.</SPAN></FONT></DIV></DIV></BLOCKQUOTE>
<DIV>&nbsp;</DIV>
<DIV>Nope, you just have to access them like nv-&gt;vsx_tuple3::v2, etc.</D=
IV>
<BLOCKQUOTE style=3D"BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex=
; PADDING-LEFT: 1ex" class=3Dgmail_quote>
<DIV dir=3Dltr>
<DIV><FONT color=3D#008000 face=3D"Consolas, Menlo, Monaco, Lucida Console,=
 Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, monospace, se=
rif"><SPAN style=3D"LINE-HEIGHT: 21px; FONT-SIZE: 12px">Also, I kind of wou=
ld have expected introducing that overridden new "a" would result in an err=
or.</SPAN></FONT></DIV>
<DIV><FONT color=3D#008000 face=3D"Consolas, Menlo, Monaco, Lucida Console,=
 Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, monospace, se=
rif"><SPAN style=3D"LINE-HEIGHT: 21px; FONT-SIZE: 12px">Alas, no error.</SP=
AN></FONT></DIV>
<DIV><FONT color=3D#008000 face=3D"Consolas, Menlo, Monaco, Lucida Console,=
 Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, monospace, se=
rif"><SPAN style=3D"LINE-HEIGHT: 21px; FONT-SIZE: 12px"><BR></SPAN></FONT><=
/DIV>
<DIV><FONT color=3D#008000 face=3D"Consolas, Menlo, Monaco, Lucida Console,=
 Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, monospace, se=
rif"><SPAN style=3D"LINE-HEIGHT: 21px; FONT-SIZE: 12px"><BR></SPAN></FONT><=
/DIV>
<DIV><FONT color=3D#008000 face=3D"Consolas, Menlo, Monaco, Lucida Console,=
 Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, monospace, se=
rif"><SPAN style=3D"LINE-HEIGHT: 21px; FONT-SIZE: 12px">So, maybe it would =
be possible to improve the language into something like this:</SPAN></FONT>=
</DIV>
<DIV><FONT color=3D#008000 face=3D"Consolas, Menlo, Monaco, Lucida Console,=
 Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, monospace, se=
rif"><SPAN style=3D"LINE-HEIGHT: 21px; FONT-SIZE: 12px"><BR></SPAN></FONT><=
/DIV>
<DIV>
<OL style=3D"PADDING-BOTTOM: 0px; LINE-HEIGHT: 21px; BACKGROUND-COLOR: rgb(=
248,248,248); MARGIN: 0px; PADDING-LEFT: 48px; PADDING-RIGHT: 0px; FONT-FAM=
ILY: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu =
Sans Mono', 'Bitstream Vera Sans Mono', monospace, serif; COLOR: rgb(172,17=
2,172); FONT-SIZE: 12px; PADDING-TOP: 0px">
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><SPAN style=3D"COLOR: rgb(0,0,255)">=
class</SPAN>&nbsp;vsx_tuple3</DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><SPAN style=3D"COLOR: rgb(0,128,0)">=
{</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><SPAN style=3D"COLOR: rgb(0,0,255)">=
public</SPAN><SPAN style=3D"COLOR: rgb(0,128,128)">:</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp;&nbsp;<SPAN style=3D"COLOR: rg=
b(0,0,255)">float</SPAN>&nbsp;v0<SPAN style=3D"COLOR: rgb(0,128,128)">;</SP=
AN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp;&nbsp;<SPAN style=3D"COLOR: rg=
b(0,0,255)">float</SPAN>&nbsp;v1<SPAN style=3D"COLOR: rgb(0,128,128)">;</SP=
AN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><SPAN style=3D"COLOR: rgb(0,128,128)=
">&nbsp; float v2;</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><SPAN style=3D"COLOR: rgb(0,128,0)">=
}</SPAN><SPAN style=3D"COLOR: rgb(0,128,128)">;</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp;</DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><SPAN style=3D"COLOR: rgb(0,0,255)">=
class</SPAN>&nbsp;vsx_vector&nbsp;<SPAN style=3D"COLOR: rgb(0,128,128)">:</=
SPAN>&nbsp;<SPAN style=3D"COLOR: rgb(0,0,255)">public</SPAN>&nbsp;vsx_<WBR>=
tuple3</DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><SPAN style=3D"COLOR: rgb(0,128,0)">=
{</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><SPAN style=3D"COLOR: rgb(0,0,255)">=
public</SPAN><SPAN style=3D"COLOR: rgb(0,128,128)">:</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp;&nbsp;<SPAN style=3D"COLOR: rg=
b(0,0,255)">union : vsx_tuple3::v0</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp;&nbsp;<SPAN style=3D"COLOR: rg=
b(0,128,0)">{</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp; &nbsp;&nbsp;<SPAN style=3D"CO=
LOR: rgb(0,0,255)">float</SPAN>&nbsp;x<SPAN style=3D"COLOR: rgb(0,128,128)"=
>;&nbsp;</SPAN><BR></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp;&nbsp;<SPAN style=3D"COLOR: rg=
b(0,128,0)">}</SPAN><SPAN style=3D"COLOR: rgb(0,128,128)">;</SPAN><BR></DIV=
></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp;</DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp;&nbsp;<SPAN style=3D"COLOR: rg=
b(0,0,255)">union : vsx_tuple3::v1</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp;&nbsp;<SPAN style=3D"COLOR: rg=
b(0,128,0)">{</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp; &nbsp;&nbsp;<SPAN style=3D"CO=
LOR: rgb(0,0,255)">float</SPAN>&nbsp;y<SPAN style=3D"COLOR: rgb(0,128,128)"=
>;</SPAN><BR></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp;&nbsp;<SPAN style=3D"COLOR: rg=
b(0,128,0)">}</SPAN><SPAN style=3D"COLOR: rgb(0,128,128)">;</SPAN><BR></DIV=
></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><SPAN style=3D"COLOR: rgb(0,128,128)=
">&nbsp; ...decorative methods that deal with dot/cross product etc...</SPA=
N></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><SPAN style=3D"COLOR: rgb(0,128,0)">=
}</SPAN><SPAN style=3D"COLOR: rgb(0,128,128)">;</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp;</DIV></LI></OL>
<DIV><FONT color=3D#008000 face=3D"Consolas, Menlo, Monaco, Lucida Console,=
 Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, monospace, se=
rif"><SPAN style=3D"LINE-HEIGHT: 17px; FONT-SIZE: 12px"><BR></SPAN></FONT><=
/DIV></DIV></DIV></BLOCKQUOTE>
<DIV>This could cause problems:</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV style=3D"BORDER-BOTTOM: #bbb 1px solid; BORDER-LEFT: #bbb 1px solid; B=
ACKGROUND-COLOR: #fafafa; WORD-WRAP: break-word; BORDER-TOP: #bbb 1px solid=
; BORDER-RIGHT: #bbb 1px solid" class=3Dprettyprint><CODE class=3Dprettypri=
nt>
<DIV class=3Dsubprettyprint><SPAN style=3D"COLOR: #008" class=3Dstyled-by-p=
rettify>class</SPAN><SPAN style=3D"COLOR: #000" class=3Dstyled-by-prettify>=
 </SPAN><SPAN style=3D"COLOR: #606" class=3Dstyled-by-prettify>Base</SPAN><=
SPAN style=3D"COLOR: #000" class=3Dstyled-by-prettify> </SPAN><SPAN style=
=3D"COLOR: #660" class=3Dstyled-by-prettify>{</SPAN><SPAN style=3D"COLOR: #=
000" class=3Dstyled-by-prettify> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp=
; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbs=
p;<BR></SPAN><SPAN style=3D"COLOR: #008" class=3Dstyled-by-prettify>public<=
/SPAN><SPAN style=3D"COLOR: #660" class=3Dstyled-by-prettify>:</SPAN><SPAN =
style=3D"COLOR: #000" class=3Dstyled-by-prettify> &nbsp; &nbsp; &nbsp; &nbs=
p; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &n=
bsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp;&nbsp;<BR>&nbsp; </SPAN><SPAN style=3D"COLOR: #008" class=3Dst=
yled-by-prettify>unsigned</SPAN><SPAN style=3D"COLOR: #000" class=3Dstyled-=
by-prettify> </SPAN><SPAN style=3D"COLOR: #008" class=3Dstyled-by-prettify>=
char</SPAN><SPAN style=3D"COLOR: #000" class=3Dstyled-by-prettify> a</SPAN>=
<SPAN style=3D"COLOR: #660" class=3Dstyled-by-prettify>;</SPAN><SPAN style=
=3D"COLOR: #000" class=3Dstyled-by-prettify> &nbsp; &nbsp; &nbsp; &nbsp; &n=
bsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp=
; &nbsp;&nbsp;<BR>&nbsp; </SPAN><SPAN style=3D"COLOR: #008" class=3Dstyled-=
by-prettify>unsigned</SPAN><SPAN style=3D"COLOR: #000" class=3Dstyled-by-pr=
ettify> </SPAN><SPAN style=3D"COLOR: #008" class=3Dstyled-by-prettify>char<=
/SPAN><SPAN style=3D"COLOR: #000" class=3Dstyled-by-prettify> b</SPAN><SPAN=
 style=3D"COLOR: #660" class=3Dstyled-by-prettify>;</SPAN><SPAN style=3D"CO=
LOR: #000" class=3Dstyled-by-prettify> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &=
nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbs=
p;&nbsp;<BR></SPAN><SPAN style=3D"COLOR: #660" class=3Dstyled-by-prettify>}=
;</SPAN><SPAN style=3D"COLOR: #000" class=3Dstyled-by-prettify> &nbsp; &nbs=
p; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &n=
bsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<BR>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nb=
sp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &=
nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=
 &nbsp;<BR></SPAN><SPAN style=3D"COLOR: #008" class=3Dstyled-by-prettify>cl=
ass</SPAN><SPAN style=3D"COLOR: #000" class=3Dstyled-by-prettify> </SPAN><S=
PAN style=3D"COLOR: #606" class=3Dstyled-by-prettify>Derived</SPAN><SPAN st=
yle=3D"COLOR: #000" class=3Dstyled-by-prettify> </SPAN><SPAN style=3D"COLOR=
: #660" class=3Dstyled-by-prettify>:</SPAN><SPAN style=3D"COLOR: #000" clas=
s=3Dstyled-by-prettify> </SPAN><SPAN style=3D"COLOR: #008" class=3Dstyled-b=
y-prettify>public</SPAN><SPAN style=3D"COLOR: #000" class=3Dstyled-by-prett=
ify> </SPAN><SPAN style=3D"COLOR: #606" class=3Dstyled-by-prettify>Base</SP=
AN><SPAN style=3D"COLOR: #000" class=3Dstyled-by-prettify> </SPAN><SPAN sty=
le=3D"COLOR: #660" class=3Dstyled-by-prettify>{</SPAN><SPAN style=3D"COLOR:=
 #000" class=3Dstyled-by-prettify> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp=
; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nb=
sp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&n=
bsp;<BR></SPAN><SPAN style=3D"COLOR: #008" class=3Dstyled-by-prettify>publi=
c</SPAN><SPAN style=3D"COLOR: #660" class=3Dstyled-by-prettify>:</SPAN><SPA=
N style=3D"COLOR: #000" class=3Dstyled-by-prettify> &nbsp; &nbsp; &nbsp; &n=
bsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp=
; &nbsp; &nbsp;&nbsp;<BR>&nbsp; </SPAN><SPAN style=3D"COLOR: #008" class=3D=
styled-by-prettify>union</SPAN><SPAN style=3D"COLOR: #000" class=3Dstyled-b=
y-prettify> </SPAN><SPAN style=3D"COLOR: #660" class=3Dstyled-by-prettify>:=
</SPAN><SPAN style=3D"COLOR: #000" class=3Dstyled-by-prettify> </SPAN><SPAN=
 style=3D"COLOR: #606" class=3Dstyled-by-prettify>Base</SPAN><SPAN style=3D=
"COLOR: #660" class=3Dstyled-by-prettify>::</SPAN><SPAN style=3D"COLOR: #00=
0" class=3Dstyled-by-prettify>a </SPAN><SPAN style=3D"COLOR: #660" class=3D=
styled-by-prettify>{</SPAN><SPAN style=3D"COLOR: #000" class=3Dstyled-by-pr=
ettify> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbs=
p; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &n=
bsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<BR>&nbsp; &nbsp; </SPA=
N><SPAN style=3D"COLOR: #008" class=3Dstyled-by-prettify>unsigned</SPAN><SP=
AN style=3D"COLOR: #000" class=3Dstyled-by-prettify> </SPAN><SPAN style=3D"=
COLOR: #008" class=3Dstyled-by-prettify>long</SPAN><SPAN style=3D"COLOR: #0=
00" class=3Dstyled-by-prettify> </SPAN><SPAN style=3D"COLOR: #008" class=3D=
styled-by-prettify>long</SPAN><SPAN style=3D"COLOR: #000" class=3Dstyled-by=
-prettify> a_shadow</SPAN><SPAN style=3D"COLOR: #660" class=3Dstyled-by-pre=
ttify>;</SPAN><SPAN style=3D"COLOR: #000" class=3Dstyled-by-prettify> &nbsp=
; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nb=
sp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &=
nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<BR>&nbsp; </SPAN><SPAN style=3D"COL=
OR: #660" class=3Dstyled-by-prettify>}</SPAN><SPAN style=3D"COLOR: #000" cl=
ass=3Dstyled-by-prettify> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp=
; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<BR><=
/SPAN><SPAN style=3D"COLOR: #660" class=3Dstyled-by-prettify>};</SPAN></DIV=
></CODE></DIV><BR>
<DIV>&nbsp;</DIV>
<DIV>Assuming that sizeof(unsigned long long) &gt; sizeof(unsigned char), a=
_shadow would cover the memory for Base::b as well.</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<BLOCKQUOTE style=3D"BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex=
; PADDING-LEFT: 1ex" class=3Dgmail_quote>
<DIV dir=3Dltr>
<DIV><FONT color=3D#008000 face=3D"Consolas, Menlo, Monaco, Lucida Console,=
 Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, monospace, se=
rif"><SPAN style=3D"LINE-HEIGHT: 17px; FONT-SIZE: 12px">Here, (in the deriv=
ed class) x point to the same memory area as vsx_tuple3::a.</SPAN></FONT></=
DIV>
<DIV><FONT color=3D#008000 face=3D"Consolas, Menlo, Monaco, Lucida Console,=
 Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, monospace, se=
rif"><SPAN style=3D"LINE-HEIGHT: 17px; FONT-SIZE: 12px"><BR></SPAN></FONT><=
/DIV>
<DIV><SPAN style=3D"LINE-HEIGHT: 17px; FONT-FAMILY: Consolas, Menlo, Monaco=
, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera =
Sans Mono', monospace, serif; COLOR: rgb(0,128,0); FONT-SIZE: 12px">This ad=
ds a syntactic bonus - one can rename variables (or rather, add an alias na=
me to them) in child classes - useful to make code more readable when using=
 the child class, and still access the base class.</SPAN><FONT color=3D#008=
000 face=3D"Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaV=
u Sans Mono, Bitstream Vera Sans Mono, monospace, serif"><SPAN style=3D"LIN=
E-HEIGHT: 17px; FONT-SIZE: 12px"><BR></SPAN></FONT></DIV>
<DIV><SPAN style=3D"LINE-HEIGHT: 17px; FONT-FAMILY: Consolas, Menlo, Monaco=
, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera =
Sans Mono', monospace, serif; COLOR: rgb(0,128,0); FONT-SIZE: 12px"><BR></S=
PAN></DIV></DIV></BLOCKQUOTE>
<DIV>I thought that either:</DIV>
<DIV>&nbsp;</DIV>
<DIV>
<DIV style=3D"BORDER-BOTTOM: #bbb 1px solid; BORDER-LEFT: #bbb 1px solid; B=
ACKGROUND-COLOR: #fafafa; WORD-WRAP: break-word; BORDER-TOP: #bbb 1px solid=
; BORDER-RIGHT: #bbb 1px solid" class=3Dprettyprint><CODE class=3Dprettypri=
nt>
<DIV class=3Dsubprettyprint><SPAN style=3D"COLOR: #008" class=3Dstyled-by-p=
rettify>typedef</SPAN><SPAN style=3D"COLOR: #000" class=3Dstyled-by-prettif=
y> a b</SPAN><SPAN style=3D"COLOR: #660" class=3Dstyled-by-prettify>;</SPAN=
></DIV></CODE></DIV></DIV>
<DIV>&nbsp;</DIV>
<DIV>or</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV style=3D"BORDER-BOTTOM: #bbb 1px solid; BORDER-LEFT: #bbb 1px solid; B=
ACKGROUND-COLOR: #fafafa; WORD-WRAP: break-word; BORDER-TOP: #bbb 1px solid=
; BORDER-RIGHT: #bbb 1px solid" class=3Dprettyprint><CODE class=3Dprettypri=
nt>
<DIV class=3Dsubprettyprint><SPAN style=3D"COLOR: #008" class=3Dstyled-by-p=
rettify>using</SPAN><SPAN style=3D"COLOR: #000" class=3Dstyled-by-prettify>=
 b </SPAN><SPAN style=3D"COLOR: #660" class=3Dstyled-by-prettify>=3D</SPAN>=
<SPAN style=3D"COLOR: #000" class=3Dstyled-by-prettify> a</SPAN><SPAN style=
=3D"COLOR: #660" class=3Dstyled-by-prettify>;</SPAN></DIV></CODE></DIV>
<DIV>&nbsp;</DIV>
<DIV>would do that?</DIV>
<DIV>&nbsp;</DIV>
<BLOCKQUOTE style=3D"BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex=
; PADDING-LEFT: 1ex" class=3Dgmail_quote>
<DIV dir=3Dltr>
<DIV><SPAN style=3D"LINE-HEIGHT: 17px; FONT-FAMILY: Consolas, Menlo, Monaco=
, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera =
Sans Mono', monospace, serif; COLOR: rgb(0,128,0); FONT-SIZE: 12px">I.e.</S=
PAN></DIV>
<DIV><SPAN style=3D"LINE-HEIGHT: 17px; FONT-FAMILY: Consolas, Menlo, Monaco=
, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera =
Sans Mono', monospace, serif; COLOR: rgb(0,128,0); FONT-SIZE: 12px"><BR></S=
PAN></DIV>
<DIV><SPAN style=3D"LINE-HEIGHT: 17px; FONT-FAMILY: Consolas, Menlo, Monaco=
, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera =
Sans Mono', monospace, serif; COLOR: rgb(0,128,0); FONT-SIZE: 12px">&nbsp; =
myObject-&gt;v0 =3D 3.14159 * 0.5;</SPAN><BR></DIV>
<DIV><SPAN style=3D"LINE-HEIGHT: 17px; FONT-FAMILY: Consolas, Menlo, Monaco=
, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera =
Sans Mono', monospace, serif; COLOR: rgb(0,128,0); FONT-SIZE: 12px"><BR></S=
PAN></DIV>
<DIV><SPAN style=3D"LINE-HEIGHT: 17px; FONT-FAMILY: Consolas, Menlo, Monaco=
, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera =
Sans Mono', monospace, serif; COLOR: rgb(0,128,0); FONT-SIZE: 12px">is not =
as readable as:</SPAN></DIV>
<DIV><SPAN style=3D"LINE-HEIGHT: 17px; FONT-FAMILY: Consolas, Menlo, Monaco=
, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera =
Sans Mono', monospace, serif; COLOR: rgb(0,128,0); FONT-SIZE: 12px"><BR></S=
PAN></DIV>
<DIV><SPAN style=3D"LINE-HEIGHT: 17px; FONT-FAMILY: Consolas, Menlo, Monaco=
, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera =
Sans Mono', monospace, serif; COLOR: rgb(0,128,0); FONT-SIZE: 12px">&nbsp; =
myObject-&gt;angleRadians =3D 3.14159 * 0.5;</SPAN><BR></DIV>
<DIV><SPAN style=3D"LINE-HEIGHT: 17px; FONT-FAMILY: Consolas, Menlo, Monaco=
, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera =
Sans Mono', monospace, serif; COLOR: rgb(0,128,0); FONT-SIZE: 12px"><BR></S=
PAN></DIV>
<DIV><SPAN style=3D"LINE-HEIGHT: 17px; FONT-FAMILY: Consolas, Menlo, Monaco=
, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera =
Sans Mono', monospace, serif; COLOR: rgb(0,128,0); FONT-SIZE: 12px">when th=
ey share the same base class...</SPAN></DIV>
<DIV><SPAN style=3D"LINE-HEIGHT: 17px; FONT-FAMILY: Consolas, Menlo, Monaco=
, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera =
Sans Mono', monospace, serif; COLOR: rgb(0,128,0); FONT-SIZE: 12px"><BR></S=
PAN></DIV>
<DIV><FONT color=3D#008000 face=3D"Consolas, Menlo, Monaco, Lucida Console,=
 Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, monospace, se=
rif"><SPAN style=3D"LINE-HEIGHT: 17px; FONT-SIZE: 12px"><BR></SPAN></FONT><=
/DIV>
<DIV><FONT color=3D#008000 face=3D"Consolas, Menlo, Monaco, Lucida Console,=
 Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, monospace, se=
rif"><SPAN style=3D"LINE-HEIGHT: 17px; FONT-SIZE: 12px">Also yet an alterna=
tive way of doing the declaration is:</SPAN></FONT></DIV>
<DIV><FONT color=3D#008000 face=3D"Consolas, Menlo, Monaco, Lucida Console,=
 Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, monospace, se=
rif"><SPAN style=3D"LINE-HEIGHT: 17px; FONT-SIZE: 12px"><BR></SPAN></FONT><=
/DIV>
<DIV>
<OL style=3D"PADDING-BOTTOM: 0px; LINE-HEIGHT: 21px; BACKGROUND-COLOR: rgb(=
248,248,248); MARGIN: 0px; PADDING-LEFT: 48px; PADDING-RIGHT: 0px; FONT-FAM=
ILY: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu =
Sans Mono', 'Bitstream Vera Sans Mono', monospace, serif; COLOR: rgb(172,17=
2,172); FONT-SIZE: 12px; PADDING-TOP: 0px">
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><SPAN style=3D"COLOR: rgb(0,0,255)">=
class</SPAN>&nbsp;vsx_vector&nbsp;<SPAN style=3D"COLOR: rgb(0,128,128)">:</=
SPAN>&nbsp;<SPAN style=3D"COLOR: rgb(0,0,255)">public</SPAN>&nbsp;vsx_<WBR>=
tuple3</DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><SPAN style=3D"COLOR: rgb(0,128,0)">=
{</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top"><SPAN style=3D"COLOR: rgb(0,0,255)">=
public</SPAN><SPAN style=3D"COLOR: rgb(0,128,128)">:</SPAN></DIV></LI>
<LI><SPAN style=3D"LINE-HEIGHT: 21px; BACKGROUND-COLOR: rgb(255,255,255); C=
OLOR: rgb(0,0,0)">&nbsp;&nbsp;</SPAN><SPAN style=3D"LINE-HEIGHT: 21px; COLO=
R: rgb(0,0,255)">union</SPAN><BR></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&nbsp;&nbsp;<SPAN style=3D"COLOR: rg=
b(0,128,0)">{</SPAN></DIV></LI>
<LI>
<DIV style=3D"BORDER-LEFT: rgb(204,204,204) 1px solid; LINE-HEIGHT: 21px; B=
ACKGROUND-COLOR: rgb(255,255,255); PADDING-LEFT: 5px; PADDING-RIGHT: 5px; C=
OLOR: rgb(0,0,0); VERTICAL-ALIGN: top">&lt;span class=3D"br0" style=3D"colo=
r: rgb(0, 12</DIV></LI></OL></DIV></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_170_30270006.1402306743026--

.


Author: Sean Middleditch <sean.middleditch@gmail.com>
Date: Tue, 10 Jun 2014 12:15:07 -0700 (PDT)
Raw View
------=_Part_1040_25249070.1402427707168
Content-Type: text/plain; charset=UTF-8

On Sunday, June 8, 2014 3:18:04 AM UTC-7, Jonatan Wallmander wrote:
>
> The idea is to allow child classes to form unions with parent class
> variables.
>

You're going to need some strong "why" reasons for a change like this.


> Also, I kind of would have expected introducing that overridden new "a"
> would result in an error.
> Alas, no error.
>

That is a historical unfortunate circumstance that can't really be fixed at
this point, other than recommending that compilers emit a warning
diagnostic.


> This adds a syntactic bonus - one can rename variables (or rather, add an
> alias name to them) in child classes - useful to make code more readable
> when using the child class, and still access the base class.
>

That is highly debatable. To you it means "improves readability," to me it
means "maintenance nightmare." There's enough problems trying to read,
understand, and maintain huge inherited codebases without being able to
rename inherited members arbitrarily.

If your class does not have the same meanings/semantics as the base, it
shouldn't be derived. Just because it does similar things, has a similar
layout, or uses similar operations does not mean that inheritance is a
solution and not just another problem.

--

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

<div dir=3D"ltr">On Sunday, June 8, 2014 3:18:04 AM UTC-7, Jonatan Wallmand=
er 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"><div=
>The idea is to allow child classes to form unions with parent class variab=
les.</div></div></blockquote><div><br></div><div>You're going to need some =
strong "why" reasons for a change like this.</div><div>&nbsp;</div><blockqu=
ote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left=
: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr"><div><span style=3D"f=
ont-size: 12px; line-height: 21px; color: rgb(0, 128, 0); font-family: Cons=
olas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono=
', 'Bitstream Vera Sans Mono', monospace, serif;">Also, I kind of would hav=
e expected introducing that overridden new "a" would result in an error.</s=
pan><br></div><div><font color=3D"#008000" face=3D"Consolas, Menlo, Monaco,=
 Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mon=
o, monospace, serif"><span style=3D"font-size:12px;line-height:21px">Alas, =
no error.</span></font></div></div></blockquote><div><br></div><div>That is=
 a historical unfortunate circumstance that can't really be fixed at this p=
oint, other than recommending that compilers emit a warning diagnostic.</di=
v><div>&nbsp;</div><blockquote class=3D"gmail_quote" style=3D"margin: 0;mar=
gin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D=
"ltr"><div><span style=3D"color:rgb(0,128,0);font-family:Consolas,Menlo,Mon=
aco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera S=
ans Mono',monospace,serif;font-size:12px;line-height:17px">This adds a synt=
actic bonus - one can rename variables (or rather, add an alias name to the=
m) in child classes - useful to make code more readable when using the chil=
d class, and still access the base class.</span></div></div></blockquote><d=
iv><br></div><div>That is highly debatable. To you it means "improves reada=
bility," to me it means "maintenance nightmare." There's enough problems tr=
ying to read, understand, and maintain huge inherited codebases without bei=
ng able to rename inherited members arbitrarily.</div><div><br></div><div>I=
f your class does not have the same meanings/semantics as the base, it shou=
ldn't be derived. Just because it does similar things, has a similar layout=
, or uses similar operations does not mean that inheritance is a solution a=
nd not just another problem.</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_1040_25249070.1402427707168--

.