Topic: Succinct declaration of metavariables
Author: ilja.j.honkonen@nasa.gov
Date: Tue, 17 Feb 2015 07:07:58 -0800 (PST)
Raw View
------=_Part_3727_95280582.1424185678998
Content-Type: multipart/alternative;
boundary="----=_Part_3728_1505424659.1424185678998"
------=_Part_3728_1505424659.1424185678998
Content-Type: text/plain; charset=UTF-8
Hello
Regular variables can be written succinctly as
constexpr double
long_variable_name_1 = 0,
long_variable_name_2 = 1,
long_variable_name_3
= long_variable_name_1
+ long_variable_name_2;
instead of
constexpr double long_variable_name_1 = 0;
constexpr double long_variable_name_2 = 1;
constexpr double long_variable_name_3
= long_variable_name_1
+ long_variable_name_2;
It would be nice to be able to use similar syntax for metavariables, e.g.
using
long_metavariable_name_1 = int,
long_metavariable_name_2 = double,
long_metavariable_name_3 = boost::mpl::...;
instead of
using long_metavariable_name_1 = int;
using long_metavariable_name_2 = double;
using long_metavariable_name_3 = boost::mpl::...;
One could also put
template<class T>
in front of each using word.
For more complex cases
template<class A> using long_metavariable_name_1 = int;
template<class B> using long_metavariable_name_2 = double;
template<class C> using long_metavariable_name_3 = boost::mpl::...;
the syntax could be
using
template<class A> long_metavariable_name_1 = int,
template<class B> long_metavariable_name_2 = double,
template<class C> long_metavariable_name_3 = boost::mpl::...;
Shared template parameters could be put in front of the using word above
and would be equal to
template<class T, class A> using long_metavariable_name_1 = int;
template<class T, class B> using long_metavariable_name_2 = double;
template<class T, class C> using long_metavariable_name_3 = boost::mpl::...;
Is something like this possible? At least it seems to only add new syntax
for existing features.
Ilja Honkonen
--
---
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_3728_1505424659.1424185678998
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">Hello<br><br>Regular variables can be written succinctly a=
s<br><div class=3D"prettyprint" style=3D"background-color: rgb(250, 250, 25=
0); border-color: rgb(187, 187, 187); border-style: solid; border-width: 1p=
x; word-wrap: break-word;"><code class=3D"prettyprint"><div class=3D"subpre=
ttyprint"><span style=3D"color: #008;" class=3D"styled-by-prettify">constex=
pr</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span>=
<span style=3D"color: #008;" class=3D"styled-by-prettify">double</span><spa=
n style=3D"color: #000;" class=3D"styled-by-prettify"><br> lon=
g_variable_name_1 </span><span style=3D"color: #660;" class=3D"styled-by-pr=
ettify">=3D</span><span style=3D"color: #000;" class=3D"styled-by-prettify"=
> </span><span style=3D"color: #066;" class=3D"styled-by-prettify">0</span>=
<span style=3D"color: #660;" class=3D"styled-by-prettify">,</span><span sty=
le=3D"color: #000;" class=3D"styled-by-prettify"><br> long_var=
iable_name_2 </span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">=3D</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </s=
pan><span style=3D"color: #066;" class=3D"styled-by-prettify">1</span><span=
style=3D"color: #660;" class=3D"styled-by-prettify">,</span><span style=3D=
"color: #000;" class=3D"styled-by-prettify"><br> long_variable=
_name_3<br> </span><span style=3D"color: #660;" =
class=3D"styled-by-prettify">=3D</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> long_variable_name_1<br>  =
; </span><span style=3D"color: #660;" class=3D"styled-by-prettify">+</span>=
<span style=3D"color: #000;" class=3D"styled-by-prettify"> long_variable_na=
me_2</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>instead of<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"prettypri=
nt"><div class=3D"subprettyprint"><span style=3D"color: #008;" class=3D"sty=
led-by-prettify">constexpr</span><span style=3D"color: #000;" class=3D"styl=
ed-by-prettify"> </span><span style=3D"color: #008;" class=3D"styled-by-pre=
ttify">double</span><span style=3D"color: #000;" class=3D"styled-by-prettif=
y"> long_variable_name_1 </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: #066;" class=3D"styled-by-prettify">0=
</span><span style=3D"color: #660;" class=3D"styled-by-prettify">;</span><s=
pan style=3D"color: #000;" class=3D"styled-by-prettify"><br></span><span st=
yle=3D"color: #008;" class=3D"styled-by-prettify">constexpr</span><span sty=
le=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"col=
or: #008;" class=3D"styled-by-prettify">double</span><span style=3D"color: =
#000;" class=3D"styled-by-prettify"> long_variable_name_2 </span><span styl=
e=3D"color: #660;" class=3D"styled-by-prettify">=3D</span><span style=3D"co=
lor: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #066=
;" class=3D"styled-by-prettify">1</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">;</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"><br></span><span style=3D"color: #008;" class=3D"styled-by-p=
rettify">constexpr</span><span style=3D"color: #000;" class=3D"styled-by-pr=
ettify"> </span><span style=3D"color: #008;" class=3D"styled-by-prettify">d=
ouble</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> long=
_variable_name_3<br> </span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">=3D</span><span style=3D"color: #000;" class=3D"sty=
led-by-prettify"> long_variable_name_1<br> </span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">+</span><span style=3D"color=
: #000;" class=3D"styled-by-prettify"> long_variable_name_2</span><span sty=
le=3D"color: #660;" class=3D"styled-by-prettify">;</span><span style=3D"col=
or: #000;" class=3D"styled-by-prettify"><br></span></div></code></div><br>I=
t would be nice to be able to use similar syntax for metavariables, e.g.<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; w=
ord-wrap: break-word;"><code class=3D"prettyprint"><div class=3D"subprettyp=
rint"><span style=3D"color: #008;" class=3D"styled-by-prettify">using</span=
><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>  =
; long_metavariable_name_1 </span><span style=3D"color: #660;" class=3D"sty=
led-by-prettify">=3D</span><span style=3D"color: #000;" class=3D"styled-by-=
prettify"> </span><span style=3D"color: #008;" class=3D"styled-by-prettify"=
>int</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,</spa=
n><span style=3D"color: #000;" class=3D"styled-by-prettify"><br> &nbs=
p; long_metavariable_name_2 </span><span style=3D"color: #660;" class=3D"st=
yled-by-prettify">=3D</span><span style=3D"color: #000;" class=3D"styled-by=
-prettify"> </span><span style=3D"color: #008;" class=3D"styled-by-prettify=
">double</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,<=
/span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br> =
long_metavariable_name_3 </span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">=3D</span><span style=3D"color: #000;" class=3D"sty=
led-by-prettify"> boost</span><span style=3D"color: #660;" class=3D"styled-=
by-prettify">::</span><span style=3D"color: #000;" class=3D"styled-by-prett=
ify">mpl</span><span style=3D"color: #660;" class=3D"styled-by-prettify">::=
....;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br></=
span></div></code></div>instead of<br><div class=3D"prettyprint" style=3D"b=
ackground-color: rgb(250, 250, 250); border-color: rgb(187, 187, 187); bord=
er-style: solid; border-width: 1px; word-wrap: break-word;"><code class=3D"=
prettyprint"><div class=3D"subprettyprint"><span style=3D"color: #008;" cla=
ss=3D"styled-by-prettify">using</span><span style=3D"color: #000;" class=3D=
"styled-by-prettify"> long_metavariable_name_1 </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 style=3D"color: #008;" class=3D=
"styled-by-prettify">int</span><span style=3D"color: #660;" class=3D"styled=
-by-prettify">;</span><span style=3D"color: #000;" class=3D"styled-by-prett=
ify"><br></span><span style=3D"color: #008;" class=3D"styled-by-prettify">u=
sing</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> long_=
metavariable_name_2 </span><span style=3D"color: #660;" class=3D"styled-by-=
prettify">=3D</span><span style=3D"color: #000;" class=3D"styled-by-prettif=
y"> </span><span style=3D"color: #008;" class=3D"styled-by-prettify">double=
</span><span style=3D"color: #660;" class=3D"styled-by-prettify">;</span><s=
pan style=3D"color: #000;" class=3D"styled-by-prettify"><br></span><span st=
yle=3D"color: #008;" class=3D"styled-by-prettify">using</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> long_metavariable_name_3 </=
span><span style=3D"color: #660;" class=3D"styled-by-prettify">=3D</span><s=
pan style=3D"color: #000;" class=3D"styled-by-prettify"> boost</span><span =
style=3D"color: #660;" class=3D"styled-by-prettify">::</span><span style=3D=
"color: #000;" class=3D"styled-by-prettify">mpl</span><span style=3D"color:=
#660;" class=3D"styled-by-prettify">::...;</span></div></code></div>One co=
uld also put <div class=3D"prettyprint" style=3D"background-color: rgb(250,=
250, 250); border-color: rgb(187, 187, 187); border-style: solid; border-w=
idth: 1px; word-wrap: break-word;"><code class=3D"prettyprint"><div class=
=3D"subprettyprint"><span style=3D"color: #008;" class=3D"styled-by-prettif=
y">template</span><span style=3D"color: #660;" class=3D"styled-by-prettify"=
><</span><span style=3D"color: #008;" class=3D"styled-by-prettify">class=
</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> T</span><=
span style=3D"color: #660;" class=3D"styled-by-prettify">></span><span s=
tyle=3D"color: #000;" class=3D"styled-by-prettify"> </span></div></code></d=
iv>in front of each using word.<br><br>For more complex cases<br><div class=
=3D"prettyprint" style=3D"background-color: rgb(250, 250, 250); border-colo=
r: rgb(187, 187, 187); border-style: solid; border-width: 1px; word-wrap: b=
reak-word;"><code class=3D"prettyprint"><div class=3D"subprettyprint"><span=
style=3D"color: #008;" class=3D"styled-by-prettify">template</span><span s=
tyle=3D"color: #660;" class=3D"styled-by-prettify"><</span><span style=
=3D"color: #008;" class=3D"styled-by-prettify">class</span><span style=3D"c=
olor: #000;" class=3D"styled-by-prettify"> A</span><span style=3D"color: #6=
60;" class=3D"styled-by-prettify">></span><span style=3D"color: #000;" c=
lass=3D"styled-by-prettify"> </span><span style=3D"color: #008;" class=3D"s=
tyled-by-prettify">using</span><span style=3D"color: #000;" class=3D"styled=
-by-prettify"> long_metavariable_name_1 </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 style=3D"color: #008;" class=3D"style=
d-by-prettify">int</span><span style=3D"color: #660;" class=3D"styled-by-pr=
ettify">;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><=
br></span><span style=3D"color: #008;" class=3D"styled-by-prettify">templat=
e</span><span style=3D"color: #660;" class=3D"styled-by-prettify"><</spa=
n><span style=3D"color: #008;" class=3D"styled-by-prettify">class</span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify"> B</span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">></span><span style=3D"co=
lor: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #008=
;" class=3D"styled-by-prettify">using</span><span style=3D"color: #000;" cl=
ass=3D"styled-by-prettify"> long_metavariable_name_2 </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 style=3D"color: #008;" cl=
ass=3D"styled-by-prettify">double</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">;</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"><br></span><span style=3D"color: #008;" class=3D"styled-by-p=
rettify">template</span><span style=3D"color: #660;" class=3D"styled-by-pre=
ttify"><</span><span style=3D"color: #008;" class=3D"styled-by-prettify"=
>class</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> C</=
span><span style=3D"color: #660;" class=3D"styled-by-prettify">></span><=
span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span styl=
e=3D"color: #008;" class=3D"styled-by-prettify">using</span><span style=3D"=
color: #000;" class=3D"styled-by-prettify"> long_metavariable_name_3 </span=
><span style=3D"color: #660;" class=3D"styled-by-prettify">=3D</span><span =
style=3D"color: #000;" class=3D"styled-by-prettify"> boost</span><span styl=
e=3D"color: #660;" class=3D"styled-by-prettify">::</span><span style=3D"col=
or: #000;" class=3D"styled-by-prettify">mpl</span><span style=3D"color: #66=
0;" class=3D"styled-by-prettify">::...;</span><span style=3D"color: #000;" =
class=3D"styled-by-prettify"><br></span></div></code></div>the syntax could=
be<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: #008;" class=3D"styled-by-prettify">using=
</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br> =
</span><span style=3D"color: #008;" class=3D"styled-by-prettify">te=
mplate</span><span style=3D"color: #660;" class=3D"styled-by-prettify"><=
</span><span style=3D"color: #008;" class=3D"styled-by-prettify">class</spa=
n><span style=3D"color: #000;" class=3D"styled-by-prettify"> A</span><span =
style=3D"color: #660;" class=3D"styled-by-prettify">></span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> long_metavariable_name_1 </=
span><span style=3D"color: #660;" class=3D"styled-by-prettify">=3D</span><s=
pan style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=
=3D"color: #008;" class=3D"styled-by-prettify">int</span><span style=3D"col=
or: #660;" class=3D"styled-by-prettify">,</span><span style=3D"color: #000;=
" class=3D"styled-by-prettify"><br> </span><span style=3D"colo=
r: #008;" class=3D"styled-by-prettify">template</span><span style=3D"color:=
#660;" class=3D"styled-by-prettify"><</span><span style=3D"color: #008;=
" class=3D"styled-by-prettify">class</span><span style=3D"color: #000;" cla=
ss=3D"styled-by-prettify"> B</span><span style=3D"color: #660;" class=3D"st=
yled-by-prettify">></span><span style=3D"color: #000;" class=3D"styled-b=
y-prettify"> long_metavariable_name_2 </span><span style=3D"color: #660;" c=
lass=3D"styled-by-prettify">=3D</span><span style=3D"color: #000;" class=3D=
"styled-by-prettify"> </span><span style=3D"color: #008;" class=3D"styled-b=
y-prettify">double</span><span style=3D"color: #660;" class=3D"styled-by-pr=
ettify">,</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><=
br> </span><span style=3D"color: #008;" class=3D"styled-by-pre=
ttify">template</span><span style=3D"color: #660;" class=3D"styled-by-prett=
ify"><</span><span style=3D"color: #008;" class=3D"styled-by-prettify">c=
lass</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> C</sp=
an><span style=3D"color: #660;" class=3D"styled-by-prettify">></span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify"> long_metavariable_n=
ame_3 </span><span style=3D"color: #660;" class=3D"styled-by-prettify">=3D<=
/span><span style=3D"color: #000;" class=3D"styled-by-prettify"> boost</spa=
n><span style=3D"color: #660;" class=3D"styled-by-prettify">::</span><span =
style=3D"color: #000;" class=3D"styled-by-prettify">mpl</span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">::...;</span><span style=3D"=
color: #000;" class=3D"styled-by-prettify"><br></span></div></code></div><b=
r>Shared template parameters could be put in front of the using word above =
and would be equal to<br><div class=3D"prettyprint" style=3D"background-col=
or: rgb(250, 250, 250); border-color: rgb(187, 187, 187); border-style: sol=
id; border-width: 1px; word-wrap: break-word;"><code class=3D"prettyprint">=
<div class=3D"subprettyprint"><div class=3D"prettyprint" style=3D"border: 1=
px solid rgb(187, 187, 187); word-wrap: break-word;"><code class=3D"prettyp=
rint"><div class=3D"subprettyprint"><span style=3D"color: #008;" class=3D"s=
tyled-by-prettify">template</span><span style=3D"color: #660;" class=3D"sty=
led-by-prettify"><</span><span style=3D"color: #008;" class=3D"styled-by=
-prettify">class T, class</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"> A</span><span style=3D"color: #660;" class=3D"styled-by-pre=
ttify">></span><span style=3D"color: #000;" class=3D"styled-by-prettify"=
> </span><span style=3D"color: #008;" class=3D"styled-by-prettify">using</s=
pan><span style=3D"color: #000;" class=3D"styled-by-prettify"> long_metavar=
iable_name_1 </span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">=3D</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </s=
pan><span style=3D"color: #008;" class=3D"styled-by-prettify">int</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: #008;" class=3D"styled-by-prettify">template</span><span style=3D"colo=
r: #660;" class=3D"styled-by-prettify"><</span><span style=3D"color: #00=
8;" class=3D"styled-by-prettify"><code class=3D"prettyprint"><code class=3D=
"prettyprint"><span class=3D"styled-by-prettify">class T, </span></code></c=
ode>class</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> =
B</span><span style=3D"color: #660;" class=3D"styled-by-prettify">></spa=
n><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span s=
tyle=3D"color: #008;" class=3D"styled-by-prettify">using</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> long_metavariable_name_2 </=
span><span style=3D"color: #660;" class=3D"styled-by-prettify">=3D</span><s=
pan style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=
=3D"color: #008;" class=3D"styled-by-prettify">double</span><span style=3D"=
color: #660;" class=3D"styled-by-prettify">;</span><span style=3D"color: #0=
00;" class=3D"styled-by-prettify"><br></span><span style=3D"color: #008;" c=
lass=3D"styled-by-prettify">template</span><span style=3D"color: #660;" cla=
ss=3D"styled-by-prettify"><</span><span style=3D"color: #008;" class=3D"=
styled-by-prettify"><code class=3D"prettyprint"><code class=3D"prettyprint"=
><span class=3D"styled-by-prettify">class T, </span></code></code>class</sp=
an><span style=3D"color: #000;" class=3D"styled-by-prettify"> C</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=
: #008;" class=3D"styled-by-prettify">using</span><span style=3D"color: #00=
0;" class=3D"styled-by-prettify"> long_metavariable_name_3 </span><span sty=
le=3D"color: #660;" class=3D"styled-by-prettify">=3D</span><span style=3D"c=
olor: #000;" class=3D"styled-by-prettify"> boost</span><span style=3D"color=
: #660;" class=3D"styled-by-prettify">::</span><span style=3D"color: #000;"=
class=3D"styled-by-prettify">mpl</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">::...;</span><span style=3D"color: #000;" class=3D"=
styled-by-prettify"><br></span></div></code></div><span style=3D"color: #66=
0;" class=3D"styled-by-prettify"></span></div></code></div><br>Is something=
like this possible? At least it seems to only add new syntax for existing =
features.<br><br>Ilja Honkonen<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" 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_3728_1505424659.1424185678998--
------=_Part_3727_95280582.1424185678998--
.
Author: Nicol Bolas <jmckesson@gmail.com>
Date: Tue, 17 Feb 2015 08:31:33 -0800 (PST)
Raw View
------=_Part_329_1797358514.1424190694003
Content-Type: multipart/alternative;
boundary="----=_Part_330_1699566096.1424190694003"
------=_Part_330_1699566096.1424190694003
Content-Type: text/plain; charset=UTF-8
So you want to add a language feature, just to avoid typing the keyword
"using?" That sounds like a massive waste of the committee's time.
--
---
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_330_1699566096.1424190694003
Content-Type: text/html; charset=UTF-8
<div dir="ltr">So you want to add a language feature, just to avoid typing the keyword "using?" That sounds like a massive waste of the committee's time.<br></div>
<p></p>
-- <br />
<br />
--- <br />
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="mailto:std-proposals+unsubscribe@isocpp.org">std-proposals+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href="mailto:std-proposals@isocpp.org">std-proposals@isocpp.org</a>.<br />
Visit this group at <a href="http://groups.google.com/a/isocpp.org/group/std-proposals/">http://groups.google.com/a/isocpp.org/group/std-proposals/</a>.<br />
------=_Part_330_1699566096.1424190694003--
------=_Part_329_1797358514.1424190694003--
.
Author: Ilja Honkonen <ilja.j.honkonen@nasa.gov>
Date: Tue, 17 Feb 2015 12:09:20 -0500
Raw View
> So you want to add a language feature, just to avoid typing the keyword
> "using?" That sounds like a massive waste of the committee's time.
I don't know whether the ability to avoid typing the keyword double was
a conscious decision (in K&R or before, after?), if it wasn't then I
agree that this probably wouldn't be worth the apparently large effort,
but if it was then similar reasoning might apply here.
Ilja
--
---
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/.
.
Author: Scott Prager <splinterofchaos@gmail.com>
Date: Tue, 17 Feb 2015 09:30:33 -0800 (PST)
Raw View
------=_Part_3913_1638260200.1424194233608
Content-Type: multipart/alternative;
boundary="----=_Part_3914_1351343213.1424194233608"
------=_Part_3914_1351343213.1424194233608
Content-Type: text/plain; charset=UTF-8
Don't really see this as necessary, but if you want that syntax, wouldn't
it make more sense to do something like this?:
template<class X>
using Type1 = expr1<X>,
Type2 = expr2<X>,
Type3 = expr3<X>;
On Tuesday, February 17, 2015 at 10:07:59 AM UTC-5, ilja.j....@nasa.gov
wrote:
>
> Hello
>
> Regular variables can be written succinctly as
> constexpr double
> long_variable_name_1 = 0,
> long_variable_name_2 = 1,
> long_variable_name_3
> = long_variable_name_1
> + long_variable_name_2;
> instead of
> constexpr double long_variable_name_1 = 0;
> constexpr double long_variable_name_2 = 1;
> constexpr double long_variable_name_3
> = long_variable_name_1
> + long_variable_name_2;
>
> It would be nice to be able to use similar syntax for metavariables, e.g.
> using
> long_metavariable_name_1 = int,
> long_metavariable_name_2 = double,
> long_metavariable_name_3 = boost::mpl::...;
> instead of
> using long_metavariable_name_1 = int;
> using long_metavariable_name_2 = double;
> using long_metavariable_name_3 = boost::mpl::...;
> One could also put
> template<class T>
> in front of each using word.
>
> For more complex cases
> template<class A> using long_metavariable_name_1 = int;
> template<class B> using long_metavariable_name_2 = double;
> template<class C> using long_metavariable_name_3 = boost::mpl::...;
> the syntax could be
> using
> template<class A> long_metavariable_name_1 = int,
> template<class B> long_metavariable_name_2 = double,
> template<class C> long_metavariable_name_3 = boost::mpl::...;
>
> Shared template parameters could be put in front of the using word above
> and would be equal to
> template<class T, class A> using long_metavariable_name_1 = int;
> template<class T, class B> using long_metavariable_name_2 = double;
> template<class T, class C> using long_metavariable_name_3 = boost::mpl
> ::...;
>
> Is something like this possible? At least it seems to only add new syntax
> for existing features.
>
> Ilja Honkonen
>
--
---
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_3914_1351343213.1424194233608
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">Don't really see this as necessary, but if you want that s=
yntax, wouldn't it make more sense to do something like this?:<div><br></di=
v><div class=3D"prettyprint" style=3D"border: 1px solid rgb(187, 187, 187);=
word-wrap: break-word; background-color: rgb(250, 250, 250);"><code class=
=3D"prettyprint"><div class=3D"subprettyprint"><span style=3D"color: #008;"=
class=3D"styled-by-prettify">template</span><span style=3D"color: #660;" c=
lass=3D"styled-by-prettify"><</span><span style=3D"color: #008;" class=
=3D"styled-by-prettify">class</span><span style=3D"color: #000;" class=3D"s=
tyled-by-prettify"> X</span><span style=3D"color: #660;" class=3D"styled-by=
-prettify">></span><span style=3D"color: #000;" class=3D"styled-by-prett=
ify"><br></span><span style=3D"color: #008;" class=3D"styled-by-prettify">u=
sing</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </spa=
n><span style=3D"color: #606;" class=3D"styled-by-prettify">Type1</span><sp=
an 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"col=
or: #000;" class=3D"styled-by-prettify"> expr1</span><span style=3D"color: =
#660;" class=3D"styled-by-prettify"><</span><span style=3D"color: #000;"=
class=3D"styled-by-prettify">X</span><span style=3D"color: #660;" class=3D=
"styled-by-prettify">>,</span><span style=3D"color: #000;" class=3D"styl=
ed-by-prettify"><br> </span><span style=3D"color: #606;=
" class=3D"styled-by-prettify">Type2</span><span style=3D"color: #000;" cla=
ss=3D"styled-by-prettify"> </span><span style=3D"color: #660;" class=3D"sty=
led-by-prettify">=3D</span><span style=3D"color: #000;" class=3D"styled-by-=
prettify"> expr2</span><span style=3D"color: #660;" class=3D"styled-by-pret=
tify"><</span><span style=3D"color: #000;" class=3D"styled-by-prettify">=
X</span><span style=3D"color: #660;" class=3D"styled-by-prettify">>,</sp=
an><span style=3D"color: #000;" class=3D"styled-by-prettify"><br></span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify"> =
</span><span style=3D"color: #606;" class=3D"styled-by-prettify">Type3</sp=
an><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"> expr3</span><span style=3D"=
color: #660;" class=3D"styled-by-prettify"><</span><span style=3D"color:=
#000;" class=3D"styled-by-prettify">X</span><span style=3D"color: #660;" c=
lass=3D"styled-by-prettify">>;</span></div></code></div><div><br></div><=
div><div><br>On Tuesday, February 17, 2015 at 10:07:59 AM UTC-5, ilja.j....=
@nasa.gov 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"lt=
r">Hello<br><br>Regular variables can be written succinctly as<br><div styl=
e=3D"background-color:rgb(250,250,250);border-color:rgb(187,187,187);border=
-style:solid;border-width:1px;word-wrap:break-word"><code><div><span style=
=3D"color:#008">constexpr</span><span style=3D"color:#000"> </span><span st=
yle=3D"color:#008">double</span><span style=3D"color:#000"><br>  =
; long_variable_name_1 </span><span style=3D"color:#660">=3D</span><span st=
yle=3D"color:#000"> </span><span style=3D"color:#066">0</span><span style=
=3D"color:#660">,</span><span style=3D"color:#000"><br> long_v=
ariable_name_2 </span><span style=3D"color:#660">=3D</span><span style=3D"c=
olor:#000"> </span><span style=3D"color:#066">1</span><span style=3D"color:=
#660">,</span><span style=3D"color:#000"><br> long_variable_na=
me_3<br> </span><span style=3D"color:#660">=3D</=
span><span style=3D"color:#000"> long_variable_name_1<br> &nbs=
p; </span><span style=3D"color:#660">+</span><span style=3D"color:#0=
00"> long_variable_name_2</span><span style=3D"color:#660">;</span><span st=
yle=3D"color:#000"><br></span></div></code></div>instead of<br><div 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><div><span style=
=3D"color:#008">constexpr</span><span style=3D"color:#000"> </span><span st=
yle=3D"color:#008">double</span><span style=3D"color:#000"> long_variable_n=
ame_1 </span><span style=3D"color:#660">=3D</span><span style=3D"color:#000=
"> </span><span style=3D"color:#066">0</span><span style=3D"color:#660">;</=
span><span style=3D"color:#000"><br></span><span style=3D"color:#008">const=
expr</span><span style=3D"color:#000"> </span><span style=3D"color:#008">do=
uble</span><span style=3D"color:#000"> long_variable_name_2 </span><span st=
yle=3D"color:#660">=3D</span><span style=3D"color:#000"> </span><span style=
=3D"color:#066">1</span><span style=3D"color:#660">;</span><span style=3D"c=
olor:#000"><br></span><span style=3D"color:#008">constexpr</span><span styl=
e=3D"color:#000"> </span><span style=3D"color:#008">double</span><span styl=
e=3D"color:#000"> long_variable_name_3<br> </span><span style=
=3D"color:#660">=3D</span><span style=3D"color:#000"> long_variable_name_1<=
br> </span><span style=3D"color:#660">+</span><span style=3D"c=
olor:#000"> long_variable_name_2</span><span style=3D"color:#660">;</span><=
span style=3D"color:#000"><br></span></div></code></div><br>It would be nic=
e to be able to use similar syntax for metavariables, e.g.<br><div style=3D=
"background-color:rgb(250,250,250);border-color:rgb(187,187,187);border-sty=
le:solid;border-width:1px;word-wrap:break-word"><code><div><span style=3D"c=
olor:#008">using</span><span style=3D"color:#000"><br> long_me=
tavariable_name_1 </span><span style=3D"color:#660">=3D</span><span style=
=3D"color:#000"> </span><span style=3D"color:#008">int</span><span style=3D=
"color:#660">,</span><span style=3D"color:#000"><br> long_meta=
variable_name_2 </span><span style=3D"color:#660">=3D</span><span style=3D"=
color:#000"> </span><span style=3D"color:#008">double</span><span style=3D"=
color:#660">,</span><span style=3D"color:#000"><br> long_metav=
ariable_name_3 </span><span style=3D"color:#660">=3D</span><span style=3D"c=
olor:#000"> boost</span><span style=3D"color:#660">::</span><span style=3D"=
color:#000">mpl</span><span style=3D"color:#660">::...;</span><span style=
=3D"color:#000"><br></span></div></code></div>instead of<br><div style=3D"b=
ackground-color:rgb(250,250,250);border-color:rgb(187,187,187);border-style=
:solid;border-width:1px;word-wrap:break-word"><code><div><span style=3D"col=
or:#008">using</span><span style=3D"color:#000"> long_metavariable_name_1 <=
/span><span style=3D"color:#660">=3D</span><span style=3D"color:#000"> </sp=
an><span style=3D"color:#008">int</span><span style=3D"color:#660">;</span>=
<span style=3D"color:#000"><br></span><span style=3D"color:#008">using</spa=
n><span style=3D"color:#000"> long_metavariable_name_2 </span><span style=
=3D"color:#660">=3D</span><span style=3D"color:#000"> </span><span style=3D=
"color:#008">double</span><span style=3D"color:#660">;</span><span style=3D=
"color:#000"><br></span><span style=3D"color:#008">using</span><span style=
=3D"color:#000"> long_metavariable_name_3 </span><span style=3D"color:#660"=
>=3D</span><span style=3D"color:#000"> boost</span><span style=3D"color:#66=
0">::</span><span style=3D"color:#000">mpl</span><span style=3D"color:#660"=
>::...;</span></div></code></div>One could also put <div style=3D"backgroun=
d-color:rgb(250,250,250);border-color:rgb(187,187,187);border-style:solid;b=
order-width:1px;word-wrap:break-word"><code><div><span style=3D"color:#008"=
>template</span><span style=3D"color:#660"><</span><span style=3D"color:=
#008">class</span><span style=3D"color:#000"> T</span><span style=3D"color:=
#660">></span><span style=3D"color:#000"> </span></div></code></div>in f=
ront of each using word.<br><br>For more complex cases<br><div style=3D"bac=
kground-color:rgb(250,250,250);border-color:rgb(187,187,187);border-style:s=
olid;border-width:1px;word-wrap:break-word"><code><div><span style=3D"color=
:#008">template</span><span style=3D"color:#660"><</span><span style=3D"=
color:#008">class</span><span style=3D"color:#000"> A</span><span style=3D"=
color:#660">></span><span style=3D"color:#000"> </span><span style=3D"co=
lor:#008">using</span><span style=3D"color:#000"> long_metavariable_name_1 =
</span><span style=3D"color:#660">=3D</span><span style=3D"color:#000"> </s=
pan><span style=3D"color:#008">int</span><span style=3D"color:#660">;</span=
><span style=3D"color:#000"><br></span><span style=3D"color:#008">template<=
/span><span style=3D"color:#660"><</span><span style=3D"color:#008">clas=
s</span><span style=3D"color:#000"> B</span><span style=3D"color:#660">>=
</span><span style=3D"color:#000"> </span><span style=3D"color:#008">using<=
/span><span style=3D"color:#000"> long_metavariable_name_2 </span><span sty=
le=3D"color:#660">=3D</span><span style=3D"color:#000"> </span><span style=
=3D"color:#008">double</span><span style=3D"color:#660">;</span><span style=
=3D"color:#000"><br></span><span style=3D"color:#008">template</span><span =
style=3D"color:#660"><</span><span style=3D"color:#008">class</span><spa=
n style=3D"color:#000"> C</span><span style=3D"color:#660">></span><span=
style=3D"color:#000"> </span><span style=3D"color:#008">using</span><span =
style=3D"color:#000"> long_metavariable_name_3 </span><span style=3D"color:=
#660">=3D</span><span style=3D"color:#000"> boost</span><span style=3D"colo=
r:#660">::</span><span style=3D"color:#000">mpl</span><span style=3D"color:=
#660">::...;</span><span style=3D"color:#000"><br></span></div></code></div=
>the syntax could be<br><div style=3D"background-color:rgb(250,250,250);bor=
der-color:rgb(187,187,187);border-style:solid;border-width:1px;word-wrap:br=
eak-word"><code><div><span style=3D"color:#008">using</span><span style=3D"=
color:#000"><br> </span><span style=3D"color:#008">template</s=
pan><span style=3D"color:#660"><</span><span style=3D"color:#008">class<=
/span><span style=3D"color:#000"> A</span><span style=3D"color:#660">></=
span><span style=3D"color:#000"> long_metavariable_name_1 </span><span styl=
e=3D"color:#660">=3D</span><span style=3D"color:#000"> </span><span style=
=3D"color:#008">int</span><span style=3D"color:#660">,</span><span style=3D=
"color:#000"><br> </span><span style=3D"color:#008">template</=
span><span style=3D"color:#660"><</span><span style=3D"color:#008">class=
</span><span style=3D"color:#000"> B</span><span style=3D"color:#660">><=
/span><span style=3D"color:#000"> long_metavariable_name_2 </span><span sty=
le=3D"color:#660">=3D</span><span style=3D"color:#000"> </span><span style=
=3D"color:#008">double</span><span style=3D"color:#660">,</span><span style=
=3D"color:#000"><br> </span><span style=3D"color:#008">templat=
e</span><span style=3D"color:#660"><</span><span style=3D"color:#008">cl=
ass</span><span style=3D"color:#000"> C</span><span style=3D"color:#660">&g=
t;</span><span style=3D"color:#000"> long_metavariable_name_3 </span><span =
style=3D"color:#660">=3D</span><span style=3D"color:#000"> boost</span><spa=
n style=3D"color:#660">::</span><span style=3D"color:#000">mpl</span><span =
style=3D"color:#660">::...;</span><span style=3D"color:#000"><br></span></d=
iv></code></div><br>Shared template parameters could be put in front of the=
using word above and would be equal to<br><div style=3D"background-color:r=
gb(250,250,250);border-color:rgb(187,187,187);border-style:solid;border-wid=
th:1px;word-wrap:break-word"><code><div><div style=3D"border:1px solid rgb(=
187,187,187);word-wrap:break-word"><code><div><span style=3D"color:#008">te=
mplate</span><span style=3D"color:#660"><</span><span style=3D"color:#00=
8">class T, class</span><span style=3D"color:#000"> A</span><span style=3D"=
color:#660">></span><span style=3D"color:#000"> </span><span style=3D"co=
lor:#008">using</span><span style=3D"color:#000"> long_metavariable_name_1 =
</span><span style=3D"color:#660">=3D</span><span style=3D"color:#000"> </s=
pan><span style=3D"color:#008">int</span><span style=3D"color:#660">;</span=
><span style=3D"color:#000"><br></span><span style=3D"color:#008">template<=
/span><span style=3D"color:#660"><</span><span style=3D"color:#008"><cod=
e><code><span>class T, </span></code></code>class</span><span style=3D"colo=
r:#000"> B</span><span style=3D"color:#660">></span><span style=3D"color=
:#000"> </span><span style=3D"color:#008">using</span><span style=3D"color:=
#000"> long_metavariable_name_2 </span><span style=3D"color:#660">=3D</span=
><span style=3D"color:#000"> </span><span style=3D"color:#008">double</span=
><span style=3D"color:#660">;</span><span style=3D"color:#000"><br></span><=
span style=3D"color:#008">template</span><span style=3D"color:#660"><</s=
pan><span style=3D"color:#008"><code><code><span>class T, </span></code></c=
ode>class</span><span style=3D"color:#000"> C</span><span style=3D"color:#6=
60">></span><span style=3D"color:#000"> </span><span style=3D"color:#008=
">using</span><span style=3D"color:#000"> long_metavariable_name_3 </span><=
span style=3D"color:#660">=3D</span><span style=3D"color:#000"> boost</span=
><span style=3D"color:#660">::</span><span style=3D"color:#000">mpl</span><=
span style=3D"color:#660">::...;</span><span style=3D"color:#000"><br></spa=
n></div></code></div><span style=3D"color:#660"></span></div></code></div><=
br>Is something like this possible? At least it seems to only add new synta=
x for existing features.<br><br>Ilja Honkonen<br></div></blockquote></div><=
/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" 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_3914_1351343213.1424194233608--
------=_Part_3913_1638260200.1424194233608--
.
Author: Nicol Bolas <jmckesson@gmail.com>
Date: Tue, 17 Feb 2015 11:20:55 -0800 (PST)
Raw View
------=_Part_25_452164298.1424200855590
Content-Type: multipart/alternative;
boundary="----=_Part_26_1728213400.1424200855590"
------=_Part_26_1728213400.1424200855590
Content-Type: text/plain; charset=UTF-8
On Tuesday, February 17, 2015 at 12:09:13 PM UTC-5, Ilja Honkonen wrote:
>
> > So you want to add a language feature, just to avoid typing the keyword
> > "using?" That sounds like a massive waste of the committee's time.
>
> I don't know whether the ability to avoid typing the keyword double was
> a conscious decision (in K&R or before, after?), if it wasn't then I
> agree that this probably wouldn't be worth the apparently large effort,
> but if it was then similar reasoning might apply here.
> Ilja
>
Typenames aren't restricted to just "double". They can be long, arbitrary,
and unwieldy namespace-qualified things. While "using" is always 5
characters long.
Also, I don't particularly agree with putting multiple variable definitions
in a single statement to begin with. It's certainly terse, but it's
needlessly terse. Plus, it doesn't work well with 'auto', which is what a
lot of my variable definitions are using nowadays.
--
---
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_26_1728213400.1424200855590
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><br><br>On Tuesday, February 17, 2015 at 12:09:13 PM UTC-5=
, Ilja Honkonen wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;=
margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">> So =
you want to add a language feature, just to avoid typing the keyword
<br>> "using?" That sounds like a massive waste of the committee's time.
<br>
<br>I don't know whether the ability to avoid typing the keyword double was=
=20
<br>a conscious decision (in K&R or before, after?), if it wasn't then =
I=20
<br>agree that this probably wouldn't be worth the apparently large effort,=
=20
<br>but if it was then similar reasoning might apply here.
<br>Ilja
<br></blockquote><div><br>Typenames aren't restricted to just "double". The=
y can be long, arbitrary, and unwieldy namespace-qualified things. While "u=
sing" is always 5 characters long.<br><br>Also, I don't particularly agree =
with putting multiple variable definitions in a single statement to begin w=
ith. It's certainly terse, but it's needlessly terse. Plus, it doesn't work=
well with 'auto', which is what a lot of my variable definitions are using=
nowadays.<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" 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_26_1728213400.1424200855590--
------=_Part_25_452164298.1424200855590--
.
Author: Ilja Honkonen <ilja.j.honkonen@nasa.gov>
Date: Tue, 17 Feb 2015 14:34:06 -0500
Raw View
> Don't really see this as necessary, but if you want that syntax,
> wouldn't it make more sense to do something like this?:
> |
> template<classX>
> using Type1=expr1<X>,
> Type2=expr2<X>,
> Type3=expr3<X>;
> |
Yes, if the same parameter is given to each expression that's what I
suggested. If each one gets (different/additional) template parameters
those would have to come after using and before TypeN I guess.
--
---
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/.
.
Author: Ilja Honkonen <ilja.j.honkonen@nasa.gov>
Date: Tue, 17 Feb 2015 14:55:35 -0500
Raw View
> I don't know whether the ability to avoid typing the keyword double was
> a conscious decision (in K&R or before, after?), if it wasn't then I
> agree that this probably wouldn't be worth the apparently large effort,
> but if it was then similar reasoning might apply here.
>
> Typenames aren't restricted to just "double". They can be long,
> arbitrary, and unwieldy namespace-qualified things. While "using" is
> always 5 characters long.
If I understood your argument correctly the same applies to regular
variables: float is always 5 chars long while the value assigned to each
variable can come from a long, namespace-qualified, etc. function.
> Also, I don't particularly agree with putting multiple variable
> definitions in a single statement to begin with. It's certainly terse,
> but it's needlessly terse. Plus, it doesn't work well with 'auto', which
> is what a lot of my variable definitions are using nowadays.
Mine too and in cases where several variables are of the same type a
single auto shows that quickly. In the syntax I propose the same would
hold for template arguments given before using which might also improve
readability.
--
---
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/.
.
Author: Nevin Liber <nevin@eviloverlord.com>
Date: Tue, 17 Feb 2015 13:57:43 -0600
Raw View
--001a11c35460192094050f4e20d5
Content-Type: text/plain; charset=UTF-8
On 17 February 2015 at 13:55, Ilja Honkonen <ilja.j.honkonen@nasa.gov>
wrote:
> Mine too and in cases where several variables are of the same type a
> single auto shows that quickly.
If five variables have the same type, that type ought to have a name, and
it isn't that hard with using or typedef to give it a name.
This proposal also discourages declaring variables at the point of use.
--
Nevin ":-)" Liber <mailto:nevin@eviloverlord.com> (847) 691-1404
--
---
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/.
--001a11c35460192094050f4e20d5
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">On 17 February 2015 at 13:55, Ilja Honkonen <span dir=3D"l=
tr"><<a href=3D"mailto:ilja.j.honkonen@nasa.gov" target=3D"_blank">ilja.=
j.honkonen@nasa.gov</a>></span> wrote:<br><div class=3D"gmail_extra"><di=
v class=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"margin:0=
0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=3D""></s=
pan>Mine too and in cases where several variables are of the same type a si=
ngle auto shows that quickly. </blockquote><div><br></div><div>If five vari=
ables have the same type, that type ought to have a name, and it isn't =
that hard with using or typedef to give it a name.<br><br>This proposal als=
o discourages declaring variables at the point of use.<br></div></div>-- <b=
r><div class=3D"gmail_signature">=C2=A0Nevin ":-)" Liber=C2=A0 &l=
t;mailto:<a href=3D"mailto:nevin@eviloverlord.com" target=3D"_blank">nevin@=
eviloverlord.com</a>>=C2=A0 (847) 691-1404</div>
</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" 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 />
--001a11c35460192094050f4e20d5--
.
Author: Ville Voutilainen <ville.voutilainen@gmail.com>
Date: Tue, 17 Feb 2015 22:01:34 +0200
Raw View
On 17 February 2015 at 21:57, Nevin Liber <nevin@eviloverlord.com> wrote:
> This proposal also discourages declaring variables at the point of use.
I don't think you always have the luxury of declaring "metavariables"
at the point of use.
Having said that, I find the motivation for the proposal fairly
unconvincing, and I find
the importance of making introducing "metavariables" more convenient unlikely to
be worth the cost. The benefit of this change seems very small, very
small indeed.
--
---
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/.
.
Author: Nicol Bolas <jmckesson@gmail.com>
Date: Thu, 19 Feb 2015 07:42:26 -0800 (PST)
Raw View
------=_Part_487_1057232927.1424360546624
Content-Type: multipart/alternative;
boundary="----=_Part_488_634108811.1424360546625"
------=_Part_488_634108811.1424360546625
Content-Type: text/plain; charset=UTF-8
On Tuesday, February 17, 2015 at 2:55:23 PM UTC-5, Ilja Honkonen wrote:
>
> > I don't know whether the ability to avoid typing the keyword double
> was
> > a conscious decision (in K&R or before, after?), if it wasn't then I
> > agree that this probably wouldn't be worth the apparently large
> effort,
> > but if it was then similar reasoning might apply here.
> >
> > Typenames aren't restricted to just "double". They can be long,
> > arbitrary, and unwieldy namespace-qualified things. While "using" is
> > always 5 characters long.
>
> If I understood your argument correctly the same applies to regular
> variables: float is always 5 chars long while the value assigned to each
> variable can come from a long, namespace-qualified, etc. function.
>
.... what?
My point was that what you're saving in the variable case is itself
*variable*. That is, it changes from case to case. The difference is this:
Here::Is::A::Very::Long::Typename a = ...;
Here::Is::A::Very::Long::Typename b = ...;
Here::Is::A::Very::Long::Typename c = ...;
Here::Is::A::Very::Long::Typename d = ...;
vs.
Here::Is::A::Very::Long::Typename
a = ...,
b = ...,
c = ...,
d = ...;
In this case, you're saving a lot of keystrokes. With your "metavariable"
case, the only thing you save is typing "using" for each variable. That's a
far smaller number of keystrokes.
So there's just not much of an incentive to having it in the language.
>
> > Also, I don't particularly agree with putting multiple variable
> > definitions in a single statement to begin with. It's certainly terse,
> > but it's needlessly terse. Plus, it doesn't work well with 'auto', which
> > is what a lot of my variable definitions are using nowadays.
>
> Mine too and in cases where several variables are of the same type a
> single auto shows that quickly. In the syntax I propose the same would
> hold for template arguments given before using which might also improve
> readability.
>
That constitutes an actual use case, as it saves more than just typing a
keyword.
You should lead with that next time.
Granted, I still don't consider it a good idea. But it would actually be
something useful.
--
---
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_488_634108811.1424360546625
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><br><br>On Tuesday, February 17, 2015 at 2:55:23 PM UTC-5,=
Ilja Honkonen wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;m=
argin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">> &nbs=
p; I don't know whether the ability to avoid typing the keyword doub=
le was
<br>> a conscious decision (in K&R or before, after?),=
if it wasn't then I
<br>> agree that this probably wouldn't be worth the appar=
ently large effort,
<br>> but if it was then similar reasoning might apply her=
e.
<br>>
<br>> Typenames aren't restricted to just "double". They can be long,
<br>> arbitrary, and unwieldy namespace-qualified things. While "using" =
is
<br>> always 5 characters long.
<br>
<br>If I understood your argument correctly the same applies to regular=20
<br>variables: float is always 5 chars long while the value assigned to eac=
h=20
<br>variable can come from a long, namespace-qualified, etc. function.<br><=
/blockquote><div><br>... what?<br><br>My point was that what you're saving =
in the variable case is itself <i>variable</i>. That is, it changes from ca=
se to case. The difference is this:<br><br>Here::Is::A::Very::Long::Typenam=
e a =3D ...;<br>Here::Is::A::Very::Long::Typename b =3D ...;<br>Here::Is::A=
::Very::Long::Typename c =3D ...;<br>Here::Is::A::Very::Long::Typename d =
=3D ...;<br><br>vs.<br><br>Here::Is::A::Very::Long::Typename<br> a =3D=
...,<br> b =3D ...,<br> c =3D ...,<br> d =3D ...;<br><br>In=
this case, you're saving a lot of keystrokes. With your "metavariable" cas=
e, the only thing you save is typing "using" for each variable. That's a fa=
r smaller number of keystrokes.<br><br>So there's just not much of an incen=
tive to having it in the language.<br> </div><blockquote class=3D"gmai=
l_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;=
padding-left: 1ex;">
<br>> Also, I don't particularly agree with putting multiple variable
<br>> definitions in a single statement to begin with. It's certainly te=
rse,
<br>> but it's needlessly terse. Plus, it doesn't work well with 'auto',=
which
<br>> is what a lot of my variable definitions are using nowadays.
<br>
<br>Mine too and in cases where several variables are of the same type a=20
<br>single auto shows that quickly. In the syntax I propose the same would=
=20
<br>hold for template arguments given before using which might also improve=
=20
<br>readability.
<br></blockquote><div><br>That constitutes an actual use case, as it saves =
more than just typing a keyword.<br><br>You should lead with that next time=
..<br><br>Granted, I still don't consider it a good idea. But it would actua=
lly be something useful.<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" 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_488_634108811.1424360546625--
------=_Part_487_1057232927.1424360546624--
.
Author: Douglas Boffey <douglas.boffey@gmail.com>
Date: Thu, 19 Feb 2015 16:34:48 +0000
Raw View
Or
namespace Here::Is::A::Very::Long {
Typename a = ...;
Typename b = ...;
Typename c = ...;
// etc
}
On 2/19/15, Nicol Bolas <jmckesson@gmail.com> wrote:
>
>
> On Tuesday, February 17, 2015 at 2:55:23 PM UTC-5, Ilja Honkonen wrote:
>>
>> > I don't know whether the ability to avoid typing the keyword double
>> >
>> was
>> > a conscious decision (in K&R or before, after?), if it wasn't then I
>> >
>> > agree that this probably wouldn't be worth the apparently large
>> effort,
>> > but if it was then similar reasoning might apply here.
>> >
>> > Typenames aren't restricted to just "double". They can be long,
>> > arbitrary, and unwieldy namespace-qualified things. While "using" is
>> > always 5 characters long.
>>
>> If I understood your argument correctly the same applies to regular
>> variables: float is always 5 chars long while the value assigned to each
>> variable can come from a long, namespace-qualified, etc. function.
>>
>
> ... what?
>
> My point was that what you're saving in the variable case is itself
> *variable*. That is, it changes from case to case. The difference is this:
>
> Here::Is::A::Very::Long::Typename a = ...;
> Here::Is::A::Very::Long::Typename b = ...;
> Here::Is::A::Very::Long::Typename c = ...;
> Here::Is::A::Very::Long::Typename d = ...;
>
> vs.
>
> Here::Is::A::Very::Long::Typename
> a = ...,
> b = ...,
> c = ...,
> d = ...;
>
> In this case, you're saving a lot of keystrokes. With your "metavariable"
> case, the only thing you save is typing "using" for each variable. That's a
>
> far smaller number of keystrokes.
>
> So there's just not much of an incentive to having it in the language.
>
>
>>
>> > Also, I don't particularly agree with putting multiple variable
>> > definitions in a single statement to begin with. It's certainly terse,
>> > but it's needlessly terse. Plus, it doesn't work well with 'auto', which
>> >
>> > is what a lot of my variable definitions are using nowadays.
>>
>> Mine too and in cases where several variables are of the same type a
>> single auto shows that quickly. In the syntax I propose the same would
>> hold for template arguments given before using which might also improve
>> readability.
>>
>
> That constitutes an actual use case, as it saves more than just typing a
> keyword.
>
> You should lead with that next time.
>
> Granted, I still don't consider it a good idea. But it would actually be
> something useful.
>
> --
>
> ---
> 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/.
>
--
---
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/.
.
Author: Tony V E <tvaneerd@gmail.com>
Date: Fri, 20 Feb 2015 15:45:07 -0500
Raw View
--047d7b8746c2b7cff5050f8b2069
Content-Type: text/plain; charset=UTF-8
On Thu, Feb 19, 2015 at 11:34 AM, Douglas Boffey <douglas.boffey@gmail.com>
wrote:
> Or
>
> namespace Here::Is::A::Very::Long {
> Typename a = ...;
> Typename b = ...;
> Typename c = ...;
> // etc
> }
>
>
That puts a,b,c inside that namespace, so not the same.
Also doesn't help with cases like HereIsAVeryLongTypename.
Having said that, I don't think the proposal is worth doing. Not enough
bang for the buck. In fact I think it is "negative bang" - ie I don't want
multiple declarations per line.
Tony
On 2/19/15, Nicol Bolas <jmckesson@gmail.com> wrote:
> >
> >
> > On Tuesday, February 17, 2015 at 2:55:23 PM UTC-5, Ilja Honkonen wrote:
> >>
> >> > I don't know whether the ability to avoid typing the keyword
> double
> >> >
> >> was
> >> > a conscious decision (in K&R or before, after?), if it wasn't
> then I
> >> >
> >> > agree that this probably wouldn't be worth the apparently large
> >> effort,
> >> > but if it was then similar reasoning might apply here.
> >> >
> >> > Typenames aren't restricted to just "double". They can be long,
> >> > arbitrary, and unwieldy namespace-qualified things. While "using" is
> >> > always 5 characters long.
> >>
> >> If I understood your argument correctly the same applies to regular
> >> variables: float is always 5 chars long while the value assigned to each
> >> variable can come from a long, namespace-qualified, etc. function.
> >>
> >
> > ... what?
> >
> > My point was that what you're saving in the variable case is itself
> > *variable*. That is, it changes from case to case. The difference is
> this:
> >
> > Here::Is::A::Very::Long::Typename a = ...;
> > Here::Is::A::Very::Long::Typename b = ...;
> > Here::Is::A::Very::Long::Typename c = ...;
> > Here::Is::A::Very::Long::Typename d = ...;
> >
> > vs.
> >
> > Here::Is::A::Very::Long::Typename
> > a = ...,
> > b = ...,
> > c = ...,
> > d = ...;
> >
> > In this case, you're saving a lot of keystrokes. With your "metavariable"
> > case, the only thing you save is typing "using" for each variable.
> That's a
> >
> > far smaller number of keystrokes.
> >
> > So there's just not much of an incentive to having it in the language.
> >
> >
> >>
> >> > Also, I don't particularly agree with putting multiple variable
> >> > definitions in a single statement to begin with. It's certainly terse,
> >> > but it's needlessly terse. Plus, it doesn't work well with 'auto',
> which
> >> >
> >> > is what a lot of my variable definitions are using nowadays.
> >>
> >> Mine too and in cases where several variables are of the same type a
> >> single auto shows that quickly. In the syntax I propose the same would
> >> hold for template arguments given before using which might also improve
> >> readability.
> >>
> >
> > That constitutes an actual use case, as it saves more than just typing a
> > keyword.
> >
> > You should lead with that next time.
> >
> > Granted, I still don't consider it a good idea. But it would actually be
> > something useful.
> >
> > --
> >
> > ---
> > 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/.
> >
>
> --
>
> ---
> 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/.
>
--
---
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/.
--047d7b8746c2b7cff5050f8b2069
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Thu, Feb 19, 2015 at 11:34 AM, Douglas Boffey <span dir=3D"ltr"><=
<a href=3D"mailto:douglas.boffey@gmail.com" target=3D"_blank">douglas.boffe=
y@gmail.com</a>></span> wrote:<br><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Or<br>
<br>
namespace Here::Is::A::Very::Long {<br>
=C2=A0 Typename a =3D ...;<br>
=C2=A0 Typename b =3D ...;<br>
=C2=A0 Typename c =3D ...;<br>
=C2=A0 // etc<br>
<span class=3D"">}<br>
<br></span></blockquote><div><br></div><div>That puts a,b,c inside that nam=
espace, so not the same.<br></div><div>Also doesn't help with cases lik=
e HereIsAVeryLongTypename.<br><br></div><div>Having said that, I don't =
think the proposal is worth doing.=C2=A0 Not enough bang for the buck.=C2=
=A0 In fact I think it is "negative bang" - ie I don't want m=
ultiple declarations per line.<br><br></div><div>Tony<br><br></div><div> <b=
r></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border=
-left:1px #ccc solid;padding-left:1ex"><span class=3D"">
On 2/19/15, Nicol Bolas <<a href=3D"mailto:jmckesson@gmail.com">jmckesso=
n@gmail.com</a>> wrote:<br>
><br>
><br>
> On Tuesday, February 17, 2015 at 2:55:23 PM UTC-5, Ilja Honkonen wrote=
:<br>
>><br>
>> >=C2=A0 =C2=A0 =C2=A0I don't know whether the ability to av=
oid typing the keyword double<br>
>> ><br>
>> was<br>
>> >=C2=A0 =C2=A0 =C2=A0a conscious decision (in K&R or before=
, after?), if it wasn't then I<br>
>> ><br>
>> >=C2=A0 =C2=A0 =C2=A0agree that this probably wouldn't be w=
orth the apparently large<br>
>> effort,<br>
>> >=C2=A0 =C2=A0 =C2=A0but if it was then similar reasoning might=
apply here.<br>
>> ><br>
>> > Typenames aren't restricted to just "double". T=
hey can be long,<br>
>> > arbitrary, and unwieldy namespace-qualified things. While &qu=
ot;using" is<br>
>> > always 5 characters long.<br>
>><br>
>> If I understood your argument correctly the same applies to regula=
r<br>
>> variables: float is always 5 chars long while the value assigned t=
o each<br>
>> variable can come from a long, namespace-qualified, etc. function.=
<br>
>><br>
><br>
> ... what?<br>
><br>
> My point was that what you're saving in the variable case is itsel=
f<br>
</span>> *variable*. That is, it changes from case to case. The differen=
ce is this:<br>
<div class=3D"HOEnZb"><div class=3D"h5">><br>
> Here::Is::A::Very::Long::Typename a =3D ...;<br>
> Here::Is::A::Very::Long::Typename b =3D ...;<br>
> Here::Is::A::Very::Long::Typename c =3D ...;<br>
> Here::Is::A::Very::Long::Typename d =3D ...;<br>
><br>
> vs.<br>
><br>
> Here::Is::A::Very::Long::Typename<br>
>=C2=A0 a =3D ...,<br>
>=C2=A0 b =3D ...,<br>
>=C2=A0 c =3D ...,<br>
>=C2=A0 d =3D ...;<br>
><br>
> In this case, you're saving a lot of keystrokes. With your "m=
etavariable"<br>
> case, the only thing you save is typing "using" for each var=
iable. That's a<br>
><br>
> far smaller number of keystrokes.<br>
><br>
> So there's just not much of an incentive to having it in the langu=
age.<br>
><br>
><br>
>><br>
>> > Also, I don't particularly agree with putting multiple va=
riable<br>
>> > definitions in a single statement to begin with. It's cer=
tainly terse,<br>
>> > but it's needlessly terse. Plus, it doesn't work well=
with 'auto', which<br>
>> ><br>
>> > is what a lot of my variable definitions are using nowadays.<=
br>
>><br>
>> Mine too and in cases where several variables are of the same type=
a<br>
>> single auto shows that quickly. In the syntax I propose the same w=
ould<br>
>> hold for template arguments given before using which might also im=
prove<br>
>> readability.<br>
>><br>
><br>
> That constitutes an actual use case, as it saves more than just typing=
a<br>
> keyword.<br>
><br>
> You should lead with that next time.<br>
><br>
> Granted, I still don't consider it a good idea. But it would actua=
lly be<br>
> something useful.<br>
><br>
> --<br>
><br>
> ---<br>
> You received this message because you are subscribed to the Google Gro=
ups<br>
> "ISO C++ Standard - Future Proposals" group.<br>
> To unsubscribe from this group and stop receiving emails from it, send=
an<br>
> email to <a href=3D"mailto:std-proposals%2Bunsubscribe@isocpp.org">std=
-proposals+unsubscribe@isocpp.org</a>.<br>
> To post to this group, send email to <a href=3D"mailto:std-proposals@i=
socpp.org">std-proposals@isocpp.org</a>.<br>
> Visit this group at<br>
> <a href=3D"http://groups.google.com/a/isocpp.org/group/std-proposals/"=
target=3D"_blank">http://groups.google.com/a/isocpp.org/group/std-proposal=
s/</a>.<br>
><br>
<br>
--<br>
<br>
---<br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals%2Bunsubscribe@isocpp.org">std-propo=
sals+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/" target=3D"_blank">http://groups.google.com/a/isocpp.org/gro=
up/std-proposals/</a>.<br>
</div></div></blockquote></div><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" 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 />
--047d7b8746c2b7cff5050f8b2069--
.