Topic: Concept-defined placeholder type
Author: Zhihao Yuan <zy@miator.net>
Date: Wed, 11 Jul 2018 20:53:47 -0400
Raw View
This is a multi-part message in MIME format.
--b1_5c72e06cfa02d813d4a7a3b406cc737d
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Hi, folks:
I=E2=80=99m drafting the paper to propose
BidirectionalIterator T;
T it =3D foo();
https://hackmd.io/s/SkyQwe47Q#
Currently missing technical description, but I tried to
explain some major points in =E2=80=9CDesign Decisions.=E2=80=9D
Comments are welcome, especially criticisms.
--
Zhihao Yuan, ID lichray
The best way to predict the future is to invent it.
_______________________________________________
--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/wKt6BIikQ9kr3u_mQ2oR1vvx8Uj7JLabshrk6DkzkFXpExhO=
UcFUc_LbGjzKQ9Z_nsrjEQrvTE5d7-8FgpX_Q-dyOVcAUaiZdsCZZsX0ctQ%3D%40miator.net=
..
--b1_5c72e06cfa02d813d4a7a3b406cc737d
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<html><head></head><body><div class=3D"WordSection1"><p class=3D"MsoNormal"=
>Hi, folks:<br/><br/>I=E2=80=99m drafting the paper to propose<br/><br/><o:=
p></o:p></p><p class=3D"MsoNormal" style=3D"text-indent:10.15pt">Bidirectio=
nalIterator T;<o:p></o:p></p><p class=3D"MsoNormal" style=3D"text-indent:10=
..15pt">T it =3D foo();<o:p></o:p></p><p class=3D"MsoNormal"><br/>=C2=A0 <a =
href=3D"https://hackmd.io/s/SkyQwe47Q#">https://hackmd.io/s/SkyQwe47Q#</a><=
o:p></o:p></p><p class=3D"MsoNormal"><br/>Currently missing technical descr=
iption, but I tried to<br/>explain some major points in =E2=80=9CDesign Dec=
isions.=E2=80=9D<br/>Comments are welcome, especially criticisms.<o:p></o:p=
></p><p class=3D"MsoNormal"><o:p>=C2=A0</o:p></p><p class=3D"MsoNormal">--<=
br/>Zhihao Yuan, ID lichray<br/>The best way to predict the future is to in=
vent it.<br/>_______________________________________________<o:p></o:p></p>=
<p class=3D"MsoNormal"><o:p>=C2=A0</o:p></p></div></body></html>
<p></p>
-- <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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/wKt6BIikQ9kr3u_mQ2oR1vvx8Uj7JLabshrk6=
DkzkFXpExhOUcFUc_LbGjzKQ9Z_nsrjEQrvTE5d7-8FgpX_Q-dyOVcAUaiZdsCZZsX0ctQ%3D%4=
0miator.net?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/wKt6BIikQ9kr3u_mQ2oR1vvx8Uj7JLabshrk6=
DkzkFXpExhOUcFUc_LbGjzKQ9Z_nsrjEQrvTE5d7-8FgpX_Q-dyOVcAUaiZdsCZZsX0ctQ%3D%4=
0miator.net</a>.<br />
--b1_5c72e06cfa02d813d4a7a3b406cc737d--
.
Author: Nicol Bolas <jmckesson@gmail.com>
Date: Wed, 11 Jul 2018 22:24:53 -0700 (PDT)
Raw View
------=_Part_6501_2081629230.1531373094081
Content-Type: multipart/alternative;
boundary="----=_Part_6502_921809746.1531373094081"
------=_Part_6502_921809746.1531373094081
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
On Wednesday, July 11, 2018 at 8:53:53 PM UTC-4, Zhihao Yuan wrote:
>
> Hi, folks:
>
> I=E2=80=99m drafting the paper to propose
>
> BidirectionalIterator T;
>
> T it =3D foo();
>
>
> https://hackmd.io/s/SkyQwe47Q#
>
>
> Currently missing technical description, but I tried to
> explain some major points in =E2=80=9CDesign Decisions.=E2=80=9D
> Comments are welcome, especially criticisms.
>
1. Pedantry
From the proposal:
Look at this T, it is
>
> * a =E2=80=9Cplaceholder type=E2=80=9D for deduction,
> * constrained
>
The `T` is certainly constrained in that example. But it is most assuredly=
=20
*not* "a 'placeholder type' for deduction".
The term "placeholder type" is a standard-defined term with a=20
well-specified meaning, and the `T` in a contained template parameter isn't=
=20
one. C++ has exactly 2 placeholder types: `auto` and `decltype(auto)`. `T`=
=20
is merely a constrained template parameter.
This may seem overly pedantic, but you are making a proposal for C++=20
standardization. Pedantry is kind of expected.
This construct isn't even "conceptually" a placeholder type. Why? Because=
=20
you don't *have* to deduce its type via template argument deduction. You=20
can just call the function with an explicit template parameter. No=20
deduction will take place, since you explicitly provided the type.
I know you're trying to make an analogy between template parameters and=20
your feature. But that analogy simply doesn't match reality. Your feature=
=20
is, in the end, quite distinct from a template parameter.
2. The elephant in the room:
You lay out decent motivation for a solution within the domain of deduced=
=20
variables constrained by concepts. But your Introduction section seems to=
=20
say a lot by omission.
Despite the fact that your proposal references P0915 directly, your=20
proposal is written as if in a vacuum. That is, it's written as if there=20
are no competing proposals within this design space at all. As if Concepts=
=20
TS had no mechanism for doing this. As if Bjarne Stroustrup hasn't been=20
trying for *years* to get us a method for doing this. As if Herb Sutter=20
hasn't proposed a mechanism that is effectively equivalent to your own. As=
=20
if there aren't at least *three other proposals* in this domain that I=20
haven't even mentioned.
Yours is only the most recent in a long line of proposals that handle the=
=20
problem you cite (they may handle others, but they definitely cover yours).=
=20
I would expect that any proposal in such a well-established domain to=20
acknowledge that competition *exists* at the very least. I would prefer=20
that it compare and contrast its approaches to the others and therefore=20
justify itself as better or worse than the alternatives in some way.
It seems really bizarre to propose something that has had this much debate=
=20
without ever talking about that debate. It'd be like throwing out your own=
=20
`variant` proposal and design pre-C++17, but without ever talking about any=
=20
of the 10+ revisions of the other `variant` type being proposed.
3. Technicalities
Your proposal says:
A *constrained-type-name* is a concrete type in non-deduced context after=
=20
> its point of declaration, regardless whether the use comes before or afte=
r=20
> a deduced context.
>
How is that even possible?
This works in a template because those parameters get filled in at template=
=20
instantiation time. The entire template mechanism is built on this concept,=
=20
and these rules are very complex. But you're not (necessarily) in a=20
template when you create one of these. So, how does this work?
Is the compiler supposed to just compile a bunch of tokens until it figures=
=20
out what type to deduce, then go back and plug that stuff in? Because some=
=20
of that can provoke compile errors. Retroactive compile errors:
SomeConcept T;
static_assert(sizeof(T) > 4);
T t =3D 'c';
I'm not saying its unimplementable. But I'm a lot more certain of the=20
implementablity of basically every *other* proposal in this design space=20
than this one, thanks to this clause.
4. The actual design
OK, so you are a user. You want to constrain a deduced variable with a=20
template. To do that, you have to make an declaration, which declares a=20
constrained typename. After all of that, then you can apply that typename=
=20
to the actual variable you want to deduce. That is, you're forced to write=
=20
two statements, introducing two names, when you only really needed one=20
statement/name.
Are there cases where you want that typename? *Absolutely*. But the thing=
=20
is... every other proposal in this domain can give you that too. And in=20
those proposals, you also use two statements, so it's not like you lose any=
=20
expressive power with them:
auto<ConceptName> p0915 =3D ...;
using C =3D decltype(p0915);
ConceptName{C} p0745 =3D ...;
ConceptName conceptsTS =3D ...;
using C =3D decltype(conceptsTS);
ConceptName auto p1141 =3D ...;
using C =3D decltype(p1141);
With the exception of Herb's in-place syntax, all of these proposals allow=
=20
you to constrain a deduced variable and get a typename for it using two=20
separate statements. They're exactly equivalent to yours in operation.
But, because getting a typename happens after the variable creation, you=20
don't actually have to do it. So if you don't need a typename (which, let's=
=20
be honest, is quite a lot of the time), you get to use shorter syntax.
Your syntax *forces* me to create a typename even if I don't want one.
Even worse, if I don't want to constrain a deduced variable, I have to=20
resort to the above `decltype` idiom to gain access to it (or use some kind=
=20
of unconstrained concept). So it's inconsistent; I get to use the "nicer"=
=20
syntax only if I want to constrain something. These other syntaxes are=20
perfectly regular; because their "get a typename" technique uses existing=
=20
C++ tools, the constrained and unconstrained cases are identical.
--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/0fe92570-1bc7-4a8b-aaf4-b272950f20af%40isocpp.or=
g.
------=_Part_6502_921809746.1531373094081
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><br><br>On Wednesday, July 11, 2018 at 8:53:53 PM UTC-4, Z=
hihao Yuan wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margi=
n-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div><div><p =
class=3D"MsoNormal">Hi, folks:<br><br>I=E2=80=99m drafting the paper to pro=
pose<br><br></p><p class=3D"MsoNormal" style=3D"text-indent:10.15pt">Bidire=
ctionalIterator T;</p><p class=3D"MsoNormal" style=3D"text-indent:10.15pt">=
T it =3D foo();</p><p class=3D"MsoNormal"><br>=C2=A0 <a href=3D"https://hac=
kmd.io/s/SkyQwe47Q#" target=3D"_blank" rel=3D"nofollow" onmousedown=3D"this=
..href=3D'https://www.google.com/url?q\x3dhttps%3A%2F%2Fhackmd.io%2Fs%2F=
SkyQwe47Q%23\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGyAPux_QE_3gsZ2w1Kq6CQ=
DH5SMQ';return true;" onclick=3D"this.href=3D'https://www.google.co=
m/url?q\x3dhttps%3A%2F%2Fhackmd.io%2Fs%2FSkyQwe47Q%23\x26sa\x3dD\x26sntz\x3=
d1\x26usg\x3dAFQjCNGyAPux_QE_3gsZ2w1Kq6CQDH5SMQ';return true;">https://=
hackmd.io/s/SkyQwe47Q#</a></p><p class=3D"MsoNormal"><br>Currently missing =
technical description, but I tried to<br>explain some major points in =E2=
=80=9CDesign Decisions.=E2=80=9D<br>Comments are welcome, especially critic=
isms.</p></div></div></blockquote><div></div><div><br></div><div>1. Pedantr=
y</div><div><br></div><div>From the proposal:<br></div><div><br></div><bloc=
kquote class=3D"gmail_quote" style=3D"margin: 0px 0px 0px 0.8ex; border-lef=
t: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div>Look at this T, i=
t is<br><br>* a =E2=80=9Cplaceholder type=E2=80=9D for deduction,<br>* cons=
trained</div></blockquote><div><br></div><div>The `T` is certainly constrai=
ned in that example. But it is most assuredly <i>not</i> "a 'place=
holder type' for deduction".</div><div><br></div><div>The term &qu=
ot;placeholder type" is a standard-defined term with a well-specified =
meaning, and the `T` in a contained template parameter isn't one. C++ h=
as exactly 2 placeholder types: `auto` and `decltype(auto)`. `T` is merely =
a constrained template parameter.</div><div><br></div><div>This may seem ov=
erly pedantic, but you are making a proposal for C++ standardization. Pedan=
try is kind of expected.<br></div><div><br></div><div>This construct isn=
9;t even "conceptually" a placeholder type. Why? Because you don&=
#39;t <i>have</i> to deduce its type via template argument deduction. You c=
an just call the function with an explicit template parameter. No deduction=
will take place, since you explicitly provided the type.</div><div><br></d=
iv><div>I know you're trying to make an analogy between template parame=
ters and your feature. But that analogy simply doesn't match reality. Y=
our feature is, in the end, quite distinct from a template parameter.<br></=
div><div><br></div><div>2. The elephant in the room:</div><div><br></div><d=
iv>You lay out decent motivation for a solution within the domain of deduce=
d variables constrained by concepts. But your Introduction section seems to=
say a lot by omission.<br></div><div><br></div><div>Despite the fact that =
your proposal references P0915 directly, your proposal is written as if in =
a vacuum. That is, it's written as if there are no competing proposals =
within this design space at all. As if Concepts TS had no mechanism for doi=
ng this. As if Bjarne Stroustrup hasn't been trying for <i>years</i> to=
get us a method for doing this. As if Herb Sutter hasn't proposed a me=
chanism that is effectively equivalent to your own. As if there aren't =
at least <i>three other proposals</i> in this domain that I haven't eve=
n mentioned.</div><div><br></div><div>Yours is only the most recent in a lo=
ng line of proposals that handle the problem you cite (they may handle othe=
rs, but they definitely cover yours). I would expect that any proposal in s=
uch a well-established domain to acknowledge that competition <i>exists</i>=
at the very least. I would prefer that it compare and contrast its approac=
hes to the others and therefore justify itself as better or worse than the =
alternatives in some way.</div><div><br></div><div>It seems really bizarre =
to propose something that has had this much debate without ever talking abo=
ut that debate. It'd be like throwing out your own `variant` proposal a=
nd design pre-C++17, but without ever talking about any of the 10+ revision=
s of the other `variant` type being proposed.</div><br><div>3. Technicaliti=
es</div><div><br></div><div>Your proposal says:</div><div><br></div><blockq=
uote class=3D"gmail_quote" style=3D"margin: 0px 0px 0px 0.8ex; border-left:=
1px solid rgb(204, 204, 204); padding-left: 1ex;"><div>A <em>constrained-t=
ype-name</em> is a concrete type in non-deduced=20
context after its point of declaration, regardless whether the use comes
before or after a deduced context.</div></blockquote><div><br></div><div>H=
ow is that even possible?</div><div><br></div><div>This works in a template=
because those parameters get filled in at template instantiation time. The=
entire template mechanism is built on this concept, and these rules are ve=
ry complex. But you're not (necessarily) in a template when you create =
one of these. So, how does this work?</div><div><br></div><div>Is the compi=
ler supposed to just compile a bunch of tokens until it figures out what ty=
pe to deduce, then go back and plug that stuff in? Because some of that can=
provoke compile errors. Retroactive compile errors:<br></div><div><br></di=
v><div style=3D"background-color: rgb(250, 250, 250); border-color: rgb(187=
, 187, 187); border-style: solid; border-width: 1px; overflow-wrap: break-w=
ord;" class=3D"prettyprint"><code class=3D"prettyprint"><div class=3D"subpr=
ettyprint"><span style=3D"color: #606;" class=3D"styled-by-prettify">SomeCo=
ncept</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> T</s=
pan><span style=3D"color: #660;" class=3D"styled-by-prettify">;</span><span=
style=3D"color: #000;" class=3D"styled-by-prettify"><br></span><span style=
=3D"color: #008;" class=3D"styled-by-prettify">static_assert</span><span st=
yle=3D"color: #660;" class=3D"styled-by-prettify">(</span><span style=3D"co=
lor: #008;" class=3D"styled-by-prettify">sizeof</span><span style=3D"color:=
#660;" class=3D"styled-by-prettify">(</span><span style=3D"color: #000;" c=
lass=3D"styled-by-prettify">T</span><span style=3D"color: #660;" class=3D"s=
tyled-by-prettify">)</span><span style=3D"color: #000;" class=3D"styled-by-=
prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify"=
>></span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </sp=
an><span style=3D"color: #066;" class=3D"styled-by-prettify">4</span><span =
style=3D"color: #660;" class=3D"styled-by-prettify">);</span><span style=3D=
"color: #000;" class=3D"styled-by-prettify"><br>T t </span><span style=3D"c=
olor: #660;" class=3D"styled-by-prettify">=3D</span><span style=3D"color: #=
000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #080;" cla=
ss=3D"styled-by-prettify">'c'</span><span style=3D"color: #660;" cl=
ass=3D"styled-by-prettify">;</span></div></code></div><div><br></div><div>I=
'm not saying its unimplementable. But I'm a lot more certain of th=
e implementablity of basically every <i>other</i> proposal in this design s=
pace than this one, thanks to this clause.</div><div><br></div><div>4. The =
actual design<br></div><div><br></div><div>OK, so you are a user. You want =
to constrain a deduced variable with a template. To do that, you have to ma=
ke an declaration, which declares a constrained typename. After all of that=
, then you can apply that typename to the actual variable you want to deduc=
e. That is, you're forced to write two statements, introducing two name=
s, when you only really needed one statement/name.</div><div><br></div><div=
>Are there cases where you want that typename? <i>Absolutely</i>. But the t=
hing is... every other proposal in this domain can give you that too. And i=
n those proposals, you also use two statements, so it's not like you lo=
se any expressive power with them:<br></div><div><br></div><div></div><div =
style=3D"background-color: rgb(250, 250, 250); border-color: rgb(187, 187, =
187); border-style: solid; border-width: 1px; overflow-wrap: break-word;" c=
lass=3D"prettyprint"><code class=3D"prettyprint"><div class=3D"subprettypri=
nt"><span style=3D"color: #008;" class=3D"styled-by-prettify">auto</span><s=
pan style=3D"color: #660;" class=3D"styled-by-prettify"><</span><span st=
yle=3D"color: #606;" class=3D"styled-by-prettify">ConceptName</span><span s=
tyle=3D"color: #660;" class=3D"styled-by-prettify">></span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> p0915 </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: #660;" c=
lass=3D"styled-by-prettify">...;</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"><br></span><span style=3D"color: #008;" class=3D"st=
yled-by-prettify">using</span><span style=3D"color: #000;" class=3D"styled-=
by-prettify"> C </span><span style=3D"color: #660;" class=3D"styled-by-pret=
tify">=3D</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> =
</span><span style=3D"color: #008;" class=3D"styled-by-prettify">decltype</=
span><span style=3D"color: #660;" class=3D"styled-by-prettify">(</span><spa=
n style=3D"color: #000;" class=3D"styled-by-prettify">p0915</span><span sty=
le=3D"color: #660;" class=3D"styled-by-prettify">);</span><span style=3D"co=
lor: #000;" class=3D"styled-by-prettify"><br><br></span><span style=3D"colo=
r: #606;" class=3D"styled-by-prettify">ConceptName</span><span style=3D"col=
or: #660;" class=3D"styled-by-prettify">{</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"style=
d-by-prettify"> p0745 </span><span style=3D"color: #660;" class=3D"styled-b=
y-prettify">=3D</span><span style=3D"color: #000;" class=3D"styled-by-prett=
ify"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify">...;=
</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br><br></=
span><span style=3D"color: #606;" class=3D"styled-by-prettify">ConceptName<=
/span><span style=3D"color: #000;" class=3D"styled-by-prettify"> conceptsTS=
</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 st=
yle=3D"color: #660;" class=3D"styled-by-prettify">...;</span><span style=3D=
"color: #000;" class=3D"styled-by-prettify"><br></span><span style=3D"color=
: #008;" class=3D"styled-by-prettify">using</span><span style=3D"color: #00=
0;" class=3D"styled-by-prettify"> C </span><span style=3D"color: #660;" cla=
ss=3D"styled-by-prettify">=3D</span><span style=3D"color: #000;" class=3D"s=
tyled-by-prettify"> </span><span style=3D"color: #008;" class=3D"styled-by-=
prettify">decltype</span><span style=3D"color: #660;" class=3D"styled-by-pr=
ettify">(</span><span style=3D"color: #000;" class=3D"styled-by-prettify">c=
onceptsTS</span><span style=3D"color: #660;" class=3D"styled-by-prettify">)=
;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br><br><=
/span><span style=3D"color: #606;" class=3D"styled-by-prettify">ConceptName=
</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><s=
pan style=3D"color: #008;" class=3D"styled-by-prettify">auto</span><span st=
yle=3D"color: #000;" class=3D"styled-by-prettify"> p1141 </span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">=3D</span><span style=3D"col=
or: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #660;=
" class=3D"styled-by-prettify">...;</span><span style=3D"color: #000;" clas=
s=3D"styled-by-prettify"><br></span><span style=3D"color: #008;" class=3D"s=
tyled-by-prettify">using</span><span style=3D"color: #000;" class=3D"styled=
-by-prettify"> C </span><span style=3D"color: #660;" class=3D"styled-by-pre=
ttify">=3D</span><span style=3D"color: #000;" class=3D"styled-by-prettify">=
</span><span style=3D"color: #008;" class=3D"styled-by-prettify">decltype<=
/span><span style=3D"color: #660;" class=3D"styled-by-prettify">(</span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify">p1141</span><span st=
yle=3D"color: #660;" class=3D"styled-by-prettify">);</span></div></code></d=
iv><div><br></div><div>With the exception of Herb's in-place syntax, al=
l of these proposals allow you to constrain a deduced variable and get a ty=
pename for it using two separate statements. They're exactly equivalent=
to yours in operation.</div><div><br></div><div>But, because getting a typ=
ename happens after the variable creation, you don't actually have to d=
o it. So if you don't need a typename (which, let's be honest, is q=
uite a lot of the time), you get to use shorter syntax.</div><div><br></div=
><div>Your syntax <i>forces</i> me to create a typename even if I don't=
want one.</div><div><br></div><div>Even worse, if I don't want to cons=
train a deduced variable, I have to resort to the above `decltype` idiom to=
gain access to it (or use some kind of unconstrained concept). So it's=
inconsistent; I get to use the "nicer" syntax only if I want to =
constrain something. These other syntaxes are perfectly regular; because th=
eir "get a typename" technique uses existing C++ tools, the const=
rained and unconstrained cases are identical.<br></div></div>
<p></p>
-- <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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/0fe92570-1bc7-4a8b-aaf4-b272950f20af%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/0fe92570-1bc7-4a8b-aaf4-b272950f20af=
%40isocpp.org</a>.<br />
------=_Part_6502_921809746.1531373094081--
------=_Part_6501_2081629230.1531373094081--
.
Author: Zhihao Yuan <zy@miator.net>
Date: Thu, 12 Jul 2018 03:40:56 -0400
Raw View
From: Nicol Bolas <jmckesson@gmail.com>=20
Sent: Thursday, July 12, 2018 12:25 AM
> This construct isn't even "conceptually" a placeholder type. Why? Because=
you don't have to deduce its type via template argument deduction. You can=
just call the function with an explicit template parameter. No deduction w=
ill take place, since you explicitly provided the type.
>=20
> I know you're trying to make an analogy between template parameters and y=
our feature. But that analogy simply doesn't match reality. Your feature is=
, in the end, quite distinct from a template parameter.
Based on your logic, does the analog matches reality
if we allow
Copyable T;
using T =3D char;
assigning a type directly to the constrained-type-name
without deduction? I would say these are all additional
functionalities regarding "something" in place of a type
which can be deduced. These functionalities do not
change the entities' nature.
> Despite the fact that your proposal references P0915 directly, your propo=
sal is written as if in a vacuum. That is, it's written as if there are no =
competing proposals within this design space at all.
We are not actually competing. Take Concept TS for
example,
Copyable T;
T x =3D foo();
Copyable x =3D foo();
strictly speaking, they can coexist. Adding an 'auto'
can also be justified. I can mention some of those
papers, but I haven't decided which form... Thanks
for the review.
> Retroactive compile errors:
>=20
> SomeConcept T;
> static_assert(sizeof(T) > 4);
> T t =3D 'c';
>=20
> I'm not saying its unimplementable. [...]
If implementors says no then it's no, I just feel this
model is easier to understand (you declared
something, then its interpretation follows the same
rule on every line that can lookup the thing you
declared).
> Your syntax forces me to create a typename even if I don't want one.
We don't have enough C++20 code to tell whether
this is a real issue. I can raise a hypophysis saying
"repeated constraints happens frequently:"
Iterator T;
T a =3D begin(...);
// ...
T ed =3D find(...);
and we don't have data to disprove that either.
After we have the data, it's not too late to adjust
designs. Meanwhile, other designs cannot extend
to support constraining two variables that are
"EqualityComparable" afaict.
> Even worse, if I don't want to constrain a deduced variable,
template <class T> concept Any =3D true;
Any T;
T a =3D ...;
--
Zhihao Yuan, ID lichray
The best way to predict the future is to invent it.
_______________________________________________
--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/HuI7FbT9Wv5a-_FWIr0Qhv9zmtfCrxYpONZ4G93vbE_K0pyk=
o8Cri_ItEQhSio6bj6XfcssQc2UnmMTb93BpZaB1Ksw7q0GN0vS14warHAc%3D%40miator.net=
..
.
Author: mihailnajdenov@gmail.com
Date: Thu, 12 Jul 2018 02:58:07 -0700 (PDT)
Raw View
------=_Part_21839_907572879.1531389488057
Content-Type: multipart/alternative;
boundary="----=_Part_21840_1981265464.1531389488058"
------=_Part_21840_1981265464.1531389488058
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Hi,
I actually agree with some of the points Bolas made.
The placeholder tripped me quite a bid, I almost ignored the topic. It=20
should be some sort of "introducing type(name)" or something=20
Kind of agree with point two also - there is a ton work done and it should=
=20
be compared and contrasted.
*Or* - the variant I prefer
Motivate why separating the type intro from its deduction is good. Although=
=20
I agree with the direction, I personably could not motivate it myself!
I failed to do so, outside some sort of consistency with class Class; and=
=20
going away from 2-in-on decls.=20
I can motivate Concept T var / arg, but what is the real gain of separate=
=20
type introduction?
I thought hard to motivate it using variable instantiation orthogonality=20
auto func()
{=20
Type var;
if(something)
var =3D . . .;
else
var =3D . . .;
// use var;
}=20
With types
template<. . .>
auto func()
{=20
Concept Type;
if constexpr(something)
Type var =3D . . .;
else
Type var =3D . . .;
// use Type;
}=20
But this works even if Concept Type is introduced in scope (other means=20
included)!=20
if constexpr - will physically remove the scopes altogether. And if it is=
=20
*not* a constexpr if, then we could init it outside of scope by other means
Introduction-not-initialization needs motivation outside constrained types.
I fail to find one myself and the paper didn't help me with that.=20
I, personally, will gladly live with two-in-one declarations, then to=20
wonder when is the type name bound to a concrete type if there is no=20
benefit.
Lastly, considering Concept auto is backed so heavily, advocating allowing=
=20
auto to be a type name (which has material benefits right now) seems easier=
=20
battle, *then* advocating allowing introduction-without-initialization.
This is the way I see it.=20
PS
namespace n {
StandardLayoutType T; //< allowed?
template <typename Producer>
void uploadToGPU(Producer& producer)
{
T item =3D producer.next();
}
void bar(T&&) //< guess it works, bar is a template, but... yeah :)=20
{
=20
}
}//< n
On Thursday, July 12, 2018 at 3:53:53 AM UTC+3, Zhihao Yuan wrote:
>
> Hi, folks:
>
> I=E2=80=99m drafting the paper to propose
>
> BidirectionalIterator T;
>
> T it =3D foo();
>
>
> https://hackmd.io/s/SkyQwe47Q#
>
>
> Currently missing technical description, but I tried to
> explain some major points in =E2=80=9CDesign Decisions.=E2=80=9D
> Comments are welcome, especially criticisms.
>
> =20
>
> --
> Zhihao Yuan, ID lichray
> The best way to predict the future is to invent it.
> _______________________________________________
>
> =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.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/f4f2a1ca-63c1-4e33-8c0c-cf1ae244a3b5%40isocpp.or=
g.
------=_Part_21840_1981265464.1531389488058
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div>Hi,</div><div><br></div><div>I actually agree with so=
me of the points Bolas made.</div><div><br></div><div>The placeholder tripp=
ed me quite a bid, I almost ignored the topic. It should be some sort of &q=
uot;introducing type(name)" or something=C2=A0</div><div><br></div><di=
v>Kind of agree with point two also - there is a ton work done and it shoul=
d be compared and contrasted.</div><div><br></div><div><i>Or</i> - the vari=
ant I prefer</div><div><br></div><div>Motivate why separating the type intr=
o from its deduction is good. Although I agree with the direction, I person=
ably could not motivate it myself!</div><div><br></div><div>I failed to do =
so, outside some sort of consistency with <font face=3D"courier new,monospa=
ce">class Class; </font><font face=3D"arial,sans-serif">and going away from=
2-in-on decls</font>.=C2=A0</div><div>I can motivate <font face=3D"courier=
new,monospace">Concept T var</font> / <span style=3D"display: inline !impo=
rtant; float: none; background-color: transparent; color: rgb(34, 34, 34); =
font-family: "Arial","Helvetica",sans-serif; font-size:=
13px; font-style: normal; font-variant: normal; font-weight: 400; letter-s=
pacing: normal; orphans: 2; text-align: left; text-decoration: none; text-i=
ndent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-spa=
ce: normal; word-spacing: 0px;"><font face=3D"courier new,monospace">arg</f=
ont>, but what is the real gain of separate type introduction?</span></div>=
<div><b></b><i></i><u></u><sub></sub><sup></sup><strike></strike><br></div>=
<div>I thought hard to motivate it using variable instantiation orthogonali=
ty=C2=A0</div><div><br></div><div><font face=3D"courier new,monospace">auto=
func()</font></div><div><font face=3D"courier new,monospace">{=C2=A0</font=
></div><div><font face=3D"courier new,monospace">=C2=A0 Type var;</font></d=
iv><div><font face=3D"courier new,monospace"></font><br></div><div><font fa=
ce=3D"courier new,monospace">=C2=A0 if(something)</font></div><div><font fa=
ce=3D"courier new,monospace">=C2=A0 =C2=A0 var =3D . . .;</font></div><div>=
<font face=3D"courier new,monospace">=C2=A0 else</font></div><div><font fac=
e=3D"courier new,monospace">=C2=A0 =C2=A0 var =3D . . .;</font></div><div><=
font face=3D"courier new,monospace"><br></font></div><div><font face=3D"cou=
rier new,monospace">=C2=A0 // use var;</font></div><div><font face=3D"couri=
er new,monospace">}=C2=A0</font></div><div><font face=3D"courier new,monosp=
ace"><br></font></div><div><font face=3D"arial,sans-serif">With types</font=
></div><div><font face=3D"courier new,monospace"><font face=3D"arial,sans-s=
erif"></font><br></font></div><div><font face=3D"courier new,monospace">tem=
plate<. . .></font></div><div><font face=3D"courier new,monospace"><d=
iv style=3D"background-color: transparent; border-bottom-color: rgb(34, 34,=
34); border-bottom-style: none; border-bottom-width: 0px; border-image-out=
set: 0; border-image-repeat: stretch; border-image-slice: 100%; border-imag=
e-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); =
border-left-style: none; border-left-width: 0px; border-right-color: rgb(34=
, 34, 34); border-right-style: none; border-right-width: 0px; border-top-co=
lor: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; color:=
rgb(34, 34, 34); font-family: &quot;Arial&quot;,&quot;Helvetic=
a&quot;,sans-serif; font-size: 13px; font-style: normal; font-variant: =
normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margi=
n-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom=
: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align:=
left; text-decoration: none; text-indent: 0px; text-transform: none; -webk=
it-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><font f=
ace=3D"courier new,monospace" style=3D"border-bottom-color: rgb(34, 34, 34)=
; border-bottom-style: none; border-bottom-width: 0px; border-image-outset:=
0; border-image-repeat: stretch; border-image-slice: 100%; border-image-so=
urce: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); bord=
er-left-style: none; border-left-width: 0px; border-right-color: rgb(34, 34=
, 34); border-right-style: none; border-right-width: 0px; border-top-color:=
rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; margin-bot=
tom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bot=
tom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">auto fu=
nc()</font></div><div style=3D"background-color: transparent; border-bottom=
-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0p=
x; border-image-outset: 0; border-image-repeat: stretch; border-image-slice=
: 100%; border-image-source: none; border-image-width: 1; border-left-color=
: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; border-=
right-color: rgb(34, 34, 34); border-right-style: none; border-right-width:=
0px; border-top-color: rgb(34, 34, 34); border-top-style: none; border-top=
-width: 0px; color: rgb(34, 34, 34); font-family: &quot;Arial&quot;=
,&quot;Helvetica&quot;,sans-serif; font-size: 13px; font-style: nor=
mal; font-variant: normal; font-weight: 400; letter-spacing: normal; margin=
-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans=
: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-to=
p: 0px; text-align: left; text-decoration: none; text-indent: 0px; text-tra=
nsform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spa=
cing: 0px;"><font face=3D"courier new,monospace" style=3D"border-bottom-col=
or: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; b=
order-image-outset: 0; border-image-repeat: stretch; border-image-slice: 10=
0%; border-image-source: none; border-image-width: 1; border-left-color: rg=
b(34, 34, 34); border-left-style: none; border-left-width: 0px; border-righ=
t-color: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px=
; border-top-color: rgb(34, 34, 34); border-top-style: none; border-top-wid=
th: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-to=
p: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding=
-top: 0px;">{=C2=A0</font></div><div style=3D"background-color: transparent=
; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-b=
ottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch; bor=
der-image-slice: 100%; border-image-source: none; border-image-width: 1; bo=
rder-left-color: rgb(34, 34, 34); border-left-style: none; border-left-widt=
h: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none; bord=
er-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: n=
one; border-top-width: 0px; color: rgb(34, 34, 34); font-family: &quot;=
Arial&quot;,&quot;Helvetica&quot;,sans-serif; font-size: 13px; =
font-style: normal; font-variant: normal; font-weight: 400; letter-spacing:=
normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-to=
p: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: =
0px; padding-top: 0px; text-align: left; text-decoration: none; text-indent=
: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: n=
ormal; word-spacing: 0px;"><font face=3D"courier new,monospace" style=3D"bo=
rder-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-botto=
m-width: 0px; border-image-outset: 0; border-image-repeat: stretch; border-=
image-slice: 100%; border-image-source: none; border-image-width: 1; border=
-left-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0=
px; border-right-color: rgb(34, 34, 34); border-right-style: none; border-r=
ight-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none;=
border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right:=
0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-righ=
t: 0px; padding-top: 0px;">=C2=A0 Concept Type;</font></div><div style=3D"b=
ackground-color: transparent; border-bottom-color: rgb(34, 34, 34); border-=
bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; borde=
r-image-repeat: stretch; border-image-slice: 100%; border-image-source: non=
e; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-s=
tyle: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); bo=
rder-right-style: none; border-right-width: 0px; border-top-color: rgb(34, =
34, 34); border-top-style: none; border-top-width: 0px; color: rgb(34, 34, =
34); font-family: &quot;Arial&quot;,&quot;Helvetica&quot;,s=
ans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-=
weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; =
margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; paddin=
g-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-d=
ecoration: none; text-indent: 0px; text-transform: none; -webkit-text-strok=
e-width: 0px; white-space: normal; word-spacing: 0px;"><font face=3D"courie=
r new,monospace" style=3D"border-bottom-color: rgb(34, 34, 34); border-bott=
om-style: none; border-bottom-width: 0px; border-image-outset: 0; border-im=
age-repeat: stretch; border-image-slice: 100%; border-image-source: none; b=
order-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style=
: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border=
-right-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, =
34); border-top-style: none; border-top-width: 0px; margin-bottom: 0px; mar=
gin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; pad=
ding-left: 0px; padding-right: 0px; padding-top: 0px;"></font><br style=3D"=
background-attachment: scroll; background-clip: border-box; background-colo=
r: transparent; background-image: none; background-origin: padding-box; bac=
kground-position-x: 0%; background-position-y: 0%; background-repeat: repea=
t; background-size: auto; border-bottom-color: rgb(34, 34, 34); border-bott=
om-style: none; border-bottom-width: 0px; border-image-outset: 0; border-im=
age-repeat: stretch; border-image-slice: 100%; border-image-source: none; b=
order-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style=
: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border=
-right-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, =
34); border-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34);=
font-family: &quot;Arial&quot;,&quot;Helvetica&quot;,sans-=
serif; font-size: 13px; height: auto; margin-bottom: 0px; margin-left: 0px;=
margin-right: 0px; margin-top: 0px; min-width: 0px; overflow: visible; ove=
rflow-x: visible; overflow-y: visible; padding-bottom: 0px; padding-left: 0=
px; padding-right: 0px; padding-top: 0px;"></div><div style=3D"background-c=
olor: transparent; border-bottom-color: rgb(34, 34, 34); border-bottom-styl=
e: none; border-bottom-width: 0px; border-image-outset: 0; border-image-rep=
eat: stretch; border-image-slice: 100%; border-image-source: none; border-i=
mage-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none;=
border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-=
style: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); bo=
rder-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); font-f=
amily: &quot;Arial&quot;,&quot;Helvetica&quot;,sans-serif; =
font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400=
; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-righ=
t: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px=
; padding-right: 0px; padding-top: 0px; text-align: left; text-decoration: =
none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0p=
x; white-space: normal; word-spacing: 0px;"><font face=3D"courier new,monos=
pace" style=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style: n=
one; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat:=
stretch; border-image-slice: 100%; border-image-source: none; border-image=
-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; bor=
der-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-styl=
e: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border=
-top-style: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0=
px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: =
0px; padding-right: 0px; padding-top: 0px;">=C2=A0 if constexpr(something)<=
/font></div><div style=3D"background-color: transparent; border-bottom-colo=
r: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; bo=
rder-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100=
%; border-image-source: none; border-image-width: 1; border-left-color: rgb=
(34, 34, 34); border-left-style: none; border-left-width: 0px; border-right=
-color: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px;=
border-top-color: rgb(34, 34, 34); border-top-style: none; border-top-widt=
h: 0px; color: rgb(34, 34, 34); font-family: &quot;Arial&quot;,&=
;quot;Helvetica&quot;,sans-serif; font-size: 13px; font-style: normal; =
font-variant: normal; font-weight: 400; letter-spacing: normal; margin-bott=
om: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; =
padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0p=
x; text-align: left; text-decoration: none; text-indent: 0px; text-transfor=
m: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing:=
0px;"><font face=3D"courier new,monospace" style=3D"border-bottom-color: r=
gb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; border=
-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; b=
order-image-source: none; border-image-width: 1; border-left-color: rgb(34,=
34, 34); border-left-style: none; border-left-width: 0px; border-right-col=
or: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; bor=
der-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0=
px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0p=
x; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top:=
0px;">=C2=A0=C2=A0=C2=A0 <span style=3D"display: inline !important; float:=
none; background-color: transparent; color: rgb(34, 34, 34); font-family: =
courier new,monospace; font-size: 13px; font-style: normal; font-variant: n=
ormal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: le=
ft; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-=
text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">Type </spa=
n>var =3D . . .;</font></div><div style=3D"background-color: transparent; b=
order-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bott=
om-width: 0px; border-image-outset: 0; border-image-repeat: stretch; border=
-image-slice: 100%; border-image-source: none; border-image-width: 1; borde=
r-left-color: rgb(34, 34, 34); border-left-style: none; border-left-width: =
0px; border-right-color: rgb(34, 34, 34); border-right-style: none; border-=
right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none=
; border-top-width: 0px; color: rgb(34, 34, 34); font-family: &quot;Ari=
al&quot;,&quot;Helvetica&quot;,sans-serif; font-size: 13px; fon=
t-style: normal; font-variant: normal; font-weight: 400; letter-spacing: no=
rmal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: =
0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px=
; padding-top: 0px; text-align: left; text-decoration: none; text-indent: 0=
px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: norm=
al; word-spacing: 0px;"><font face=3D"courier new,monospace" style=3D"borde=
r-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-w=
idth: 0px; border-image-outset: 0; border-image-repeat: stretch; border-ima=
ge-slice: 100%; border-image-source: none; border-image-width: 1; border-le=
ft-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px;=
border-right-color: rgb(34, 34, 34); border-right-style: none; border-righ=
t-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; bo=
rder-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0p=
x; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: =
0px; padding-top: 0px;">=C2=A0 else</font></div><div style=3D"background-co=
lor: transparent; border-bottom-color: rgb(34, 34, 34); border-bottom-style=
: none; border-bottom-width: 0px; border-image-outset: 0; border-image-repe=
at: stretch; border-image-slice: 100%; border-image-source: none; border-im=
age-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; =
border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-s=
tyle: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); bor=
der-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); font-fa=
mily: &quot;Arial&quot;,&quot;Helvetica&quot;,sans-serif; f=
ont-size: 13px; font-style: normal; font-variant: normal; font-weight: 400;=
letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right=
: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px;=
padding-right: 0px; padding-top: 0px; text-align: left; text-decoration: n=
one; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px=
; white-space: normal; word-spacing: 0px;"><font face=3D"courier new,monosp=
ace" style=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style: no=
ne; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat: =
stretch; border-image-slice: 100%; border-image-source: none; border-image-=
width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; bord=
er-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style=
: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-=
top-style: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0p=
x; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0=
px; padding-right: 0px; padding-top: 0px;">=C2=A0 =C2=A0 Type var =3D . . .=
;</font></div><div style=3D"background-color: transparent; border-bottom-co=
lor: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; =
border-image-outset: 0; border-image-repeat: stretch; border-image-slice: 1=
00%; border-image-source: none; border-image-width: 1; border-left-color: r=
gb(34, 34, 34); border-left-style: none; border-left-width: 0px; border-rig=
ht-color: rgb(34, 34, 34); border-right-style: none; border-right-width: 0p=
x; border-top-color: rgb(34, 34, 34); border-top-style: none; border-top-wi=
dth: 0px; color: rgb(34, 34, 34); font-family: &quot;Arial&quot;,&a=
mp;quot;Helvetica&quot;,sans-serif; font-size: 13px; font-style: normal=
; font-variant: normal; font-weight: 400; letter-spacing: normal; margin-bo=
ttom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2=
; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: =
0px; text-align: left; text-decoration: none; text-indent: 0px; text-transf=
orm: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacin=
g: 0px;"><font face=3D"courier new,monospace" style=3D"border-bottom-color:=
rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; bord=
er-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%;=
border-image-source: none; border-image-width: 1; border-left-color: rgb(3=
4, 34, 34); border-left-style: none; border-left-width: 0px; border-right-c=
olor: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; b=
order-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width:=
0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: =
0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-to=
p: 0px;"><br style=3D"background-attachment: scroll; background-clip: borde=
r-box; background-color: transparent; background-image: none; background-or=
igin: padding-box; background-position-x: 0%; background-position-y: 0%; ba=
ckground-repeat: repeat; background-size: auto; border-bottom-color: rgb(34=
, 34, 34); border-bottom-style: none; border-bottom-width: 0px; border-imag=
e-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border=
-image-source: none; border-image-width: 1; border-left-color: rgb(34, 34, =
34); border-left-style: none; border-left-width: 0px; border-right-color: r=
gb(34, 34, 34); border-right-style: none; border-right-width: 0px; border-t=
op-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; c=
olor: rgb(34, 34, 34); font-family: courier new,monospace; font-size: 13px;=
height: auto; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; mar=
gin-top: 0px; min-width: 0px; overflow: visible; overflow-x: visible; overf=
low-y: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px;=
padding-top: 0px;"></font></div><div style=3D"background-color: transparen=
t; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-=
bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch; bo=
rder-image-slice: 100%; border-image-source: none; border-image-width: 1; b=
order-left-color: rgb(34, 34, 34); border-left-style: none; border-left-wid=
th: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none; bor=
der-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: =
none; border-top-width: 0px; color: rgb(34, 34, 34); font-family: &quot=
;Arial&quot;,&quot;Helvetica&quot;,sans-serif; font-size: 13px;=
font-style: normal; font-variant: normal; font-weight: 400; letter-spacing=
: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-t=
op: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right:=
0px; padding-top: 0px; text-align: left; text-decoration: none; text-inden=
t: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: =
normal; word-spacing: 0px;"><font face=3D"courier new,monospace" style=3D"b=
order-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bott=
om-width: 0px; border-image-outset: 0; border-image-repeat: stretch; border=
-image-slice: 100%; border-image-source: none; border-image-width: 1; borde=
r-left-color: rgb(34, 34, 34); border-left-style: none; border-left-width: =
0px; border-right-color: rgb(34, 34, 34); border-right-style: none; border-=
right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none=
; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right=
: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-rig=
ht: 0px; padding-top: 0px;">=C2=A0 // use Type;</font></div><div style=3D"b=
ackground-color: transparent; border-bottom-color: rgb(34, 34, 34); border-=
bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; borde=
r-image-repeat: stretch; border-image-slice: 100%; border-image-source: non=
e; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-s=
tyle: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); bo=
rder-right-style: none; border-right-width: 0px; border-top-color: rgb(34, =
34, 34); border-top-style: none; border-top-width: 0px; color: rgb(34, 34, =
34); font-family: &quot;Arial&quot;,&quot;Helvetica&quot;,s=
ans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-=
weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; =
margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; paddin=
g-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-d=
ecoration: none; text-indent: 0px; text-transform: none; -webkit-text-strok=
e-width: 0px; white-space: normal; word-spacing: 0px;"><font face=3D"courie=
r new,monospace" style=3D"border-bottom-color: rgb(34, 34, 34); border-bott=
om-style: none; border-bottom-width: 0px; border-image-outset: 0; border-im=
age-repeat: stretch; border-image-slice: 100%; border-image-source: none; b=
order-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style=
: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border=
-right-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, =
34); border-top-style: none; border-top-width: 0px; margin-bottom: 0px; mar=
gin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; pad=
ding-left: 0px; padding-right: 0px; padding-top: 0px;">}=C2=A0</font></div>=
<b></b><i></i><u></u><sub></sub><sup></sup><strike></strike><br></font></di=
v><div><font face=3D"arial,sans-serif">But this works even if</font><font f=
ace=3D"courier new,monospace"> Concept Type </font><font face=3D"arial,sans=
-serif">is introduced in scope (other means included)!=C2=A0</font></div><d=
iv><font face=3D"arial,sans-serif"><span style=3D"display: inline !importan=
t; float: none; background-color: transparent; color: rgb(34, 34, 34); font=
-family: courier new,monospace; font-size: 13px; font-style: normal; font-v=
ariant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-=
align: left; text-decoration: none; text-indent: 0px; text-transform: none;=
-webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">i=
f constexpr - <font face=3D"arial,sans-serif">will physically remove the sc=
opes altogether. And if it is <i>not</i> a constexpr if, then we could init=
it outside of scope by other means</font></span></font><br></div><div><fon=
t face=3D"arial,sans-serif"><b></b><i></i><u></u><sub></sub><sup></sup><str=
ike></strike><font face=3D"courier new,monospace"></font><br></font></div><=
div><font face=3D"arial,sans-serif">Introduction-not-initialization needs m=
otivation </font>outside <font face=3D"arial,sans-serif">constrained types.=
</font></div><div><font face=3D"arial,sans-serif"><br></font></div><div><fo=
nt face=3D"arial,sans-serif">I fail to find one myself and the paper didn&#=
39;t help me with that.=C2=A0</font></div><div><font face=3D"arial,sans-ser=
if"><br></font></div><div><font face=3D"arial,sans-serif">I, personally, wi=
ll gladly live with two-in-one declarations, then to wonder when is the typ=
e name bound to a concrete type if there is no benefit.</font><font face=3D=
"arial,sans-serif"><br></font></div><div><font face=3D"arial,sans-serif"><b=
r></font></div><div><font face=3D"arial,sans-serif">Lastly, considering Con=
cept auto is backed so heavily, advocating allowing auto to be a type name =
(which has material benefits right now) seems easier battle, <i>then</i> <s=
pan style=3D"display: inline !important; float: none; background-color: tra=
nsparent; color: rgb(34, 34, 34); font-family: arial,sans-serif; font-size:=
13px; font-style: normal; font-variant: normal; font-weight: 400; letter-s=
pacing: normal; orphans: 2; text-align: left; text-decoration: none; text-i=
ndent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-spa=
ce: normal; word-spacing: 0px;">advocating </span>allowing introduction-wit=
hout-initialization.</font></div><div><font face=3D"arial,sans-serif">This =
is the way I see it.=C2=A0</font></div><div><font face=3D"arial,sans-serif"=
><br></font></div><div><font face=3D"arial,sans-serif">PS</font><br></div><=
div><font face=3D"arial,sans-serif"><br></font></div><div><font face=3D"cou=
rier new,monospace">namespace n {</font></div><div><font face=3D"courier ne=
w,monospace"></font><br></div><div><span style=3D"display: inline !importan=
t; float: none; background-color: transparent; color: rgb(34, 34, 34); font=
-family: courier new,monospace; font-size: 13px; font-style: normal; font-v=
ariant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-=
align: left; text-decoration: none; text-indent: 0px; text-transform: none;=
-webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">S=
tandardLayoutType T; //< allowed?</span><b></b><i></i><u></u><sub></sub>=
<sup></sup><strike></strike><br></div><div><b></b><i></i><u></u><sub></sub>=
<sup></sup><strike></strike><br></div><font face=3D"courier new,monospace">=
template <typename Producer><br>void uploadToGPU(Producer& produc=
er)<br>{<br>=C2=A0 T item =3D producer.next();<br>}</font><div><font face=
=3D"courier new,monospace"><br></font></div><div><font face=3D"courier new,=
monospace"><div style=3D"background-color: transparent; border-bottom-color=
: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; bor=
der-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%=
; border-image-source: none; border-image-width: 1; border-left-color: rgb(=
34, 34, 34); border-left-style: none; border-left-width: 0px; border-right-=
color: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; =
border-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width=
: 0px; color: rgb(34, 34, 34); font-family: &quot;Arial&quot;,&=
quot;Helvetica&quot;,sans-serif; font-size: 13px; font-style: normal; f=
ont-variant: normal; font-weight: 400; letter-spacing: normal; margin-botto=
m: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; p=
adding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px=
; text-align: left; text-decoration: none; text-indent: 0px; text-transform=
: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: =
0px;"><font face=3D"courier new,monospace" style=3D"border-bottom-color: rg=
b(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; border-=
image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; bo=
rder-image-source: none; border-image-width: 1; border-left-color: rgb(34, =
34, 34); border-left-style: none; border-left-width: 0px; border-right-colo=
r: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; bord=
er-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0p=
x; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px=
; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: =
0px;">void bar(T&&) //< guess it works, bar is a template, but..=
.. yeah :)=C2=A0</font></div><div style=3D"background-color: transparent; bo=
rder-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-botto=
m-width: 0px; border-image-outset: 0; border-image-repeat: stretch; border-=
image-slice: 100%; border-image-source: none; border-image-width: 1; border=
-left-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0=
px; border-right-color: rgb(34, 34, 34); border-right-style: none; border-r=
ight-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none;=
border-top-width: 0px; color: rgb(34, 34, 34); font-family: &quot;Aria=
l&quot;,&quot;Helvetica&quot;,sans-serif; font-size: 13px; font=
-style: normal; font-variant: normal; font-weight: 400; letter-spacing: nor=
mal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0=
px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px;=
padding-top: 0px; text-align: left; text-decoration: none; text-indent: 0p=
x; text-transform: none; -webkit-text-stroke-width: 0px; white-space: norma=
l; word-spacing: 0px;"><font face=3D"courier new,monospace" style=3D"border=
-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-wi=
dth: 0px; border-image-outset: 0; border-image-repeat: stretch; border-imag=
e-slice: 100%; border-image-source: none; border-image-width: 1; border-lef=
t-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; =
border-right-color: rgb(34, 34, 34); border-right-style: none; border-right=
-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; bor=
der-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px=
; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0=
px; padding-top: 0px;">{</font></div><div style=3D"background-color: transp=
arent; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; bor=
der-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch=
; border-image-slice: 100%; border-image-source: none; border-image-width: =
1; border-left-color: rgb(34, 34, 34); border-left-style: none; border-left=
-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none;=
border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-sty=
le: none; border-top-width: 0px; color: rgb(34, 34, 34); font-family: &=
quot;Arial&quot;,&quot;Helvetica&quot;,sans-serif; font-size: 1=
3px; font-style: normal; font-variant: normal; font-weight: 400; letter-spa=
cing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; marg=
in-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-ri=
ght: 0px; padding-top: 0px; text-align: left; text-decoration: none; text-i=
ndent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-spa=
ce: normal; word-spacing: 0px;"><font face=3D"courier new,monospace" style=
=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border=
-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch; b=
order-image-slice: 100%; border-image-source: none; border-image-width: 1; =
border-left-color: rgb(34, 34, 34); border-left-style: none; border-left-wi=
dth: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none; bo=
rder-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style:=
none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-=
right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; paddin=
g-right: 0px; padding-top: 0px;">=C2=A0 =C2=A0</font></div><div style=3D"ba=
ckground-color: transparent; border-bottom-color: rgb(34, 34, 34); border-b=
ottom-style: none; border-bottom-width: 0px; border-image-outset: 0; border=
-image-repeat: stretch; border-image-slice: 100%; border-image-source: none=
; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-st=
yle: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); bor=
der-right-style: none; border-right-width: 0px; border-top-color: rgb(34, 3=
4, 34); border-top-style: none; border-top-width: 0px; color: rgb(34, 34, 3=
4); font-family: &quot;Arial&quot;,&quot;Helvetica&quot;,sa=
ns-serif; font-size: 13px; font-style: normal; font-variant: normal; font-w=
eight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; m=
argin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding=
-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-de=
coration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke=
-width: 0px; white-space: normal; word-spacing: 0px;"><font face=3D"courier=
new,monospace" style=3D"border-bottom-color: rgb(34, 34, 34); border-botto=
m-style: none; border-bottom-width: 0px; border-image-outset: 0; border-ima=
ge-repeat: stretch; border-image-slice: 100%; border-image-source: none; bo=
rder-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style:=
none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-=
right-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, 3=
4); border-top-style: none; border-top-width: 0px; margin-bottom: 0px; marg=
in-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padd=
ing-left: 0px; padding-right: 0px; padding-top: 0px;">}</font><br></div></f=
ont><div><br></div></div><div><font face=3D"courier new,monospace">}//< =
n</font></div><font face=3D"courier new,monospace"></font><font face=3D"ari=
al,sans-serif"></font><font face=3D"courier new,monospace"></font><font fac=
e=3D"arial,sans-serif"></font><font face=3D"arial,sans-serif"></font><font =
face=3D"arial,sans-serif"></font><font face=3D"arial,sans-serif"></font><fo=
nt face=3D"courier new,monospace"></font><br>On Thursday, July 12, 2018 at =
3:53:53 AM UTC+3, Zhihao Yuan wrote:<blockquote class=3D"gmail_quote" style=
=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: =
1ex;"><div><div><p class=3D"MsoNormal">Hi, folks:<br><br>I=E2=80=99m drafti=
ng the paper to propose<br><br></p><p class=3D"MsoNormal" style=3D"text-ind=
ent:10.15pt">BidirectionalIterator T;</p><p class=3D"MsoNormal" style=3D"te=
xt-indent:10.15pt">T it =3D foo();</p><p class=3D"MsoNormal"><br>=C2=A0 <a =
onmousedown=3D"this.href=3D'https://www.google.com/url?q\x3dhttps%3A%2F=
%2Fhackmd.io%2Fs%2FSkyQwe47Q%23\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGyA=
Pux_QE_3gsZ2w1Kq6CQDH5SMQ';return true;" onclick=3D"this.href=3D'ht=
tps://www.google.com/url?q\x3dhttps%3A%2F%2Fhackmd.io%2Fs%2FSkyQwe47Q%23\x2=
6sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGyAPux_QE_3gsZ2w1Kq6CQDH5SMQ';ret=
urn true;" href=3D"https://hackmd.io/s/SkyQwe47Q#" target=3D"_blank" rel=3D=
"nofollow">https://hackmd.io/s/SkyQwe47Q#</a></p><p class=3D"MsoNormal"><br=
>Currently missing technical description, but I tried to<br>explain some ma=
jor points in =E2=80=9CDesign Decisions.=E2=80=9D<br>Comments are welcome, =
especially criticisms.</p><p class=3D"MsoNormal">=C2=A0</p><p class=3D"MsoN=
ormal">--<br>Zhihao Yuan, ID lichray<br>The best way to predict the future =
is to invent it.<br>______________________________<wbr>_________________</p=
><p class=3D"MsoNormal">=C2=A0</p></div></div></blockquote></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/f4f2a1ca-63c1-4e33-8c0c-cf1ae244a3b5%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/f4f2a1ca-63c1-4e33-8c0c-cf1ae244a3b5=
%40isocpp.org</a>.<br />
------=_Part_21840_1981265464.1531389488058--
------=_Part_21839_907572879.1531389488057--
.
Author: Nicol Bolas <jmckesson@gmail.com>
Date: Thu, 12 Jul 2018 08:51:13 -0700 (PDT)
Raw View
------=_Part_136259_2094260529.1531410673460
Content-Type: multipart/alternative;
boundary="----=_Part_136260_234145698.1531410673461"
------=_Part_136260_234145698.1531410673461
Content-Type: text/plain; charset="UTF-8"
On Thursday, July 12, 2018 at 3:41:04 AM UTC-4, Zhihao Yuan wrote:
>
> From: Nicol Bolas <jmck...@gmail.com <javascript:>>
> Sent: Thursday, July 12, 2018 12:25 AM
> Despite the fact that your proposal references P0915 directly, your
> proposal is written as if in a vacuum. That is, it's written as if there
> are no competing proposals within this design space at all.
>
> We are not actually competing. Take Concept TS for
> example,
>
> Copyable T;
> T x = foo();
> Copyable x = foo();
>
> strictly speaking, they can coexist.
Syntactically speaking, they can coexist. But if a terse syntax proposal is
accepted, then your proposal becomes *redundant*. That is, there's nothing
your proposal can do that a terse one couldn't.
So you are de-facto competing.
Adding an 'auto'
> can also be justified. I can mention some of those
> papers, but I haven't decided which form... Thanks
> for the review.
>
> > Retroactive compile errors:
> >
> > SomeConcept T;
> > static_assert(sizeof(T) > 4);
> > T t = 'c';
> >
> > I'm not saying its unimplementable. [...]
>
> If implementors says no then it's no, I just feel this
> model is easier to understand (you declared
> something, then its interpretation follows the same
> rule on every line that can lookup the thing you
> declared).
>
> > Your syntax forces me to create a typename even if I don't want one.
>
> We don't have enough C++20 code to tell whether
> this is a real issue.
We don't need C++20 to know whether people frequently need type names for
auto-deduced values. We have plenty of experience with `auto` since C++11.
And while it certainly does happen, it would be difficult to say that it
happens more than 25% of the time you use `auto`.
This is especially true if you're among the Almost Always Auto crowd, since
they deduce variables as a matter of course.
Also, don't forget that Concepts TS is a real thing with real users behind
it. You could ask them.
I can raise a hypophysis saying
> "repeated constraints happens frequently:"
>
> Iterator T;
> T a = begin(...);
> // ...
> T ed = find(...);
>
> and we don't have data to disprove that either.
>
But we don't need data, because the alternatives work and don't take up
more lines of code:
Iterator auto a = begin(...);
using T = decltype(a);
// ...
T ed = find(...);
Your proposal solves a narrow problem. The other proposals solve this
narrow problem just as effectively as yours, but they also solve a wider
problem. So why is your proposal better?
That's the question you've not answered.
After we have the data, it's not too late to adjust
> designs. Meanwhile, other designs cannot extend
> to support constraining two variables that are
> "EqualityComparable" afaict.
>
EqualityComparable auto [a, b] = ...;
Yes, this is reusing structured binding syntax for something that isn't
actually structured binding, but if that syntax is burdensome, we could use
{} or <> or something around the identifier names. Or we could do this:
EqualityComparable auto a = ..., b = ...;
Normally, `auto` deduction of multiple variables have to agree in types,
but for constrained deduction, we can allow them to deduce different types,
so long as the constraint has different types to deduce.
So "Cannot" simply is not the case here.
> Even worse, if I don't want to constrain a deduced variable,
>
> template <class T> concept Any = true;
> Any T;
> T a = ...;
>
My point in bringing that up is that we already have a way to do that. The
idiom is `auto a = ...; using T = decltype(a);`. That's the idiom all of
the terse syntaxes would use for this too, and therefore they would be
consistent with unconstrained `auto` use.
In order to create an equally consistent idiom, you now have to create an
"Any" concept, apply it to a `T`, then use that `T` to "constrain" a
deduced variable. Why is that better?
--
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.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/8ba6d594-0aa8-4c6c-87b1-b785cc519570%40isocpp.org.
------=_Part_136260_234145698.1531410673461
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">On Thursday, July 12, 2018 at 3:41:04 AM UTC-4, Zhihao Yua=
n wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0=
..8ex;border-left: 1px #ccc solid;padding-left: 1ex;">From: Nicol Bolas <=
<a href=3D"javascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"hN5ueLXy=
CAAJ" rel=3D"nofollow" onmousedown=3D"this.href=3D'javascript:';ret=
urn true;" onclick=3D"this.href=3D'javascript:';return true;">jmck.=
...@gmail.com</a>>=20
<br>Sent: Thursday, July 12, 2018 12:25 AM
</blockquote><div></div><blockquote class=3D"gmail_quote" style=3D"margin: =
0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">
> Despite the fact that your proposal references P0915 directly, your pr=
oposal is written as if in a vacuum. That is, it's written as if there =
are no competing proposals within this design space at all.
<br>
<br>We are not actually competing. =C2=A0Take Concept TS for
<br>example,
<br>
<br>=C2=A0 =C2=A0 =C2=A0Copyable T;
<br>=C2=A0 =C2=A0 =C2=A0T x =3D foo();
<br>=C2=A0 =C2=A0 =C2=A0Copyable x =3D foo();
<br>
<br>strictly speaking, they can coexist.</blockquote><div><br></div><div>Sy=
ntactically speaking, they can coexist. But if a terse syntax proposal is a=
ccepted, then your proposal becomes <i>redundant</i>. That is, there's =
nothing your proposal can do that a terse one couldn't.</div><div><br><=
/div><div>So you are de-facto competing.<br></div><div><br></div><blockquot=
e class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: =
1px #ccc solid;padding-left: 1ex;">Adding an 'auto'
<br>can also be justified.=C2=A0 I can mention some of those
<br>papers, but I haven't decided which form... Thanks
<br>for the review.
<br>
<br>> Retroactive compile errors:
<br>>=20
<br>> SomeConcept T;
<br>> static_assert(sizeof(T) > 4);
<br>> T t =3D 'c';
<br>>=20
<br>> I'm not saying its unimplementable. [...]
<br>
<br>If implementors says no then it's no, I just feel this
<br>model is easier to understand (you declared
<br>something, then its interpretation follows the same
<br>rule on every line that can lookup the thing you
<br>declared).
<br>
<br>> Your syntax forces me to create a typename even if I don't wan=
t one.
<br>
<br>We don't have enough C++20 code to tell whether
<br>this is a real issue.</blockquote><div><br></div><div>We don't need=
C++20 to know whether people frequently need type names for auto-deduced v=
alues. We have plenty of experience with `auto` since C++11. And while it c=
ertainly does happen, it would be difficult to say that it happens more tha=
n 25% of the time you use `auto`.</div><div><br></div><div>This is especial=
ly true if you're among the Almost Always Auto crowd, since they deduce=
variables as a matter of course.</div><div><br></div><div>Also, don't =
forget that Concepts TS is a real thing with real users behind it. You coul=
d ask them.<br></div><div><br></div><blockquote class=3D"gmail_quote" style=
=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: =
1ex;"> =C2=A0I can raise a hypophysis saying
<br>"repeated constraints happens frequently:"
<br>
<br>=C2=A0 =C2=A0 Iterator T;
<br>=C2=A0 =C2=A0 T a =3D begin(...);
<br>=C2=A0 =C2=A0 // ...
<br>=C2=A0 =C2=A0 T ed =3D find(...);
<br>
<br>and we don't have data to disprove that either.<br></blockquote><di=
v><br></div><div>But we don't need data, because the alternatives work =
and don't take up more lines of code:</div><div><br></div><div style=3D=
"background-color: rgb(250, 250, 250); border-color: rgb(187, 187, 187); bo=
rder-style: solid; border-width: 1px; overflow-wrap: break-word;" class=3D"=
prettyprint"><code class=3D"prettyprint"><div class=3D"subprettyprint"><spa=
n style=3D"color: #606;" class=3D"styled-by-prettify">Iterator</span><span =
style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"=
color: #008;" class=3D"styled-by-prettify">auto</span><span style=3D"color:=
#000;" class=3D"styled-by-prettify"> a </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">begin</span><span style=3D"color: #660;" class=3D"styled-by-=
prettify">(...);</span><span style=3D"color: #000;" class=3D"styled-by-pret=
tify"><br></span><span style=3D"color: #008;" class=3D"styled-by-prettify">=
using</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> T </=
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">decltype</span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">(</span><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"><br></span><span style=3D"color: #800;" class=3D"style=
d-by-prettify">// ...</span><span style=3D"color: #000;" class=3D"styled-by=
-prettify"><br>T ed </span><span style=3D"color: #660;" class=3D"styled-by-=
prettify">=3D</span><span style=3D"color: #000;" class=3D"styled-by-prettif=
y"> find</span><span style=3D"color: #660;" class=3D"styled-by-prettify">(.=
...);</span></div></code></div><div><br></div><div>Your proposal solves a na=
rrow problem. The other proposals solve this narrow problem just as effecti=
vely as yours, but they also solve a wider problem. So why is your proposal=
better?</div><div><br></div><div>That's the question you've not an=
swered.</div><div><br></div><blockquote class=3D"gmail_quote" style=3D"marg=
in: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">Af=
ter we have the data, it's not too late to adjust
<br>designs. =C2=A0Meanwhile, other designs cannot extend
<br>to support constraining two variables that are
<br>"EqualityComparable" afaict.<br></blockquote><div><br></div><=
div><div style=3D"background-color: rgb(250, 250, 250); border-color: rgb(1=
87, 187, 187); border-style: solid; border-width: 1px; overflow-wrap: break=
-word;" class=3D"prettyprint"><code class=3D"prettyprint"><div class=3D"sub=
prettyprint"><span style=3D"color: #606;" class=3D"styled-by-prettify">Equa=
lityComparable</span><span style=3D"color: #000;" class=3D"styled-by-pretti=
fy"> </span><span style=3D"color: #008;" class=3D"styled-by-prettify">auto<=
/span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><sp=
an style=3D"color: #660;" class=3D"styled-by-prettify">[</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify">a</span><span style=3D"color=
: #660;" class=3D"styled-by-prettify">,</span><span 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"color: #000;" class=3D"styled-b=
y-prettify"> </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: #660;" class=3D"styled-by-prettify">...;</span></=
div></code></div><br></div><div></div><div>Yes, this is reusing structured =
binding syntax for something that isn't actually structured binding, bu=
t if that syntax is burdensome, we could use {} or <> or something ar=
ound the identifier names. Or we could do this:</div><div><br></div><div><d=
iv style=3D"background-color: rgb(250, 250, 250); border-color: rgb(187, 18=
7, 187); border-style: solid; border-width: 1px; overflow-wrap: break-word;=
" class=3D"prettyprint"><code class=3D"prettyprint"><div class=3D"subpretty=
print"><span style=3D"color: #606;" class=3D"styled-by-prettify">EqualityCo=
mparable</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> <=
/span><span style=3D"color: #008;" class=3D"styled-by-prettify">auto</span>=
<span style=3D"color: #000;" class=3D"styled-by-prettify"> a </span><span s=
tyle=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: #=
660;" class=3D"styled-by-prettify">...,</span><span style=3D"color: #000;" =
class=3D"styled-by-prettify"> b </span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">=3D</span><span style=3D"color: #000;" class=3D"sty=
led-by-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-pr=
ettify">...;</span></div></code></div></div><div><br></div><div>Normally, `=
auto` deduction of multiple variables have to agree in types, but for const=
rained deduction, we can allow them to deduce different types, so long as t=
he constraint has different types to deduce.<br></div><div><br></div><div><=
/div><div>So "Cannot" simply is not the case here.<br></div><div>=
<br></div><blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left=
: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">
> Even worse, if I don't want to constrain a deduced variable,
<br>
<br>=C2=A0 template <class T> concept Any =3D true;
<br>=C2=A0 Any T;
<br>=C2=A0 T a =3D ...;
<br></blockquote><div><br></div><div>My point in bringing that up is that w=
e already have a way to do that. The idiom is `auto a =3D ...; using T =3D =
decltype(a);`. That's the idiom all of the terse syntaxes would use for=
this too, and therefore they would be consistent with unconstrained `auto`=
use.</div><div><br></div><div>In order to create an equally consistent idi=
om, you now have to create an "Any" concept, apply it to a `T`, t=
hen use that `T` to "constrain" a deduced variable. Why is that b=
etter?<br></div></div>
<p></p>
-- <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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/8ba6d594-0aa8-4c6c-87b1-b785cc519570%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/8ba6d594-0aa8-4c6c-87b1-b785cc519570=
%40isocpp.org</a>.<br />
------=_Part_136260_234145698.1531410673461--
------=_Part_136259_2094260529.1531410673460--
.
Author: Zhihao Yuan <zy@miator.net>
Date: Thu, 12 Jul 2018 16:13:54 -0400
Raw View
From: Nicol Bolas <jmckesson@gmail.com>=20
Sent: Thursday, July 12, 2018 10:51 AM
>>
>> Copyable T;=20
>> T x =3D foo();=20
>> Copyable x =3D foo();=20
>>
>> strictly speaking, they can coexist.
>=20
> Syntactically speaking, they can coexist. But if a terse syntax proposal =
is accepted, then your proposal becomes redundant. That is, there's nothing=
your proposal can do that a terse one couldn't.
Not redundant comparing to papers other than Herb's,
as others do not introduce a type-name.
>> We don't have enough C++20 code to tell whether=20
>> this is a real issue.
>=20
> We don't need C++20 to know whether people frequently need type names for=
auto-deduced values. We have plenty of experience with `auto` since C++11.=
And while it certainly does happen, it would be difficult to say that it h=
appens more than 25% of the time you use `auto`.
>=20
> This is especially true if you're among the Almost Always Auto crowd, sin=
ce they deduce variables as a matter of course.
>=20
> Also, don't forget that Concepts TS is a real thing with real users behin=
d it. You could ask them.
No evidence shows that the time we use `auto` is
getting close to the time we constrained-type-specifiers,
there are plenty of cases where constraining is
unnecessary. I checked text_view's code and had
yet find a use of constrained-type-specifier.
>> I can raise a hypophysis saying=20
>> "repeated constraints happens frequently:"=20
>>
>> Iterator T;=20
>> T a =3D begin(...);=20
>> // ...=20
>> T ed =3D find(...);=20
>=20
> But we don't need data, because the alternatives work and don't take up m=
ore lines of code:
>=20
> Iterator auto a =3D begin(...);
> using T =3D decltype(a);
> // ...
> T ed =3D find(...);
If decltype(a) is acceptable, why we need to
constrain `auto` at all?
> EqualityComparable auto a =3D ..., b =3D ...;
>=20
> Normally, `auto` deduction of multiple variables have to agree in types, =
but for constrained deduction, we can allow them to deduce different types,=
so long as the constraint has different types to deduce.
That syntax is indistinguishable to
Copyable auto a =3D ..., b =3D ...;
Different types, each satisfying Copyable, rather than
satisfying EqualityComparable<decltype(a), decltype(b)>.
> My point in bringing that up is that we already have a way to do that. Th=
e idiom is `auto a =3D ...; using T =3D decltype(a);`. That's the idiom all=
of the terse syntaxes would use for this too, and therefore they would be =
consistent with unconstrained `auto` use.
>=20
> In order to create an equally consistent idiom, you now have to create an=
"Any" concept, apply it to a `T`, then use that `T` to "constrain" a deduc=
ed variable. Why is that better?
There is no such idiom. If there is then we are wasting
time here, static_assert(Copyable<decltype(it)>) we'are
done.
--
Zhihao Yuan, ID lichray
The best way to predict the future is to invent it.
_______________________________________________
--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/u9P7LyPZrQx6zGIsGy_PNEv1uIc4hzJbsf9sRO0uy-CJlXba=
z26rcV4FoSj4IB7dACZomroVEFOGMDGAXow0b0SXxQGdFlWr71rm2RhyaSo%3D%40miator.net=
..
.
Author: Zhihao Yuan <zy@miator.net>
Date: Thu, 12 Jul 2018 16:20:18 -0400
Raw View
From: mihailnajdenov@gmail.com <mihailnajdenov@gmail.com>
Sent: Thursday, July 12, 2018 4:58 AM
> With types
>
> template<. . .>
> auto func()
> {
> Concept Type;
>
> if constexpr(something)
> Type var = . . .;
> else
> Type var = . . .;
>
> // use Type;
> }
>
> But this works even if Concept Type is introduced in scope (other means included)!
> if constexpr - will physically remove the scopes altogether. And if it is not a constexpr if, then we could init it outside of scope by other means
It doesn't, "var" cannot be looked up at the "// use Type"
location, so you cannot even use decltype(var) there.
> namespace n {
>
> StandardLayoutType T; //< allowed?
>
> template <typename Producer>
> void uploadToGPU(Producer& producer)
> {
> T item = producer.next();
> }
That's the kind of bug that I'm looking for...
It shouldn't be allowed.
--
Zhihao Yuan, ID lichray
The best way to predict the future is to invent it.
_______________________________________________
--
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.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/lncm-v8bR9K6sqXzAewvVZNg2wuf0txaLwMD-TpIqbIGq7zL25pGi5DsziWZ92BFQ1HfQftRe9FGbSENOBMkWrzjPjrR2uKsayJJRFA4AQI%3D%40miator.net.
.
Author: mihailnajdenov@gmail.com
Date: Thu, 12 Jul 2018 14:06:06 -0700 (PDT)
Raw View
------=_Part_47366_1240650065.1531429566475
Content-Type: multipart/alternative;
boundary="----=_Part_47367_1716113250.1531429566476"
------=_Part_47367_1716113250.1531429566476
Content-Type: text/plain; charset="UTF-8"
On Thursday, July 12, 2018 at 11:20:24 PM UTC+3, Zhihao Yuan wrote:
>
> From: mihailn...@gmail.com <javascript:> <mihailn...@gmail.com
> <javascript:>>
> Sent: Thursday, July 12, 2018 4:58 AM
> > With types
> >
> > template<. . .>
> > auto func()
> > {
> > Concept Type;
> >
> > if constexpr(something)
> > Type var = . . .;
> > else
> > Type var = . . .;
> >
> > // use Type;
> > }
> >
> > But this works even if Concept Type is introduced in scope (other means
> included)!
> > if constexpr - will physically remove the scopes altogether. And if it
> is not a constexpr if, then we could init it outside of scope by other
> means
>
>
> It doesn't, "var" cannot be looked up at the "// use Type"
> location, so you cannot even use decltype(var) there.
>
So, the scope remains? Makes sense actually. Well, we have a use case I
guess :)
>
> > namespace n {
> >
> > StandardLayoutType T; //< allowed?
> >
> > template <typename Producer>
> > void uploadToGPU(Producer& producer)
> > {
> > T item = producer.next();
> > }
>
> That's the kind of bug that I'm looking for...
> It shouldn't be allowed.
>
Any reason why? Except confusion and probably impl difficulties.
>
> --
> Zhihao Yuan, ID lichray
> The best way to predict the future is to invent it.
> _______________________________________________
>
>
>
>
--
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.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/c9064c15-1ebb-4f2f-a32c-bedef354e29d%40isocpp.org.
------=_Part_47367_1716113250.1531429566476
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><br><br>On Thursday, July 12, 2018 at 11:20:24 PM UTC+3, Z=
hihao Yuan wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margi=
n-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">From: <a onmo=
usedown=3D"this.href=3D'javascript:';return true;" onclick=3D"this.=
href=3D'javascript:';return true;" href=3D"javascript:" target=3D"_=
blank" rel=3D"nofollow" gdf-obfuscated-mailto=3D"CH1xPiUcCQAJ">mihailn...@g=
mail.com</a> <<a onmousedown=3D"this.href=3D'javascript:';return=
true;" onclick=3D"this.href=3D'javascript:';return true;" href=3D"=
javascript:" target=3D"_blank" rel=3D"nofollow" gdf-obfuscated-mailto=3D"CH=
1xPiUcCQAJ">mihailn...@gmail.com</a>>=20
<br>Sent: Thursday, July 12, 2018 4:58 AM
<br>> With types
<br>>=20
<br>> template<. . .>
<br>> auto func()
<br>> {=20
<br>> =C2=A0 Concept Type;
<br>>=20
<br>> =C2=A0 if constexpr(something)
<br>> =C2=A0 =C2=A0 Type var =3D . . .;
<br>> =C2=A0 else
<br>> =C2=A0 =C2=A0 Type var =3D . . .;
<br>>=20
<br>> =C2=A0 // use Type;
<br>> }
<br>>=20
<br>> But this works even if Concept Type is introduced in scope (other =
means included)!=20
<br>> if constexpr - will physically remove the scopes altogether. And i=
f it is not a constexpr if, then we could init it outside of scope by other=
means
<br>
<br></blockquote><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=
=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: =
1ex;">It doesn't, "var" cannot be looked up at the "// u=
se Type"
<br>location, so you cannot even use decltype(var) there.
<br></blockquote><div><br></div><div>So, the scope remains? Makes sense act=
ually. Well, we have a use case I guess :)=C2=A0</div><div>=C2=A0</div><blo=
ckquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-=
left: 1px #ccc solid;padding-left: 1ex;">
<br>> namespace n {
<br>>=20
<br>> StandardLayoutType T; //< allowed?
<br>>=20
<br>> template <typename Producer>
<br>> void uploadToGPU(Producer& producer)
<br>> {
<br>> =C2=A0 T item =3D producer.next();
<br>> }
<br>
<br>That's the kind of bug that I'm looking for...
<br>It shouldn't be allowed.
<br></blockquote><div><br></div><div>Any reason why? Except confusion and p=
robably impl difficulties.</div><div>=C2=A0</div><div>=C2=A0</div><blockquo=
te class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left:=
1px #ccc solid;padding-left: 1ex;">
<br>--
<br>Zhihao Yuan, ID lichray
<br>The best way to predict the future is to invent it.
<br>______________________________<wbr>_________________
<br>=C2=A0
<br>
<br>
<br></blockquote></div>
<p></p>
-- <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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/c9064c15-1ebb-4f2f-a32c-bedef354e29d%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/c9064c15-1ebb-4f2f-a32c-bedef354e29d=
%40isocpp.org</a>.<br />
------=_Part_47367_1716113250.1531429566476--
------=_Part_47366_1240650065.1531429566475--
.
Author: Zhihao Yuan <zy@miator.net>
Date: Thu, 12 Jul 2018 18:47:59 -0400
Raw View
From: mihailnajdenov@gmail.com <mihailnajdenov@gmail.com>
Sent: Thursday, July 12, 2018 4:06 PM
>>>
>>> namespace n {
>>>
>>> StandardLayoutType T; //< allowed?
>>>
>> That's the kind of bug that I'm looking for...
>> It shouldn't be allowed.
>
> Any reason why? Except confusion and probably impl difficulties.
Let's say you have this declaration in a header and include
it in two different translation units, then essentially you
got a "poor man's namespace template." The outcome of
enforcing T to be deduced to the same type across
translation units isn't useful enough to justify its complexity.
I think these declarations should appear only in block scopes,
and have no linkage, as same as constrained-parameters.
--
Zhihao Yuan, ID lichray
The best way to predict the future is to invent it.
_______________________________________________
--
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.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/KVmIk8iivwYajdLGJ-ZZArLI4_yZD7_lq7lJlgluf8wxGouKwpEk54osrRBL-143vsmRIyH3pe0_2r7EgJWU62QPP1GlXf60N3hYfwLopz4%3D%40miator.net.
.
Author: Nicol Bolas <jmckesson@gmail.com>
Date: Thu, 12 Jul 2018 17:50:00 -0700 (PDT)
Raw View
------=_Part_4133_152517083.1531443000458
Content-Type: multipart/alternative;
boundary="----=_Part_4134_482941154.1531443000458"
------=_Part_4134_482941154.1531443000458
Content-Type: text/plain; charset="UTF-8"
On Thursday, July 12, 2018 at 4:13:56 PM UTC-4, Zhihao Yuan wrote:
>
> From: Nicol Bolas <jmck...@gmail.com <javascript:>>
> Sent: Thursday, July 12, 2018 10:51 AM
> >>
> >> Copyable T;
> >> T x = foo();
> >> Copyable x = foo();
> >>
> >> strictly speaking, they can coexist.
> >
> > Syntactically speaking, they can coexist. But if a terse syntax proposal
> is accepted, then your proposal becomes redundant. That is, there's nothing
> your proposal can do that a terse one couldn't.
>
> Not redundant comparing to papers other than Herb's,
> as others do not introduce a type-name.
>
That's because they don't need to; you can introduce a typename if you want
using existing tools.
In order for your tool to be superior, you need to explain why:
Concept T;
T var = ...;
is better than
Concept auto var = ...;
using T = decltype(var);
There is no question that they both accomplish the same end. They both are
two lines long.
The only difference between them is that... well, in the second case, the
`using` declaration is entirely optional. If you don't need the typename,
you don't have to fetch it. In your case, it must be fetched explicitly.
You have yet to explain why your method is superior.
>> We don't have enough C++20 code to tell whether
> >> this is a real issue.
> >
> > We don't need C++20 to know whether people frequently need type names
> for auto-deduced values. We have plenty of experience with `auto` since
> C++11. And while it certainly does happen, it would be difficult to say
> that it happens more than 25% of the time you use `auto`.
> >
> > This is especially true if you're among the Almost Always Auto crowd,
> since they deduce variables as a matter of course.
> >
> > Also, don't forget that Concepts TS is a real thing with real users
> behind it. You could ask them.
>
> No evidence shows that the time we use `auto` is
> getting close to the time we constrained-type-specifiers,
> there are plenty of cases where constraining is
> unnecessary.
Um, if what you're saying is true, you *do* realize that you're arguing
against your own feature, right? Because if people don't want to constrain
their deduced variables... what do we need your feature for?
I checked text_view's code and had
> yet find a use of constrained-type-specifier.
>
> >> I can raise a hypophysis saying
> >> "repeated constraints happens frequently:"
> >>
> >> Iterator T;
> >> T a = begin(...);
> >> // ...
> >> T ed = find(...);
> >
> > But we don't need data, because the alternatives work and don't take up
> more lines of code:
> >
> > Iterator auto a = begin(...);
> > using T = decltype(a);
> > // ...
> > T ed = find(...);
>
> If decltype(a) is acceptable, why we need to
> constrain `auto` at all?
>
The purpose of constraining `auto` deduction is to prevent errors, to
verify that the type being used in the expression has the operations that
you think it does. The purpose of getting a typename for a variable is to *get
its typename*.
These are entirely orthogonal actions. One user may want a typename even
for an unconstrained deduced variable. Another user may not care to get the
typename for a constrained deduced variable. Neither feature in any way
affects the need for the other.
I don't understand what you're getting at with this question.
> EqualityComparable auto a = ..., b = ...;
> >
> > Normally, `auto` deduction of multiple variables have to agree in types,
> but for constrained deduction, we can allow them to deduce different types,
> so long as the constraint has different types to deduce.
>
> That syntax is indistinguishable to
>
> Copyable auto a = ..., b = ...;
>
> Different types, each satisfying Copyable, rather than
> satisfying EqualityComparable<decltype(a), decltype(b)>.
>
My point is that your statement that there's no way for terse syntax to be
used for multiple deductions is incorrect. Maybe that particular syntax
wouldn't work (though since it's new syntax, we could require that
constrained declarations make the number of variables match the number of
template parameters), but I mentioned other syntaxes that certainly could
work.
> My point in bringing that up is that we already have a way to do that.
> The idiom is `auto a = ...; using T = decltype(a);`. That's the idiom all
> of the terse syntaxes would use for this too, and therefore they would be
> consistent with unconstrained `auto` use.
> >
> > In order to create an equally consistent idiom, you now have to create
> an "Any" concept, apply it to a `T`, then use that `T` to "constrain" a
> deduced variable. Why is that better?
>
> There is no such idiom.
I'm not sure what you are saying. Are you saying that people who want to
deduce a variable and access the deduced typename don't use
`decltype(variablename)` to get it? Or that they don't use `using T =
decltype(variablename)` to get it? Because the latter is merely a question
of whether they need a shorthand.
And if it is indeed the case that users usually don't need a shorthand,
then your syntax comes up short, since it requires the creation of that
shorthand in order to constrain a variable at all.
If there is then we are wasting
> time here, static_assert(Copyable<decltype(it)>) we'are
> done.
>
Everything we're talking about is syntactic sugar. The effectiveness of
syntactic sugar is ultimately based on how commonly it will be used, and
how much of a pain the alternative is.
People want to constrain their variables with concepts, and the
`static_assert` method is a painful alternative. So we know there is a
demand for a feature that handles this problem. The question is what the
best solution is.
And thus far, you haven't explained why yours is better than the
alternatives.
--
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.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/9df59e26-2363-4119-9794-090f958c4499%40isocpp.org.
------=_Part_4134_482941154.1531443000458
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">On Thursday, July 12, 2018 at 4:13:56 PM UTC-4, Zhihao Yua=
n wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0=
..8ex;border-left: 1px #ccc solid;padding-left: 1ex;">From: Nicol Bolas <=
<a href=3D"javascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"fnfi7cob=
CQAJ" rel=3D"nofollow" onmousedown=3D"this.href=3D'javascript:';ret=
urn true;" onclick=3D"this.href=3D'javascript:';return true;">jmck.=
...@gmail.com</a>>=20
<br>Sent: Thursday, July 12, 2018 10:51 AM
<br>>>
<br>>> =C2=A0 =C2=A0 =C2=A0Copyable T;=20
<br>>> =C2=A0 =C2=A0 =C2=A0T x =3D foo();=20
<br>>> =C2=A0 =C2=A0 =C2=A0Copyable x =3D foo();=20
<br>>>
<br>>> strictly speaking, they can coexist.
<br>>=20
<br>> Syntactically speaking, they can coexist. But if a terse syntax pr=
oposal is accepted, then your proposal becomes redundant. That is, there=
9;s nothing your proposal can do that a terse one couldn't.
<br>
<br>Not redundant comparing to papers other than Herb's,
<br>as others do not introduce a type-name.<br></blockquote><div><br></div>=
<div>That's because they don't need to; you can introduce a typenam=
e if you want using existing tools.</div><div><br></div><div>In order for y=
our tool to be superior, you need to explain why:</div><div><br></div><div =
style=3D"background-color: rgb(250, 250, 250); border-color: rgb(187, 187, =
187); border-style: solid; border-width: 1px; overflow-wrap: break-word;" c=
lass=3D"prettyprint"><code class=3D"prettyprint"><div class=3D"subprettypri=
nt"><span style=3D"color: #606;" class=3D"styled-by-prettify">Concept</span=
><span style=3D"color: #000;" class=3D"styled-by-prettify"> T</span><span s=
tyle=3D"color: #660;" class=3D"styled-by-prettify">;</span><span style=3D"c=
olor: #000;" class=3D"styled-by-prettify"><br>T </span><span style=3D"color=
: #008;" class=3D"styled-by-prettify">var</span><span style=3D"color: #000;=
" class=3D"styled-by-prettify"> </span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">=3D</span><span style=3D"color: #000;" class=3D"sty=
led-by-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-pr=
ettify">...;</span></div></code></div><div></div><div><br></div><div>is bet=
ter than</div><div><br></div><div style=3D"background-color: rgb(250, 250, =
250); border-color: rgb(187, 187, 187); border-style: solid; border-width: =
1px; overflow-wrap: break-word;" class=3D"prettyprint"><code class=3D"prett=
yprint"><div class=3D"subprettyprint"><span style=3D"color: #606;" class=3D=
"styled-by-prettify">Concept</span><span style=3D"color: #000;" class=3D"st=
yled-by-prettify"> </span><span style=3D"color: #008;" class=3D"styled-by-p=
rettify">auto</span><span style=3D"color: #000;" class=3D"styled-by-prettif=
y"> </span><span style=3D"color: #008;" class=3D"styled-by-prettify">var</s=
pan><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span=
style=3D"color: #660;" class=3D"styled-by-prettify">=3D</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color=
: #660;" class=3D"styled-by-prettify">...;</span><span style=3D"color: #000=
;" class=3D"styled-by-prettify"><br></span><span style=3D"color: #008;" cla=
ss=3D"styled-by-prettify">using</span><span style=3D"color: #000;" class=3D=
"styled-by-prettify"> T </span><span style=3D"color: #660;" class=3D"styled=
-by-prettify">=3D</span><span style=3D"color: #000;" class=3D"styled-by-pre=
ttify"> </span><span style=3D"color: #008;" class=3D"styled-by-prettify">de=
cltype</span><span style=3D"color: #660;" class=3D"styled-by-prettify">(</s=
pan><span style=3D"color: #008;" class=3D"styled-by-prettify">var</span><sp=
an style=3D"color: #660;" class=3D"styled-by-prettify">);</span></div></cod=
e></div><div></div><div><br></div><div>There is no question that they both =
accomplish the same end. They both are two lines long.</div><div><br></div>=
<div>The only difference between them is that... well, in the second case, =
the `using` declaration is entirely optional. If you don't need the typ=
ename, you don't have to fetch it. In your case, it must be fetched exp=
licitly.</div><div><br></div><div>You have yet to explain why your method i=
s superior.<br></div><div><br></div><blockquote class=3D"gmail_quote" style=
=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: =
1ex;">
>> We don't have enough C++20 code to tell whether=20
<br>>> this is a real issue.
<br>>=20
<br>> We don't need C++20 to know whether people frequently need typ=
e names for auto-deduced values. We have plenty of experience with `auto` s=
ince C++11. And while it certainly does happen, it would be difficult to sa=
y that it happens more than 25% of the time you use `auto`.
<br>>=20
<br>> This is especially true if you're among the Almost Always Auto=
crowd, since they deduce variables as a matter of course.
<br>>=20
<br>> Also, don't forget that Concepts TS is a real thing with real =
users behind it. You could ask them.
<br>
<br>No evidence shows that the time we use `auto` is
<br>getting close to the time we constrained-type-specifiers,
<br>there are plenty of cases where constraining is
<br>unnecessary.</blockquote><div><br></div><div>Um, if what you're say=
ing is true, you <i>do</i> realize that you're arguing against your own=
feature, right? Because if people don't want to constrain their deduce=
d variables... what do we need your feature for?<br></div><div><br></div><b=
lockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;borde=
r-left: 1px #ccc solid;padding-left: 1ex;">I checked text_view's code a=
nd had
<br>yet find a use of constrained-type-specifier.
<br>
<br>>> =C2=A0I can raise a hypophysis saying=20
<br>>> "repeated constraints happens frequently:"=20
<br>>>
<br>>> =C2=A0 =C2=A0 Iterator T;=20
<br>>> =C2=A0 =C2=A0 T a =3D begin(...);=20
<br>>> =C2=A0 =C2=A0 // ...=20
<br>>> =C2=A0 =C2=A0 T ed =3D find(...);=20
<br>>=20
<br>> But we don't need data, because the alternatives work and don&=
#39;t take up more lines of code:
<br>>=20
<br>> Iterator auto a =3D begin(...);
<br>> using T =3D decltype(a);
<br>> // ...
<br>> T ed =3D find(...);
<br>
<br>If decltype(a) is acceptable, why we need to
<br>constrain `auto` at all?<br></blockquote><div><br></div><div></div><div=
>The purpose of constraining `auto` deduction is to prevent errors, to veri=
fy that the type being used in the expression has the operations that you t=
hink it does. The purpose of getting a typename for a variable is to <i>get=
its typename</i>.</div><div><br></div><div>These are entirely orthogonal a=
ctions. One user may want a typename even for an unconstrained deduced vari=
able. Another user may not care to get the typename for a constrained deduc=
ed variable. Neither feature in any way affects the need for the other.<br>=
</div><br><div>I don't understand what you're getting at with this =
question.<br></div><div><br></div><blockquote class=3D"gmail_quote" style=
=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: =
1ex;">
> EqualityComparable auto a =3D ..., b =3D ...;
<br>>=20
<br>> Normally, `auto` deduction of multiple variables have to agree in =
types, but for constrained deduction, we can allow them to deduce different=
types, so long as the constraint has different types to deduce.
<br>
<br>That syntax is indistinguishable to
<br>
<br>=C2=A0 =C2=A0 Copyable auto a =3D ..., b =3D ...;
<br>
<br>Different types, each satisfying Copyable, rather than
<br>satisfying EqualityComparable<decltype(a)<wbr>, decltype(b)>.<br>=
</blockquote><div><br></div><div>My point is that your statement that there=
's no way for terse syntax to be used for multiple deductions is incorr=
ect. Maybe that particular syntax wouldn't work (though since it's =
new syntax, we could require that constrained declarations make the number =
of variables match the number of template parameters), but I mentioned othe=
r syntaxes that certainly could work.</div><div><br></div><blockquote class=
=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #cc=
c solid;padding-left: 1ex;">
> My point in bringing that up is that we already have a way to do that.=
The idiom is `auto a =3D ...; using T =3D decltype(a);`. That's the id=
iom all of the terse syntaxes would use for this too, and therefore they wo=
uld be consistent with unconstrained `auto` use.
<br>>=20
<br>> In order to create an equally consistent idiom, you now have to cr=
eate an "Any" concept, apply it to a `T`, then use that `T` to &q=
uot;constrain" a deduced variable. Why is that better?
<br>
<br>There is no such idiom.</blockquote><div><br></div><div>I'm not sur=
e what you are saying. Are you saying that people who want to deduce a vari=
able and access the deduced typename don't use `decltype(variablename)`=
to get it? Or that they don't use `using T =3D decltype(variablename)`=
to get it? Because the latter is merely a question of whether they need a =
shorthand.</div><div><br></div><div>And if it is indeed the case that users=
usually don't need a shorthand, then your syntax comes up short, since=
it requires the creation of that shorthand in order to constrain a variabl=
e at all.<br></div><div><br></div><blockquote class=3D"gmail_quote" style=
=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: =
1ex;"> If there is then we are wasting
<br>time here, static_assert(Copyable<<wbr>decltype(it)>) we'are
<br>done.
<br></blockquote><div><br></div><div>Everything we're talking about is =
syntactic sugar. The effectiveness of syntactic sugar is ultimately based o=
n how commonly it will be used, and how much of a pain the alternative is.<=
/div><div><br></div><div>People want to constrain their variables with conc=
epts, and the `static_assert` method is a painful alternative. So we know t=
here is a demand for a feature that handles this problem. The question is w=
hat the best solution is.</div><div><br></div><div>And thus far, you haven&=
#39;t explained why yours is better than the alternatives.<br></div></div>
<p></p>
-- <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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/9df59e26-2363-4119-9794-090f958c4499%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/9df59e26-2363-4119-9794-090f958c4499=
%40isocpp.org</a>.<br />
------=_Part_4134_482941154.1531443000458--
------=_Part_4133_152517083.1531443000458--
.
Author: Nicol Bolas <jmckesson@gmail.com>
Date: Thu, 12 Jul 2018 17:57:01 -0700 (PDT)
Raw View
------=_Part_13172_1954716512.1531443422012
Content-Type: multipart/alternative;
boundary="----=_Part_13173_1892020889.1531443422012"
------=_Part_13173_1892020889.1531443422012
Content-Type: text/plain; charset="UTF-8"
On Thursday, July 12, 2018 at 5:06:06 PM UTC-4, mihailn...@gmail.com wrote:
>
> On Thursday, July 12, 2018 at 11:20:24 PM UTC+3, Zhihao Yuan wrote:
>>
>> From: mihailn...@gmail.com <mihailn...@gmail.com>
>> Sent: Thursday, July 12, 2018 4:58 AM
>> > With types
>> >
>> > template<. . .>
>> > auto func()
>> > {
>> > Concept Type;
>> >
>> > if constexpr(something)
>> > Type var = . . .;
>> > else
>> > Type var = . . .;
>> >
>> > // use Type;
>> > }
>> >
>> > But this works even if Concept Type is introduced in scope (other means
>> included)!
>> > if constexpr - will physically remove the scopes altogether. And if it
>> is not a constexpr if, then we could init it outside of scope by other
>> means
>>
>>
>
>> It doesn't, "var" cannot be looked up at the "// use Type"
>> location, so you cannot even use decltype(var) there.
>>
>
> So, the scope remains? Makes sense actually. Well, we have a use case I
> guess :)
>
Is there a more concrete version of this code? Something that does
productive work?
I don't know of any other place in C++ where the meaning of code can change
like this outside of an actual template function. And even then, the
variance is made clear at the top of the function, not inside it. That is,
once you're in a template function, all your parameters have been spelled
out, and every entity has a specific and well-known structure.
Indeed, `if constexpr` was explicitly designed to *not* leak anything from
within the code to external code. The old `static_if` proposal was very
leaky outside of its scope; the more narrow `if constexpr` creates block
that make it impossible for them to affect the static meaning of external
code.
Until this feature. And I find opening up that particular box very
disconcerting.
This looks reminiscent of the way `if constexpr` interacts with deduced
return types. But at least then, no in-function code can execute after
having reached such a `return` statement. Here, you have a typename being
generated on the basis of a variable that no longer exists.
Is this something that can be put to productive work?
--
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.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/bab9a399-a352-47c1-bde6-6727f3090223%40isocpp.org.
------=_Part_13173_1892020889.1531443422012
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">On Thursday, July 12, 2018 at 5:06:06 PM UTC-4, mihailn...=
@gmail.com wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margi=
n-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"l=
tr">On Thursday, July 12, 2018 at 11:20:24 PM UTC+3, Zhihao Yuan wrote:<blo=
ckquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-le=
ft:1px #ccc solid;padding-left:1ex">From: <a rel=3D"nofollow">mihailn...@gm=
ail.com</a> <<a rel=3D"nofollow">mihailn...@gmail.com</a>>=20
<br>Sent: Thursday, July 12, 2018 4:58 AM
<br>> With types
<br>>=20
<br>> template<. . .>
<br>> auto func()
<br>> {=20
<br>> =C2=A0 Concept Type;
<br>>=20
<br>> =C2=A0 if constexpr(something)
<br>> =C2=A0 =C2=A0 Type var =3D . . .;
<br>> =C2=A0 else
<br>> =C2=A0 =C2=A0 Type var =3D . . .;
<br>>=20
<br>> =C2=A0 // use Type;
<br>> }
<br>>=20
<br>> But this works even if Concept Type is introduced in scope (other =
means included)!=20
<br>> if constexpr - will physically remove the scopes altogether. And i=
f it is not a constexpr if, then we could init it outside of scope by other=
means
<br>
<br></blockquote><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=
=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"=
>It doesn't, "var" cannot be looked up at the "// use Ty=
pe"
<br>location, so you cannot even use decltype(var) there.
<br></blockquote><div><br></div><div>So, the scope remains? Makes sense act=
ually. Well, we have a use case I guess :)</div></div></blockquote><div><br=
></div><div>Is there a more concrete version of this code? Something that d=
oes productive work?</div><div><br></div><div>I don't know of any other=
place in C++ where the meaning of code can change like this outside of an =
actual template function. And even then, the variance is made clear at the =
top of the function, not inside it. That is, once you're in a template =
function, all your parameters have been spelled out, and every entity has a=
specific and well-known structure.</div><div><br></div><div>Indeed, `if co=
nstexpr` was explicitly designed to <i>not</i> leak anything from within th=
e code to external code. The old `static_if` proposal was very leaky outsid=
e of its scope; the more narrow `if constexpr` creates block that make it i=
mpossible for them to affect the static meaning of external code.</div><div=
><br></div><div>Until this feature. And I find opening up that particular b=
ox very disconcerting.<br></div><div><br></div><div>This looks reminiscent =
of the way `if constexpr` interacts with deduced return types. But at least=
then, no in-function code can execute after having reached such a `return`=
statement. Here, you have a typename being generated on the basis of a var=
iable that no longer exists.</div><div><br></div><div>Is this something tha=
t can be put to productive work?</div><br></div>
<p></p>
-- <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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/bab9a399-a352-47c1-bde6-6727f3090223%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/bab9a399-a352-47c1-bde6-6727f3090223=
%40isocpp.org</a>.<br />
------=_Part_13173_1892020889.1531443422012--
------=_Part_13172_1954716512.1531443422012--
.
Author: Nicol Bolas <jmckesson@gmail.com>
Date: Thu, 12 Jul 2018 18:04:10 -0700 (PDT)
Raw View
------=_Part_28002_1544195324.1531443850847
Content-Type: multipart/alternative;
boundary="----=_Part_28003_865718243.1531443850848"
------=_Part_28003_865718243.1531443850848
Content-Type: text/plain; charset="UTF-8"
On Thursday, July 12, 2018 at 6:48:04 PM UTC-4, Zhihao Yuan wrote:
>
> From: mihailn...@gmail.com <javascript:> <mihailn...@gmail.com
> <javascript:>>
> Sent: Thursday, July 12, 2018 4:06 PM
> >>>
> >>> namespace n {
> >>>
> >>> StandardLayoutType T; //< allowed?
> >>>
> >> That's the kind of bug that I'm looking for...
> >> It shouldn't be allowed.
> >
> > Any reason why? Except confusion and probably impl difficulties.
>
> Let's say you have this declaration in a header and include
> it in two different translation units, then essentially you
> got a "poor man's namespace template." The outcome of
> enforcing T to be deduced to the same type across
> translation units isn't useful enough to justify its complexity.
>
> I think these declarations should appear only in block scopes,
> and have no linkage, as same as constrained-parameters.
>
So your syntax cannot do something as simple as this at namespace scope:
SomeConstraint Type
inline const Type varname = ...;
The basic idea of constraining a variable is not conceptually limited to
block scopes. This is a limitation of your chosen mechanism to implement
the idea, not the idea itself.
So I'd say that this is a pretty significant flaw. Especially since none of
the other terse syntax proposals have this limitation.
--
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.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/c17e3972-9eb4-4b6e-83fd-6a7daf8969aa%40isocpp.org.
------=_Part_28003_865718243.1531443850848
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">On Thursday, July 12, 2018 at 6:48:04 PM UTC-4, Zhihao Yua=
n wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0=
..8ex;border-left: 1px #ccc solid;padding-left: 1ex;">From: <a href=3D"javas=
cript:" target=3D"_blank" gdf-obfuscated-mailto=3D"YQApGDQkCQAJ" rel=3D"nof=
ollow" onmousedown=3D"this.href=3D'javascript:';return true;" oncli=
ck=3D"this.href=3D'javascript:';return true;">mihailn...@gmail.com<=
/a> <<a href=3D"javascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"=
YQApGDQkCQAJ" rel=3D"nofollow" onmousedown=3D"this.href=3D'javascript:&=
#39;;return true;" onclick=3D"this.href=3D'javascript:';return true=
;">mihailn...@gmail.com</a>>=20
<br>Sent: Thursday, July 12, 2018 4:06 PM
<br>>>>=20
<br>>>> namespace n {=20
<br>>>>=20
<br>>>> StandardLayoutType T; //< allowed?=20
<br>>>>=20
<br>>> That's the kind of bug that I'm looking for...=20
<br>>> It shouldn't be allowed.=20
<br>>=20
<br>> Any reason why? Except confusion and probably impl difficulties.
<br>
<br>Let's say you have this declaration in a header and include
<br>it in two different translation units, then essentially you
<br>got a "poor man's namespace template." The outcome of
<br>enforcing T to be deduced to the same type across
<br>translation units isn't useful enough to justify its complexity.
<br>
<br>I think these declarations should appear only in block scopes,
<br>and have no linkage, as same as constrained-parameters.<br></blockquote=
><div><br></div><div>So your syntax cannot do something as simple as this a=
t namespace scope:</div><div><br></div><div><div style=3D"background-color:=
rgb(250, 250, 250); border-color: rgb(187, 187, 187); border-style: solid;=
border-width: 1px; overflow-wrap: break-word;" class=3D"prettyprint"><code=
class=3D"prettyprint"><div class=3D"subprettyprint"><span style=3D"color: =
#606;" class=3D"styled-by-prettify">SomeConstraint</span><span style=3D"col=
or: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #606;=
" class=3D"styled-by-prettify">Type</span><span style=3D"color: #000;" clas=
s=3D"styled-by-prettify"><br></span><span style=3D"color: #008;" class=3D"s=
tyled-by-prettify">inline</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"> </span><span style=3D"color: #008;" class=3D"styled-by-pret=
tify">const</span><span style=3D"color: #000;" class=3D"styled-by-prettify"=
> </span><span style=3D"color: #606;" class=3D"styled-by-prettify">Type</sp=
an><span style=3D"color: #000;" class=3D"styled-by-prettify"> varname </spa=
n><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: #660;" class=3D"styled-by-prettify">...;</span><span style=3D"color=
: #000;" class=3D"styled-by-prettify"><br></span></div></code></div></div><=
div><br></div><div></div><div>The basic idea of constraining a variable is =
not conceptually limited to block scopes. This is a limitation of your chos=
en mechanism to implement the idea, not the idea itself.</div><div><br></di=
v><div>So I'd say that this is a pretty significant flaw. Especially si=
nce none of the other terse syntax proposals have this limitation.</div></d=
iv>
<p></p>
-- <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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/c17e3972-9eb4-4b6e-83fd-6a7daf8969aa%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/c17e3972-9eb4-4b6e-83fd-6a7daf8969aa=
%40isocpp.org</a>.<br />
------=_Part_28003_865718243.1531443850848--
------=_Part_28002_1544195324.1531443850847--
.
Author: hubert.reinterpretcast@gmail.com
Date: Thu, 12 Jul 2018 19:44:03 -0700 (PDT)
Raw View
------=_Part_139621_1950656006.1531449844043
Content-Type: multipart/alternative;
boundary="----=_Part_139622_1359799829.1531449844043"
------=_Part_139622_1359799829.1531449844043
Content-Type: text/plain; charset="UTF-8"
On Thursday, July 12, 2018 at 4:13:56 PM UTC-4, Zhihao Yuan wrote:
>
> > EqualityComparable auto a = ..., b = ...;
> >
> > Normally, `auto` deduction of multiple variables have to agree in types,
> but for constrained deduction, we can allow them to deduce different types,
> so long as the constraint has different types to deduce.
>
> That syntax is indistinguishable to
>
> Copyable auto a = ..., b = ...;
>
> Different types, each satisfying Copyable, rather than
> satisfying EqualityComparable<decltype(a), decltype(b)>.
>
Wait, that doesn't necessarily say different types. The deduction from each
initializer is required to produce the same deduced type when using auto.
But going back to your statement, the working draft already does something
similar. A0 and A1 below uses the same syntax. Except that one means
different types, each satisfying the mentioned concept; and the other means
different types, altogether satisfying the mentioned concept when put
together into a list.
template <typename T> concept C0 = true;
template <typename ...Ts> concept C1 = true;
template <C0 ...Ts> struct A0 { }; // (C0<Ts> && ...)
template <C1 ...Ts> struct A1 { }; // C1<Ts...>
If you don't like it, then I think papers are welcome. If you do, then
perhaps you can explain what the difference is between this situation and
the grouping-declarators one.
--
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.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/8e02275c-4567-4927-a770-fd3a8044ec14%40isocpp.org.
------=_Part_139622_1359799829.1531449844043
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><br>On Thursday, July 12, 2018 at 4:13:56 PM UTC-4, Zhihao=
Yuan wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-lef=
t: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">> EqualityCompa=
rable auto a =3D ..., b =3D ...;
<br>>=20
<br>> Normally, `auto` deduction of multiple variables have to agree in =
types, but for constrained deduction, we can allow them to deduce different=
types, so long as the constraint has different types to deduce.
<br>
<br>That syntax is indistinguishable to
<br>
<br>=C2=A0 =C2=A0 Copyable auto a =3D ..., b =3D ...;
<br>
<br>Different types, each satisfying Copyable, rather than
<br>satisfying EqualityComparable<decltype(a)<wbr>, decltype(b)>.
<br></blockquote><div></div>Wait, that doesn't necessarily say differen=
t types. The deduction from each initializer is required to produce the sam=
e deduced type when using <span style=3D"font-family: courier new,monospace=
;">auto</span>.<br><br>But going back to your statement, the working draft =
already does something similar. <span style=3D"font-family: courier new,mon=
ospace;">A0</span> and <span style=3D"font-family: courier new,monospace;">=
A1</span> below uses the same syntax. Except that one means different types=
, each satisfying the mentioned concept; and the other means different type=
s, altogether satisfying the mentioned concept when put together into a lis=
t.<br><br>template <typename T> concept C0 =3D true;<br>template <=
typename ...Ts> concept C1 =3D true;<br><br>template <C0 ...Ts> st=
ruct A0 { }; // (C0<Ts> && ...)<br>template <C1 ...Ts> =
struct A1 { }; // C1<Ts...><br><br>If you don't like it, then I t=
hink papers are welcome. If you do, then perhaps you can explain what the d=
ifference is between this situation and the grouping-declarators one.<br><b=
r></div>
<p></p>
-- <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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/8e02275c-4567-4927-a770-fd3a8044ec14%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/8e02275c-4567-4927-a770-fd3a8044ec14=
%40isocpp.org</a>.<br />
------=_Part_139622_1359799829.1531449844043--
------=_Part_139621_1950656006.1531449844043--
.
Author: Zhihao Yuan <zy@miator.net>
Date: Fri, 13 Jul 2018 00:35:22 -0400
Raw View
From: Nicol Bolas <jmckesson@gmail.com>=20
Sent: Thursday, July 12, 2018 7:50 PM
>=20
> In order for your tool to be superior, you need to explain why:
>=20
> Concept T;
> T var =3D ...;
>=20
> is better than
>=20
> Concept auto var =3D ...;
> using T =3D decltype(var);
>=20
> There is no question that they both accomplish the same end. They both ar=
e two lines long.
>=20
The first one has 5 tokens, while the second one
has 11 tokens?
> No evidence shows that the time we use `auto` is=20
> getting close to the time we constrained-type-specifiers,=20
> there are plenty of cases where constraining is=20
> unnecessary.
>=20
> Um, if what you're saying is true, you do realize that you're arguing aga=
inst your own feature, right? Because if people don't want to constrain the=
ir deduced variables... what do we need your feature for?
I showed that there are cases you want to
constrain, it doesn't mean you *always* want to.
> My point is that your statement that there's no way for terse syntax to b=
e used for multiple deductions is incorrect. Maybe that particular syntax w=
ouldn't work (though since it's new syntax, we could require that constrain=
ed declarations make the number of variables match the number of template p=
arameters), but I mentioned other syntaxes that certainly could work.
It's not syntax's problem; logically it's not going to
work. When you are defining two variables you
may have two declarations, how do you connect
and evaluate information from both without
naming them in some way? If relying on variable
names then that's two decltypes, if relying on type-
names then that's my idea.
> Everything we're talking about is syntactic sugar. The effectiveness of s=
yntactic sugar is ultimately based on how commonly it will be used, and how=
much of a pain the alternative is.
>=20
First, constrained-type-name is not a syntax sugar;
it's new entity. Second, "shorthand" isn't the way
I look at the features. Syntax must match intention,
that's the first criteria. When you are deducing and
constraining two variables and want them to be of
the same type, the intention is "declaring two
variables of the same constrained deduced type."
And you should be able to read your code in that
way. Now look at the following code:
Copyable auto a =3D ...;
decltype(a) b =3D ...;
How do you read the code, "declare a Copyable a,
then declare b to be of a's type?" What about this:
Copyable T;
T a =3D ...;
T b =3D ...;
"declare a and b to be of a Copyable T." You have
a balanced intention, so you write code of this
balanced structure, that kind of syntax is what I'm
looking for.
--
Zhihao
--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/zIsxha1LpjzhmMmtmntyw_j6dgG5s8r00BGQarW44h4_5u9E=
k0MIqB3gQ5UTA5UmP_SPuHQGszrvXWCJulOp4vtuhN3QNNeUU3h8LJzAmLk%3D%40miator.net=
..
.
Author: Zhihao Yuan <zy@miator.net>
Date: Fri, 13 Jul 2018 00:42:55 -0400
Raw View
From: Nicol Bolas <jmckesson@gmail.com>=20
Sent: Thursday, July 12, 2018 7:57 PM
>> With types=20
>>=20
>> template<. . .>=20
>> auto func()=20
>> {=20
>> Concept Type;=20
>>=20
>> if constexpr(something)=20
>> Type var =3D . . .;=20
>> else=20
>> Type var =3D . . .;=20
>>=20
>> // use Type;=20
>> }=20
>>=20
>=20
> I don't know of any other place in C++ where the meaning of code can chan=
ge like this outside of an actual template function. And even then, the var=
iance is made clear at the top of the function, not inside it. That is, onc=
e you're in a template function, all your parameters have been spelled out,=
and every entity has a specific and well-known structure.
>=20
> Indeed, `if constexpr` was explicitly designed to not leak anything from =
within the code to external code. The old `static_if` proposal was very lea=
ky outside of its scope; the more narrow `if constexpr` creates block that =
make it impossible for them to affect the static meaning of external code.
It's not changing, nor leaking information.
The model of constrained-type-name in my
mind is that, if the program is well-formed,
then at the time you declare a constrained-
type-name, its type is already be given.
And in a discarded statement of a template
entity, its type is also already be given, just
may refer to a different type.
--
Zhihao Yuan, ID lichray
The best way to predict the future is to invent it.
_______________________________________________
--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/7CjFcoQowKUKcJMZnqhZIE6ivQywnX9fprI2iWEl7hv5Gudo=
K3O95Q8VUpZI0HSZKV55qxJva6ROE_HBdnTQr06l2ASEHyrGI6jwHPxoRoE%3D%40miator.net=
..
.
Author: Zhihao Yuan <zy@miator.net>
Date: Fri, 13 Jul 2018 01:16:14 -0400
Raw View
From: Nicol Bolas <jmckesson@gmail.com>
Sent: Thursday, July 12, 2018 8:04 PM
>
> So your syntax cannot do something as simple as this at namespace scope:
>
> SomeConstraint Type;
> inline const Type varname = ...;
>
> The basic idea of constraining a variable is not conceptually limited to block scopes. This is a limitation of your chosen mechanism to implement the idea, not the idea itself.
>
> So I'd say that this is a pretty significant flaw. Especially since none of the other terse syntax proposals have this limitation.
The example shown in my Motivation does not cover
this use, whether not having it is a flaw I'm not sure.
After all, in namespace scopes no code is dependent,
so I don't feel strongly about either.
--
Zhihao Yuan, ID lichray
The best way to predict the future is to invent it.
_______________________________________________
--
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.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/2WYgKyt5KYke6WiSOEca81MuEAuUPdnGlD2wyCI-29W2WNnV3710UUBxb_U6YiIKadqESQLwnujkjkr6khVnu0gLCCVDUjM4iFEzaxAlxc0%3D%40miator.net.
.
Author: Zhihao Yuan <zy@miator.net>
Date: Fri, 13 Jul 2018 01:32:54 -0400
Raw View
From: hubert.reinterpretcast@gmail.com <hubert.reinterpretcast@gmail.com>
Sent: Thursday, July 12, 2018 9:44 PM
>
> template <typename T> concept C0 = true;
> template <typename ...Ts> concept C1 = true;
>
> template <C0 ...Ts> struct A0 { }; // (C0<Ts> && ...)
> template <C1 ...Ts> struct A1 { }; // C1<Ts...>
>
> If you don't like it, then I think papers are welcome. [...]
Oh dear, that's a crazy one, I wish P1141R0's wording
can get rid of it (because that's essentially the 4th kind).
If we have a multi-argument constrained-parameter like
I suggested, we could make this orthogonal with a
different syntax, like `Sortable Ts...,` where `Sortable`
doesn't need to be a concept accepting a parameter pack.
--
Zhihao Yuan, ID lichray
The best way to predict the future is to invent it.
_______________________________________________
--
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.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/w6Lqc8Xm85A7T5i5JTIJsAoFOYd5xwY1Iyi-yah6BG_CZbT-wVcc3-0slIE_7IthHHtzJJg1Aq5B3yJphYj88BYYrxaxU4HdhNlxGnpfRRU%3D%40miator.net.
.
Author: mihailnajdenov@gmail.com
Date: Fri, 13 Jul 2018 00:45:59 -0700 (PDT)
Raw View
------=_Part_37140_1888108935.1531467959176
Content-Type: multipart/alternative;
boundary="----=_Part_37141_50913461.1531467959179"
------=_Part_37141_50913461.1531467959179
Content-Type: text/plain; charset="UTF-8"
On Friday, July 13, 2018 at 1:48:04 AM UTC+3, Zhihao Yuan wrote:
>
> From: mihailn...@gmail.com <javascript:> <mihailn...@gmail.com
> <javascript:>>
> Sent: Thursday, July 12, 2018 4:06 PM
> >>>
> >>> namespace n {
> >>>
> >>> StandardLayoutType T; //< allowed?
> >>>
> >> That's the kind of bug that I'm looking for...
> >> It shouldn't be allowed.
> >
> > Any reason why? Except confusion and probably impl difficulties.
>
> Let's say you have this declaration in a header and include
> it in two different translation units, then essentially you
> got a "poor man's namespace template." The outcome of
> enforcing T to be deduced to the same type across
> translation units isn't useful enough to justify its complexity.
>
> I think these declarations should appear only in block scopes,
> and have no linkage, as same as constrained-parameters.
>
Hum, the way I see it the type must be the same only in a given template
instantiation not across all instantiations
namespace a {
Number Num;
template<Something S>
auto func()
{
Num n = S.do();
Num p = . . .;
// Num will be the same for func, lets say an int
}
template<SomethingElse S>
auto func()
{
Num n = S.do();
// Num will be the same for func - a float
}
}//< a
// other TU
#include <a.h>
namespace b {
template<Something S>
auto func()
{
a::Num n = S.do();
// a::Num will be short
}
}//< b
I don't think it is good idea, but I don't see much of a problem.
Now, if
namespace a {
Number Num;
const N var = 1;
}//<a
and
#include <a.h>
namespace a {
const N var2 = "string";
}
or
namespace b {
const a::N var = "string";
}
Will fail - N is an int.
The point is - the name can cross scopes, much like always, bounding
(template instantiation) can't
That is the same as in the constexpr if case in local scope - same name
different instantiations, different bounding
Of course none of this is recommended practice, much like global variables
are bad
For example
namespace a {
Number Num;
}//<a
namespace b {
const a::N bvar = 1;
}
now, if we include a file that
namespace a {
const a::N somevar = 1.f;
}//<a
BEFORE b, then we "silently" change bvar to float
This is one of the reasons I prefer to *not* let late bounding *just yet*.
I see no material benefit, yet multiple issues.
I am ok with Number auto
And I hope it will be upgraded to Number T as it *dramatically* improves
declarations as one sees a type like he always did, granted not a concrete
one
[](All Args&&... args) { f(std::forward<Args>(args)...); }
*I will take that before ANY other form!*
--
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.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/36f3bb9f-ca72-428c-b016-a3c035d657d8%40isocpp.org.
------=_Part_37141_50913461.1531467959179
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><br><br>On Friday, July 13, 2018 at 1:48:04 AM UTC+3, Zhih=
ao Yuan wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-l=
eft: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">From: <a onmouse=
down=3D"this.href=3D'javascript:';return true;" onclick=3D"this.hre=
f=3D'javascript:';return true;" href=3D"javascript:" target=3D"_bla=
nk" rel=3D"nofollow" gdf-obfuscated-mailto=3D"YQApGDQkCQAJ">mihailn...@gmai=
l.com</a> <<a onmousedown=3D"this.href=3D'javascript:';return tr=
ue;" onclick=3D"this.href=3D'javascript:';return true;" href=3D"jav=
ascript:" target=3D"_blank" rel=3D"nofollow" gdf-obfuscated-mailto=3D"YQApG=
DQkCQAJ">mihailn...@gmail.com</a>>=20
<br>Sent: Thursday, July 12, 2018 4:06 PM
<br>>>>=20
<br>>>> namespace n {=20
<br>>>>=20
<br>>>> StandardLayoutType T; //< allowed?=20
<br>>>>=20
<br>>> That's the kind of bug that I'm looking for...=20
<br>>> It shouldn't be allowed.=20
<br>>=20
<br>> Any reason why? Except confusion and probably impl difficulties.
<br>
<br>Let's say you have this declaration in a header and include
<br>it in two different translation units, then essentially you
<br>got a "poor man's namespace template." The outcome of
<br>enforcing T to be deduced to the same type across
<br>translation units isn't useful enough to justify its complexity.
<br>
<br>I think these declarations should appear only in block scopes,
<br>and have no linkage, as same as constrained-parameters.
<br></blockquote><div><br></div><div>Hum, the way I see it the type must be=
the same only in a given template instantiation not across all=C2=A0=C2=A0=
<span style=3D"display: inline !important; float: none; background-color: t=
ransparent; color: rgb(34, 34, 34); font-family: "Arial","He=
lvetica",sans-serif; font-size: 13px; font-style: normal; font-variant=
: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align:=
left; text-decoration: none; text-indent: 0px; text-transform: none; -webk=
it-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">instant=
iations</span></div><div><span style=3D"text-align: left; color: rgb(34, 34=
, 34); text-transform: none; text-indent: 0px; letter-spacing: normal; font=
-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; te=
xt-decoration: none; word-spacing: 0px; display: inline !important; white-s=
pace: normal; orphans: 2; float: none; -webkit-text-stroke-width: 0px; back=
ground-color: transparent;"><font face=3D"courier new,monospace"></font><br=
></span></div><div><span style=3D"text-align: left; color: rgb(34, 34, 34);=
text-transform: none; text-indent: 0px; letter-spacing: normal; font-size:=
13px; font-style: normal; font-variant: normal; font-weight: 400; text-dec=
oration: none; word-spacing: 0px; display: inline !important; white-space: =
normal; orphans: 2; float: none; -webkit-text-stroke-width: 0px; background=
-color: transparent;"><font face=3D"courier new,monospace">namespace a {</f=
ont></span></div><div><span style=3D"text-align: left; color: rgb(34, 34, 3=
4); text-transform: none; text-indent: 0px; letter-spacing: normal; font-si=
ze: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-=
decoration: none; word-spacing: 0px; display: inline !important; white-spac=
e: normal; orphans: 2; float: none; -webkit-text-stroke-width: 0px; backgro=
und-color: transparent;"><font face=3D"courier new,monospace"></font><br></=
span></div><div><span style=3D"text-align: left; color: rgb(34, 34, 34); te=
xt-transform: none; text-indent: 0px; letter-spacing: normal; font-size: 13=
px; font-style: normal; font-variant: normal; font-weight: 400; text-decora=
tion: none; word-spacing: 0px; display: inline !important; white-space: nor=
mal; orphans: 2; float: none; -webkit-text-stroke-width: 0px; background-co=
lor: transparent;"><font face=3D"courier new,monospace">Number Num;</font><=
/span></div><div><span style=3D"text-align: left; color: rgb(34, 34, 34); t=
ext-transform: none; text-indent: 0px; letter-spacing: normal; font-size: 1=
3px; font-style: normal; font-variant: normal; font-weight: 400; text-decor=
ation: none; word-spacing: 0px; display: inline !important; white-space: no=
rmal; orphans: 2; float: none; -webkit-text-stroke-width: 0px; background-c=
olor: transparent;"><font face=3D"courier new,monospace"></font><br></span>=
</div><div><span style=3D"text-align: left; color: rgb(34, 34, 34); text-tr=
ansform: none; text-indent: 0px; letter-spacing: normal; font-size: 13px; f=
ont-style: normal; font-variant: normal; font-weight: 400; text-decoration:=
none; word-spacing: 0px; display: inline !important; white-space: normal; =
orphans: 2; float: none; -webkit-text-stroke-width: 0px; background-color: =
transparent;"><font face=3D"courier new,monospace">template<Something S&=
gt;</font></span></div><div><span style=3D"text-align: left; color: rgb(34,=
34, 34); text-transform: none; text-indent: 0px; letter-spacing: normal; f=
ont-size: 13px; font-style: normal; font-variant: normal; font-weight: 400;=
text-decoration: none; word-spacing: 0px; display: inline !important; whit=
e-space: normal; orphans: 2; float: none; -webkit-text-stroke-width: 0px; b=
ackground-color: transparent;"><font face=3D"courier new,monospace">auto fu=
nc()</font></span></div><div><span style=3D"text-align: left; color: rgb(34=
, 34, 34); text-transform: none; text-indent: 0px; letter-spacing: normal; =
font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400=
; text-decoration: none; word-spacing: 0px; display: inline !important; whi=
te-space: normal; orphans: 2; float: none; -webkit-text-stroke-width: 0px; =
background-color: transparent;"><font face=3D"courier new,monospace">{</fon=
t></span></div><div><span style=3D"text-align: left; color: rgb(34, 34, 34)=
; text-transform: none; text-indent: 0px; letter-spacing: normal; font-size=
: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-de=
coration: none; word-spacing: 0px; display: inline !important; white-space:=
normal; orphans: 2; float: none; -webkit-text-stroke-width: 0px; backgroun=
d-color: transparent;"><font face=3D"courier new,monospace">=C2=A0 Num n =
=3D S.do();</font></span></div><div><span style=3D"text-align: left; color:=
rgb(34, 34, 34); text-transform: none; text-indent: 0px; letter-spacing: n=
ormal; font-size: 13px; font-style: normal; font-variant: normal; font-weig=
ht: 400; text-decoration: none; word-spacing: 0px; display: inline !importa=
nt; white-space: normal; orphans: 2; float: none; -webkit-text-stroke-width=
: 0px; background-color: transparent;"><font face=3D"courier new,monospace"=
><br></font></span></div><div><span style=3D"text-align: left; color: rgb(3=
4, 34, 34); text-transform: none; text-indent: 0px; letter-spacing: normal;=
font-size: 13px; font-style: normal; font-variant: normal; font-weight: 40=
0; text-decoration: none; word-spacing: 0px; display: inline !important; wh=
ite-space: normal; orphans: 2; float: none; -webkit-text-stroke-width: 0px;=
background-color: transparent;"><font face=3D"courier new,monospace">=C2=
=A0 Num p =3D . . .;</font></span></div><div><span style=3D"text-align: lef=
t; color: rgb(34, 34, 34); text-transform: none; text-indent: 0px; letter-s=
pacing: normal; font-size: 13px; font-style: normal; font-variant: normal; =
font-weight: 400; text-decoration: none; word-spacing: 0px; display: inline=
!important; white-space: normal; orphans: 2; float: none; -webkit-text-str=
oke-width: 0px; background-color: transparent;"><font face=3D"courier new,m=
onospace"><br></font></span></div><div><span style=3D"text-align: left; col=
or: rgb(34, 34, 34); text-transform: none; text-indent: 0px; letter-spacing=
: normal; font-size: 13px; font-style: normal; font-variant: normal; font-w=
eight: 400; text-decoration: none; word-spacing: 0px; display: inline !impo=
rtant; white-space: normal; orphans: 2; float: none; -webkit-text-stroke-wi=
dth: 0px; background-color: transparent;"><font face=3D"courier new,monospa=
ce">=C2=A0 // Num will be the same for func, lets say an int</font></span><=
/div><div><span style=3D"text-align: left; color: rgb(34, 34, 34); text-tra=
nsform: none; text-indent: 0px; letter-spacing: normal; font-size: 13px; fo=
nt-style: normal; font-variant: normal; font-weight: 400; text-decoration: =
none; word-spacing: 0px; display: inline !important; white-space: normal; o=
rphans: 2; float: none; -webkit-text-stroke-width: 0px; background-color: t=
ransparent;"><font face=3D"courier new,monospace">}</font></span></div><div=
><span style=3D"text-align: left; color: rgb(34, 34, 34); text-transform: n=
one; text-indent: 0px; letter-spacing: normal; font-size: 13px; font-style:=
normal; font-variant: normal; font-weight: 400; text-decoration: none; wor=
d-spacing: 0px; display: inline !important; white-space: normal; orphans: 2=
; float: none; -webkit-text-stroke-width: 0px; background-color: transparen=
t;"><font face=3D"courier new,monospace"></font><br></span></div><div><span=
style=3D"text-align: left; color: rgb(34, 34, 34); text-transform: none; t=
ext-indent: 0px; letter-spacing: normal; font-size: 13px; font-variant: nor=
mal; word-spacing: 0px; display: inline !important; white-space: normal; or=
phans: 2; float: none; -webkit-text-stroke-width: 0px; background-color: tr=
ansparent;"><div style=3D"background-color: transparent; border-bottom-colo=
r: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; bo=
rder-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100=
%; border-image-source: none; border-image-width: 1; border-left-color: rgb=
(34, 34, 34); border-left-style: none; border-left-width: 0px; border-right=
-color: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px;=
border-top-color: rgb(34, 34, 34); border-top-style: none; border-top-widt=
h: 0px; color: rgb(34, 34, 34); font-family: &quot;Arial&quot;,&=
;quot;Helvetica&quot;,sans-serif; font-size: 13px; font-style: normal; =
font-variant: normal; font-weight: 400; letter-spacing: normal; margin-bott=
om: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; =
padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0p=
x; text-align: left; text-decoration: none; text-indent: 0px; text-transfor=
m: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing:=
0px;"><span style=3D"background-color: transparent; border-bottom-color: r=
gb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; border=
-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; b=
order-image-source: none; border-image-width: 1; border-left-color: rgb(34,=
34, 34); border-left-style: none; border-left-width: 0px; border-right-col=
or: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; bor=
der-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0=
px; color: rgb(34, 34, 34); display: inline; float: none; font-family: &=
;quot;Arial&quot;,&quot;Helvetica&quot;,sans-serif; font-size: =
13px; font-style: normal; font-variant: normal; font-weight: 400; letter-sp=
acing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; mar=
gin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-r=
ight: 0px; padding-top: 0px; text-align: left; text-decoration: none; text-=
indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-sp=
ace: normal; word-spacing: 0px;"><font face=3D"courier new,monospace" style=
=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border=
-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch; b=
order-image-slice: 100%; border-image-source: none; border-image-width: 1; =
border-left-color: rgb(34, 34, 34); border-left-style: none; border-left-wi=
dth: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none; bo=
rder-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style:=
none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-=
right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; paddin=
g-right: 0px; padding-top: 0px;">template<SomethingElse S></font></sp=
an></div><div style=3D"background-color: transparent; border-bottom-color: =
rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; borde=
r-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; =
border-image-source: none; border-image-width: 1; border-left-color: rgb(34=
, 34, 34); border-left-style: none; border-left-width: 0px; border-right-co=
lor: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; bo=
rder-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width: =
0px; color: rgb(34, 34, 34); font-family: &quot;Arial&quot;,&qu=
ot;Helvetica&quot;,sans-serif; font-size: 13px; font-style: normal; fon=
t-variant: normal; font-weight: 400; letter-spacing: normal; margin-bottom:=
0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; pad=
ding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; =
text-align: left; text-decoration: none; text-indent: 0px; text-transform: =
none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0p=
x;"><span style=3D"background-color: transparent; border-bottom-color: rgb(=
34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; border-im=
age-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; bord=
er-image-source: none; border-image-width: 1; border-left-color: rgb(34, 34=
, 34); border-left-style: none; border-left-width: 0px; border-right-color:=
rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; border=
-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px;=
color: rgb(34, 34, 34); display: inline; float: none; font-family: &qu=
ot;Arial&quot;,&quot;Helvetica&quot;,sans-serif; font-size: 13p=
x; font-style: normal; font-variant: normal; font-weight: 400; letter-spaci=
ng: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin=
-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-righ=
t: 0px; padding-top: 0px; text-align: left; text-decoration: none; text-ind=
ent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space=
: normal; word-spacing: 0px;"><font face=3D"courier new,monospace" style=3D=
"border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bo=
ttom-width: 0px; border-image-outset: 0; border-image-repeat: stretch; bord=
er-image-slice: 100%; border-image-source: none; border-image-width: 1; bor=
der-left-color: rgb(34, 34, 34); border-left-style: none; border-left-width=
: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none; borde=
r-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: no=
ne; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-rig=
ht: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-r=
ight: 0px; padding-top: 0px;">auto func()</font></span></div><div style=3D"=
background-color: transparent; border-bottom-color: rgb(34, 34, 34); border=
-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; bord=
er-image-repeat: stretch; border-image-slice: 100%; border-image-source: no=
ne; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-=
style: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); b=
order-right-style: none; border-right-width: 0px; border-top-color: rgb(34,=
34, 34); border-top-style: none; border-top-width: 0px; color: rgb(34, 34,=
34); font-family: &quot;Arial&quot;,&quot;Helvetica&quot;,=
sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font=
-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px;=
margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; paddi=
ng-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-=
decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stro=
ke-width: 0px; white-space: normal; word-spacing: 0px;"><span style=3D"back=
ground-color: transparent; border-bottom-color: rgb(34, 34, 34); border-bot=
tom-style: none; border-bottom-width: 0px; border-image-outset: 0; border-i=
mage-repeat: stretch; border-image-slice: 100%; border-image-source: none; =
border-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-styl=
e: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); borde=
r-right-style: none; border-right-width: 0px; border-top-color: rgb(34, 34,=
34); border-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34)=
; display: inline; float: none; font-family: &quot;Arial&quot;,&=
;quot;Helvetica&quot;,sans-serif; font-size: 13px; font-style: normal; =
font-variant: normal; font-weight: 400; letter-spacing: normal; margin-bott=
om: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; =
padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0p=
x; text-align: left; text-decoration: none; text-indent: 0px; text-transfor=
m: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing:=
0px;"><font face=3D"courier new,monospace" style=3D"border-bottom-color: r=
gb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; border=
-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; b=
order-image-source: none; border-image-width: 1; border-left-color: rgb(34,=
34, 34); border-left-style: none; border-left-width: 0px; border-right-col=
or: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; bor=
der-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0=
px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0p=
x; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top:=
0px;">{</font></span></div><div style=3D"background-color: transparent; bo=
rder-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-botto=
m-width: 0px; border-image-outset: 0; border-image-repeat: stretch; border-=
image-slice: 100%; border-image-source: none; border-image-width: 1; border=
-left-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0=
px; border-right-color: rgb(34, 34, 34); border-right-style: none; border-r=
ight-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none;=
border-top-width: 0px; color: rgb(34, 34, 34); font-family: &quot;Aria=
l&quot;,&quot;Helvetica&quot;,sans-serif; font-size: 13px; font=
-style: normal; font-variant: normal; font-weight: 400; letter-spacing: nor=
mal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0=
px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px;=
padding-top: 0px; text-align: left; text-decoration: none; text-indent: 0p=
x; text-transform: none; -webkit-text-stroke-width: 0px; white-space: norma=
l; word-spacing: 0px;"><span style=3D"background-color: transparent; border=
-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-wi=
dth: 0px; border-image-outset: 0; border-image-repeat: stretch; border-imag=
e-slice: 100%; border-image-source: none; border-image-width: 1; border-lef=
t-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; =
border-right-color: rgb(34, 34, 34); border-right-style: none; border-right=
-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; bor=
der-top-width: 0px; color: rgb(34, 34, 34); display: inline; float: none; f=
ont-family: &quot;Arial&quot;,&quot;Helvetica&quot;,sans-se=
rif; font-size: 13px; font-style: normal; font-variant: normal; font-weight=
: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin=
-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left=
: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-decorat=
ion: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-widt=
h: 0px; white-space: normal; word-spacing: 0px;"><font face=3D"courier new,=
monospace" style=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-sty=
le: none; border-bottom-width: 0px; border-image-outset: 0; border-image-re=
peat: stretch; border-image-slice: 100%; border-image-source: none; border-=
image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none=
; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right=
-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); b=
order-top-style: none; border-top-width: 0px; margin-bottom: 0px; margin-le=
ft: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-l=
eft: 0px; padding-right: 0px; padding-top: 0px;">=C2=A0 Num n =3D S.do();</=
font></span></div><div style=3D"background-color: transparent; border-botto=
m-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0=
px; border-image-outset: 0; border-image-repeat: stretch; border-image-slic=
e: 100%; border-image-source: none; border-image-width: 1; border-left-colo=
r: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; border=
-right-color: rgb(34, 34, 34); border-right-style: none; border-right-width=
: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; border-to=
p-width: 0px; color: rgb(34, 34, 34); font-family: &quot;Arial&quot=
;,&quot;Helvetica&quot;,sans-serif; font-size: 13px; font-style: no=
rmal; font-variant: normal; font-weight: 400; letter-spacing: normal; margi=
n-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphan=
s: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-t=
op: 0px; text-align: left; text-decoration: none; text-indent: 0px; text-tr=
ansform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-sp=
acing: 0px;"><span style=3D"background-color: transparent; border-bottom-co=
lor: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; =
border-image-outset: 0; border-image-repeat: stretch; border-image-slice: 1=
00%; border-image-source: none; border-image-width: 1; border-left-color: r=
gb(34, 34, 34); border-left-style: none; border-left-width: 0px; border-rig=
ht-color: rgb(34, 34, 34); border-right-style: none; border-right-width: 0p=
x; border-top-color: rgb(34, 34, 34); border-top-style: none; border-top-wi=
dth: 0px; color: rgb(34, 34, 34); display: inline; float: none; font-family=
: &quot;Arial&quot;,&quot;Helvetica&quot;,sans-serif; font-=
size: 13px; font-style: normal; font-variant: normal; font-weight: 400; let=
ter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0p=
x; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; pad=
ding-right: 0px; padding-top: 0px; text-align: left; text-decoration: none;=
text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; wh=
ite-space: normal; word-spacing: 0px;"><font face=3D"courier new,monospace"=
style=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; =
border-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stre=
tch; border-image-slice: 100%; border-image-source: none; border-image-widt=
h: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; border-l=
eft-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: no=
ne; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-=
style: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; m=
argin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; =
padding-right: 0px; padding-top: 0px;"><br></font></span></div><div style=
=3D"background-color: transparent; border-bottom-color: rgb(34, 34, 34); bo=
rder-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; =
border-image-repeat: stretch; border-image-slice: 100%; border-image-source=
: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-l=
eft-style: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34=
); border-right-style: none; border-right-width: 0px; border-top-color: rgb=
(34, 34, 34); border-top-style: none; border-top-width: 0px; color: rgb(34,=
34, 34); font-family: &quot;Arial&quot;,&quot;Helvetica&qu=
ot;,sans-serif; font-size: 13px; font-style: normal; font-variant: normal; =
font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: =
0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; p=
adding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; t=
ext-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-=
stroke-width: 0px; white-space: normal; word-spacing: 0px;"><span style=3D"=
background-color: transparent; border-bottom-color: rgb(34, 34, 34); border=
-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; bord=
er-image-repeat: stretch; border-image-slice: 100%; border-image-source: no=
ne; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-=
style: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); b=
order-right-style: none; border-right-width: 0px; border-top-color: rgb(34,=
34, 34); border-top-style: none; border-top-width: 0px; color: rgb(34, 34,=
34); display: inline; float: none; font-family: &quot;Arial&quot;,=
&quot;Helvetica&quot;,sans-serif; font-size: 13px; font-style: norm=
al; font-variant: normal; font-weight: 400; letter-spacing: normal; margin-=
bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans:=
2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top=
: 0px; text-align: left; text-decoration: none; text-indent: 0px; text-tran=
sform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spac=
ing: 0px;"><font face=3D"courier new,monospace" style=3D"border-bottom-colo=
r: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; bo=
rder-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100=
%; border-image-source: none; border-image-width: 1; border-left-color: rgb=
(34, 34, 34); border-left-style: none; border-left-width: 0px; border-right=
-color: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px;=
border-top-color: rgb(34, 34, 34); border-top-style: none; border-top-widt=
h: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top=
: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-=
top: 0px;">=C2=A0 // Num will be the same for func - a float=C2=A0</font></=
span></div><div style=3D"background-color: transparent; border-bottom-color=
: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; bor=
der-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%=
; border-image-source: none; border-image-width: 1; border-left-color: rgb(=
34, 34, 34); border-left-style: none; border-left-width: 0px; border-right-=
color: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; =
border-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width=
: 0px; color: rgb(34, 34, 34); font-family: &quot;Arial&quot;,&=
quot;Helvetica&quot;,sans-serif; font-size: 13px; font-style: normal; f=
ont-variant: normal; font-weight: 400; letter-spacing: normal; margin-botto=
m: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; p=
adding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px=
; text-align: left; text-decoration: none; text-indent: 0px; text-transform=
: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: =
0px;"><span style=3D"background-color: transparent; border-bottom-color: rg=
b(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; border-=
image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; bo=
rder-image-source: none; border-image-width: 1; border-left-color: rgb(34, =
34, 34); border-left-style: none; border-left-width: 0px; border-right-colo=
r: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; bord=
er-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0p=
x; color: rgb(34, 34, 34); display: inline; float: none; font-family: &=
quot;Arial&quot;,&quot;Helvetica&quot;,sans-serif; font-size: 1=
3px; font-style: normal; font-variant: normal; font-weight: 400; letter-spa=
cing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; marg=
in-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-ri=
ght: 0px; padding-top: 0px; text-align: left; text-decoration: none; text-i=
ndent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-spa=
ce: normal; word-spacing: 0px;"><font face=3D"courier new,monospace" style=
=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border=
-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch; b=
order-image-slice: 100%; border-image-source: none; border-image-width: 1; =
border-left-color: rgb(34, 34, 34); border-left-style: none; border-left-wi=
dth: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none; bo=
rder-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style:=
none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-=
right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; paddin=
g-right: 0px; padding-top: 0px;">}</font></span></div><div style=3D"backgro=
und-color: transparent; border-bottom-color: rgb(34, 34, 34); border-bottom=
-style: none; border-bottom-width: 0px; border-image-outset: 0; border-imag=
e-repeat: stretch; border-image-slice: 100%; border-image-source: none; bor=
der-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: =
none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-r=
ight-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34=
); border-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); f=
ont-family: &quot;Arial&quot;,&quot;Helvetica&quot;,sans-se=
rif; font-size: 13px; font-style: normal; font-variant: normal; font-weight=
: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin=
-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left=
: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-decorat=
ion: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-widt=
h: 0px; white-space: normal; word-spacing: 0px;"><span style=3D"background-=
color: transparent; border-bottom-color: rgb(34, 34, 34); border-bottom-sty=
le: none; border-bottom-width: 0px; border-image-outset: 0; border-image-re=
peat: stretch; border-image-slice: 100%; border-image-source: none; border-=
image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none=
; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right=
-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); b=
order-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); displ=
ay: inline; float: none; font-family: &quot;Arial&quot;,&quot;H=
elvetica&quot;,sans-serif; font-size: 13px; font-style: normal; font-va=
riant: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px=
; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding=
-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text=
-align: left; text-decoration: none; text-indent: 0px; text-transform: none=
; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">=
<font face=3D"courier new,monospace" style=3D"border-bottom-color: rgb(34, =
34, 34); border-bottom-style: none; border-bottom-width: 0px; border-image-=
outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-i=
mage-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34=
); border-left-style: none; border-left-width: 0px; border-right-color: rgb=
(34, 34, 34); border-right-style: none; border-right-width: 0px; border-top=
-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; mar=
gin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padd=
ing-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">=
}//< a</font></span></div><div><b></b><i></i><u></u><sub></sub><sup></su=
p><strike></strike><br></div><div><font face=3D"courier new,monospace">// o=
ther TU</font></div><div><font face=3D"courier new,monospace"><br></font></=
div><div><font face=3D"courier new,monospace">#include <a.h></font></=
div><div><font face=3D"courier new,monospace"><br></font></div><div><font f=
ace=3D"courier new,monospace">namespace b {</font></div><div><font face=3D"=
courier new,monospace"><br></font></div><div><font face=3D"courier new,mono=
space"><div style=3D"background-color: transparent; border-bottom-color: rg=
b(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; border-=
image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; bo=
rder-image-source: none; border-image-width: 1; border-left-color: rgb(34, =
34, 34); border-left-style: none; border-left-width: 0px; border-right-colo=
r: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; bord=
er-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0p=
x; color: rgb(34, 34, 34); font-family: &quot;Arial&quot;,&quot=
;Helvetica&quot;,sans-serif; font-size: 13px; font-style: normal; font-=
variant: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0=
px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; paddi=
ng-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; te=
xt-align: left; text-decoration: none; text-indent: 0px; text-transform: no=
ne; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;=
"><span style=3D"background-color: transparent; border-bottom-color: rgb(34=
, 34, 34); border-bottom-style: none; border-bottom-width: 0px; border-imag=
e-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border=
-image-source: none; border-image-width: 1; border-left-color: rgb(34, 34, =
34); border-left-style: none; border-left-width: 0px; border-right-color: r=
gb(34, 34, 34); border-right-style: none; border-right-width: 0px; border-t=
op-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; c=
olor: rgb(34, 34, 34); display: inline; float: none; font-size: 13px; font-=
style: normal; font-variant: normal; font-weight: 400; letter-spacing: norm=
al; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0p=
x; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; =
padding-top: 0px; text-align: left; text-decoration: none; text-indent: 0px=
; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal=
; word-spacing: 0px;"><font face=3D"courier new,monospace" style=3D"border-=
bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-wid=
th: 0px; border-image-outset: 0; border-image-repeat: stretch; border-image=
-slice: 100%; border-image-source: none; border-image-width: 1; border-left=
-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; b=
order-right-color: rgb(34, 34, 34); border-right-style: none; border-right-=
width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; bord=
er-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px;=
margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0p=
x; padding-top: 0px;">template<Something S></font></span></div><div s=
tyle=3D"background-color: transparent; border-bottom-color: rgb(34, 34, 34)=
; border-bottom-style: none; border-bottom-width: 0px; border-image-outset:=
0; border-image-repeat: stretch; border-image-slice: 100%; border-image-so=
urce: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); bord=
er-left-style: none; border-left-width: 0px; border-right-color: rgb(34, 34=
, 34); border-right-style: none; border-right-width: 0px; border-top-color:=
rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; color: rgb=
(34, 34, 34); font-family: &quot;Arial&quot;,&quot;Helvetica&am=
p;quot;,sans-serif; font-size: 13px; font-style: normal; font-variant: norm=
al; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-le=
ft: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0p=
x; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: lef=
t; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-t=
ext-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><span style=
=3D"background-color: transparent; border-bottom-color: rgb(34, 34, 34); bo=
rder-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; =
border-image-repeat: stretch; border-image-slice: 100%; border-image-source=
: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-l=
eft-style: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34=
); border-right-style: none; border-right-width: 0px; border-top-color: rgb=
(34, 34, 34); border-top-style: none; border-top-width: 0px; color: rgb(34,=
34, 34); display: inline; float: none; font-size: 13px; font-style: normal=
; font-variant: normal; font-weight: 400; letter-spacing: normal; margin-bo=
ttom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2=
; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: =
0px; text-align: left; text-decoration: none; text-indent: 0px; text-transf=
orm: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacin=
g: 0px;"><font face=3D"courier new,monospace" style=3D"border-bottom-color:=
rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; bord=
er-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%;=
border-image-source: none; border-image-width: 1; border-left-color: rgb(3=
4, 34, 34); border-left-style: none; border-left-width: 0px; border-right-c=
olor: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; b=
order-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width:=
0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: =
0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-to=
p: 0px;">auto func()</font></span></div><div style=3D"background-color: tra=
nsparent; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; =
border-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stre=
tch; border-image-slice: 100%; border-image-source: none; border-image-widt=
h: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; border-l=
eft-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: no=
ne; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-=
style: none; border-top-width: 0px; color: rgb(34, 34, 34); font-family: &a=
mp;quot;Arial&quot;,&quot;Helvetica&quot;,sans-serif; font-size=
: 13px; font-style: normal; font-variant: normal; font-weight: 400; letter-=
spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; m=
argin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding=
-right: 0px; padding-top: 0px; text-align: left; text-decoration: none; tex=
t-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-=
space: normal; word-spacing: 0px;"><span style=3D"background-color: transpa=
rent; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; bord=
er-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch;=
border-image-slice: 100%; border-image-source: none; border-image-width: 1=
; border-left-color: rgb(34, 34, 34); border-left-style: none; border-left-=
width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none; =
border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-styl=
e: none; border-top-width: 0px; color: rgb(34, 34, 34); display: inline; fl=
oat: none; font-size: 13px; font-style: normal; font-variant: normal; font-=
weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; =
margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; paddin=
g-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-d=
ecoration: none; text-indent: 0px; text-transform: none; -webkit-text-strok=
e-width: 0px; white-space: normal; word-spacing: 0px;"><font face=3D"courie=
r new,monospace" style=3D"border-bottom-color: rgb(34, 34, 34); border-bott=
om-style: none; border-bottom-width: 0px; border-image-outset: 0; border-im=
age-repeat: stretch; border-image-slice: 100%; border-image-source: none; b=
order-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style=
: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border=
-right-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, =
34); border-top-style: none; border-top-width: 0px; margin-bottom: 0px; mar=
gin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; pad=
ding-left: 0px; padding-right: 0px; padding-top: 0px;">{</font></span></div=
><div style=3D"background-color: transparent; border-bottom-color: rgb(34, =
34, 34); border-bottom-style: none; border-bottom-width: 0px; border-image-=
outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-i=
mage-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34=
); border-left-style: none; border-left-width: 0px; border-right-color: rgb=
(34, 34, 34); border-right-style: none; border-right-width: 0px; border-top=
-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; col=
or: rgb(34, 34, 34); font-family: &quot;Arial&quot;,&quot;Helve=
tica&quot;,sans-serif; font-size: 13px; font-style: normal; font-varian=
t: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; ma=
rgin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bot=
tom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-ali=
gn: left; text-decoration: none; text-indent: 0px; text-transform: none; -w=
ebkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><spa=
n style=3D"background-color: transparent; border-bottom-color: rgb(34, 34, =
34); border-bottom-style: none; border-bottom-width: 0px; border-image-outs=
et: 0; border-image-repeat: stretch; border-image-slice: 100%; border-image=
-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); b=
order-left-style: none; border-left-width: 0px; border-right-color: rgb(34,=
34, 34); border-right-style: none; border-right-width: 0px; border-top-col=
or: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; color: =
rgb(34, 34, 34); display: inline; float: none; font-size: 13px; font-style:=
normal; font-variant: normal; font-weight: 400; letter-spacing: normal; ma=
rgin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orp=
hans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; paddin=
g-top: 0px; text-align: left; text-decoration: none; text-indent: 0px; text=
-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word=
-spacing: 0px;"><font face=3D"courier new,monospace" style=3D"border-bottom=
-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0p=
x; border-image-outset: 0; border-image-repeat: stretch; border-image-slice=
: 100%; border-image-source: none; border-image-width: 1; border-left-color=
: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; border-=
right-color: rgb(34, 34, 34); border-right-style: none; border-right-width:=
0px; border-top-color: rgb(34, 34, 34); border-top-style: none; border-top=
-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margi=
n-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; pad=
ding-top: 0px;">=C2=A0 a::Num n =3D S.do();</font></span></div><div style=
=3D"background-color: transparent; border-bottom-color: rgb(34, 34, 34); bo=
rder-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; =
border-image-repeat: stretch; border-image-slice: 100%; border-image-source=
: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-l=
eft-style: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34=
); border-right-style: none; border-right-width: 0px; border-top-color: rgb=
(34, 34, 34); border-top-style: none; border-top-width: 0px; color: rgb(34,=
34, 34); font-family: &quot;Arial&quot;,&quot;Helvetica&qu=
ot;,sans-serif; font-size: 13px; font-style: normal; font-variant: normal; =
font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: =
0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; p=
adding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; t=
ext-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-=
stroke-width: 0px; white-space: normal; word-spacing: 0px;"><span style=3D"=
background-color: transparent; border-bottom-color: rgb(34, 34, 34); border=
-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; bord=
er-image-repeat: stretch; border-image-slice: 100%; border-image-source: no=
ne; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-=
style: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); b=
order-right-style: none; border-right-width: 0px; border-top-color: rgb(34,=
34, 34); border-top-style: none; border-top-width: 0px; color: rgb(34, 34,=
34); display: inline; float: none; font-size: 13px; font-style: normal; fo=
nt-variant: normal; font-weight: 400; letter-spacing: normal; margin-bottom=
: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; pa=
dding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;=
text-align: left; text-decoration: none; text-indent: 0px; text-transform:=
none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0=
px;"><font face=3D"courier new,monospace" style=3D"border-bottom-color: rgb=
(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; border-i=
mage-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; bor=
der-image-source: none; border-image-width: 1; border-left-color: rgb(34, 3=
4, 34); border-left-style: none; border-left-width: 0px; border-right-color=
: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; borde=
r-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px=
; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;=
padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0=
px;"><br style=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style=
: none; border-bottom-width: 0px; border-image-outset: 0; border-image-repe=
at: stretch; border-image-slice: 100%; border-image-source: none; border-im=
age-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; =
border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-s=
tyle: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); bor=
der-top-style: none; border-top-width: 0px; margin-bottom: 0px; margin-left=
: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-lef=
t: 0px; padding-right: 0px; padding-top: 0px;"></font></span></div><div sty=
le=3D"background-color: transparent; border-bottom-color: rgb(34, 34, 34); =
border-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0=
; border-image-repeat: stretch; border-image-slice: 100%; border-image-sour=
ce: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); border=
-left-style: none; border-left-width: 0px; border-right-color: rgb(34, 34, =
34); border-right-style: none; border-right-width: 0px; border-top-color: r=
gb(34, 34, 34); border-top-style: none; border-top-width: 0px; color: rgb(3=
4, 34, 34); font-family: &quot;Arial&quot;,&quot;Helvetica&=
quot;,sans-serif; font-size: 13px; font-style: normal; font-variant: normal=
; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left=
: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px;=
padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;=
text-decoration: none; text-indent: 0px; text-transform: none; -webkit-tex=
t-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><span style=
=3D"background-color: transparent; border-bottom-color: rgb(34, 34, 34); bo=
rder-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; =
border-image-repeat: stretch; border-image-slice: 100%; border-image-source=
: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-l=
eft-style: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34=
); border-right-style: none; border-right-width: 0px; border-top-color: rgb=
(34, 34, 34); border-top-style: none; border-top-width: 0px; color: rgb(34,=
34, 34); display: inline; float: none; font-size: 13px; font-style: normal=
; font-variant: normal; font-weight: 400; letter-spacing: normal; margin-bo=
ttom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2=
; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: =
0px; text-align: left; text-decoration: none; text-indent: 0px; text-transf=
orm: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacin=
g: 0px;"><font face=3D"courier new,monospace" style=3D"border-bottom-color:=
rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; bord=
er-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%;=
border-image-source: none; border-image-width: 1; border-left-color: rgb(3=
4, 34, 34); border-left-style: none; border-left-width: 0px; border-right-c=
olor: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; b=
order-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width:=
0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: =
0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-to=
p: 0px;">=C2=A0 // a::Num will be short</font></span></div></font><div styl=
e=3D"background-color: transparent; border-bottom-color: rgb(34, 34, 34); b=
order-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0;=
border-image-repeat: stretch; border-image-slice: 100%; border-image-sourc=
e: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-=
left-style: none; border-left-width: 0px; border-right-color: rgb(34, 34, 3=
4); border-right-style: none; border-right-width: 0px; border-top-color: rg=
b(34, 34, 34); border-top-style: none; border-top-width: 0px; color: rgb(34=
, 34, 34); font-family: &quot;Arial&quot;,&quot;Helvetica&q=
uot;,sans-serif; font-size: 13px; font-style: normal; font-variant: normal;=
font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left:=
0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; =
padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; =
text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text=
-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><font face=3D"=
courier new,monospace"><span style=3D"background-color: transparent; border=
-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-wi=
dth: 0px; border-image-outset: 0; border-image-repeat: stretch; border-imag=
e-slice: 100%; border-image-source: none; border-image-width: 1; border-lef=
t-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; =
border-right-color: rgb(34, 34, 34); border-right-style: none; border-right=
-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; bor=
der-top-width: 0px; color: rgb(34, 34, 34); display: inline; float: none; f=
ont-size: 13px; font-style: normal; font-variant: normal; font-weight: 400;=
letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right=
: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px;=
padding-right: 0px; padding-top: 0px; text-align: left; text-decoration: n=
one; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px=
; white-space: normal; word-spacing: 0px;"><font face=3D"courier new,monosp=
ace" style=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style: no=
ne; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat: =
stretch; border-image-slice: 100%; border-image-source: none; border-image-=
width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; bord=
er-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style=
: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-=
top-style: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0p=
x; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0=
px; padding-right: 0px; padding-top: 0px;">}</font></span></font></div><div=
style=3D"background-color: transparent; border-bottom-color: rgb(34, 34, 3=
4); border-bottom-style: none; border-bottom-width: 0px; border-image-outse=
t: 0; border-image-repeat: stretch; border-image-slice: 100%; border-image-=
source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); bo=
rder-left-style: none; border-left-width: 0px; border-right-color: rgb(34, =
34, 34); border-right-style: none; border-right-width: 0px; border-top-colo=
r: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; color: r=
gb(34, 34, 34); font-family: &quot;Arial&quot;,&quot;Helvetica&=
amp;quot;,sans-serif; font-size: 13px; font-style: normal; font-variant: no=
rmal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-=
left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: =
0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: l=
eft; text-decoration: none; text-indent: 0px; text-transform: none; -webkit=
-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><font fac=
e=3D"courier new,monospace"><br></font></div></div><div><font face=3D"couri=
er new,monospace">}//< b</font></div><div><font face=3D"courier new,mono=
space"><br></font></div><div><font face=3D"arial,sans-serif">I don't th=
ink it is good idea, but I don't see much of a problem.</font></div><di=
v><font face=3D"arial,sans-serif"><br></font></div></span></div><div><span =
style=3D"text-align: left; color: rgb(34, 34, 34); text-transform: none; te=
xt-indent: 0px; letter-spacing: normal; font-size: 13px; font-style: normal=
; font-variant: normal; font-weight: 400; text-decoration: none; word-spaci=
ng: 0px; display: inline !important; white-space: normal; orphans: 2; float=
: none; -webkit-text-stroke-width: 0px; background-color: transparent;">Now=
, if=C2=A0</span></div><div><span style=3D"text-align: left; color: rgb(34,=
34, 34); text-transform: none; text-indent: 0px; letter-spacing: normal; f=
ont-size: 13px; font-style: normal; font-variant: normal; font-weight: 400;=
text-decoration: none; word-spacing: 0px; display: inline !important; whit=
e-space: normal; orphans: 2; float: none; -webkit-text-stroke-width: 0px; b=
ackground-color: transparent;"><br></span></div><div><span style=3D"text-al=
ign: left; color: rgb(34, 34, 34); text-transform: none; text-indent: 0px; =
letter-spacing: normal; font-size: 13px; font-style: normal; font-variant: =
normal; font-weight: 400; text-decoration: none; word-spacing: 0px; display=
: inline !important; white-space: normal; orphans: 2; float: none; -webkit-=
text-stroke-width: 0px; background-color: transparent;"><font face=3D"couri=
er new,monospace">namespace a {</font></span></div><div><span style=3D"text=
-align: left; color: rgb(34, 34, 34); text-transform: none; text-indent: 0p=
x; letter-spacing: normal; font-size: 13px; font-style: normal; font-varian=
t: normal; font-weight: 400; text-decoration: none; word-spacing: 0px; disp=
lay: inline !important; white-space: normal; orphans: 2; float: none; -webk=
it-text-stroke-width: 0px; background-color: transparent;"><font face=3D"co=
urier new,monospace"><br></font></span></div><div><span style=3D"text-align=
: left; color: rgb(34, 34, 34); text-transform: none; text-indent: 0px; let=
ter-spacing: normal; font-size: 13px; font-variant: normal; word-spacing: 0=
px; display: inline !important; white-space: normal; orphans: 2; float: non=
e; -webkit-text-stroke-width: 0px; background-color: transparent;"><font fa=
ce=3D"courier new,monospace"><span style=3D"display: inline !important; flo=
at: none; background-color: transparent; color: rgb(34, 34, 34); font-famil=
y: courier new,monospace; font-size: 13px; font-style: normal; font-variant=
: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align:=
left; text-decoration: none; text-indent: 0px; text-transform: none; -webk=
it-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">Number =
Num;</span><b></b><i></i><u></u><sub></sub><sup></sup><strike></strike></fo=
nt></span></div><div><font face=3D"courier new,monospace">const N var =3D 1=
;</font></div><div><span style=3D"text-align: left; color: rgb(34, 34, 34);=
text-transform: none; text-indent: 0px; letter-spacing: normal; font-size:=
13px; font-style: normal; font-variant: normal; font-weight: 400; text-dec=
oration: none; word-spacing: 0px; display: inline !important; white-space: =
normal; orphans: 2; float: none; -webkit-text-stroke-width: 0px; background=
-color: transparent;"><font face=3D"courier new,monospace"><b></b><i></i><u=
></u><sub></sub><sup></sup><strike></strike><br></font></span></div><div><s=
pan style=3D"text-align: left; color: rgb(34, 34, 34); text-transform: none=
; text-indent: 0px; letter-spacing: normal; font-size: 13px; font-style: no=
rmal; font-variant: normal; font-weight: 400; text-decoration: none; word-s=
pacing: 0px; display: inline !important; white-space: normal; orphans: 2; f=
loat: none; -webkit-text-stroke-width: 0px; background-color: transparent;"=
><font face=3D"courier new,monospace">}//<a</font></span></div><div><spa=
n style=3D"text-align: left; color: rgb(34, 34, 34); text-transform: none; =
text-indent: 0px; letter-spacing: normal; font-size: 13px; font-style: norm=
al; font-variant: normal; font-weight: 400; text-decoration: none; word-spa=
cing: 0px; display: inline !important; white-space: normal; orphans: 2; flo=
at: none; -webkit-text-stroke-width: 0px; background-color: transparent;"><=
font face=3D"courier new,monospace"><br></font></span></div><div><span styl=
e=3D"text-align: left; color: rgb(34, 34, 34); text-transform: none; text-i=
ndent: 0px; letter-spacing: normal; font-size: 13px; font-style: normal; fo=
nt-variant: normal; font-weight: 400; text-decoration: none; word-spacing: =
0px; display: inline !important; white-space: normal; orphans: 2; float: no=
ne; -webkit-text-stroke-width: 0px; background-color: transparent;"><font f=
ace=3D"arial,sans-serif">and</font></span></div><div><span style=3D"text-al=
ign: left; color: rgb(34, 34, 34); text-transform: none; text-indent: 0px; =
letter-spacing: normal; font-size: 13px; font-style: normal; font-variant: =
normal; font-weight: 400; text-decoration: none; word-spacing: 0px; display=
: inline !important; white-space: normal; orphans: 2; float: none; -webkit-=
text-stroke-width: 0px; background-color: transparent;"><font face=3D"couri=
er new,monospace"><font face=3D"arial,sans-serif"></font><br></font></span>=
</div><div><span style=3D"text-align: left; color: rgb(34, 34, 34); text-tr=
ansform: none; text-indent: 0px; letter-spacing: normal; font-size: 13px; f=
ont-style: normal; font-variant: normal; font-weight: 400; text-decoration:=
none; word-spacing: 0px; display: inline !important; white-space: normal; =
orphans: 2; float: none; -webkit-text-stroke-width: 0px; background-color: =
transparent;"><font face=3D"courier new,monospace">#include <a.h></fo=
nt></span></div><div><span style=3D"text-align: left; color: rgb(34, 34, 34=
); text-transform: none; text-indent: 0px; letter-spacing: normal; font-siz=
e: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-d=
ecoration: none; word-spacing: 0px; display: inline !important; white-space=
: normal; orphans: 2; float: none; -webkit-text-stroke-width: 0px; backgrou=
nd-color: transparent;"><font face=3D"courier new,monospace"><br></font></s=
pan></div><div><span style=3D"text-align: left; color: rgb(34, 34, 34); tex=
t-transform: none; text-indent: 0px; letter-spacing: normal; font-size: 13p=
x; font-variant: normal; word-spacing: 0px; display: inline !important; whi=
te-space: normal; orphans: 2; float: none; -webkit-text-stroke-width: 0px; =
background-color: transparent;"><font face=3D"courier new,monospace"><span =
style=3D"display: inline !important; float: none; background-color: transpa=
rent; color: rgb(34, 34, 34); font-family: courier new,monospace; font-size=
: 13px; font-style: normal; font-variant: normal; font-weight: 400; letter-=
spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-=
indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-sp=
ace: normal; word-spacing: 0px;">namespace a {</span></font></span></div><d=
iv><span style=3D"text-align: left; color: rgb(34, 34, 34); text-transform:=
none; text-indent: 0px; letter-spacing: normal; font-size: 13px; font-vari=
ant: normal; word-spacing: 0px; display: inline !important; white-space: no=
rmal; orphans: 2; float: none; -webkit-text-stroke-width: 0px; background-c=
olor: transparent;"><font face=3D"courier new,monospace"><span style=3D"dis=
play: inline !important; float: none; background-color: transparent; color:=
rgb(34, 34, 34); font-family: courier new,monospace; font-size: 13px; font=
-style: normal; font-variant: normal; font-weight: 400; letter-spacing: nor=
mal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px;=
text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal;=
word-spacing: 0px;">const N var2 =3D "string";</span></font></sp=
an></div><div><span style=3D"text-align: left; color: rgb(34, 34, 34); text=
-transform: none; text-indent: 0px; letter-spacing: normal; font-size: 13px=
; font-variant: normal; word-spacing: 0px; display: inline !important; whit=
e-space: normal; orphans: 2; float: none; -webkit-text-stroke-width: 0px; b=
ackground-color: transparent;"><font face=3D"courier new,monospace">}</font=
></span></div><div><span style=3D"text-align: left; color: rgb(34, 34, 34);=
text-transform: none; text-indent: 0px; letter-spacing: normal; font-size:=
13px; font-style: normal; font-variant: normal; font-weight: 400; text-dec=
oration: none; word-spacing: 0px; display: inline !important; white-space: =
normal; orphans: 2; float: none; -webkit-text-stroke-width: 0px; background=
-color: transparent;"><font face=3D"courier new,monospace"><b></b><i></i><u=
></u><sub></sub><sup></sup><strike></strike><br></font></span></div><div><s=
pan style=3D"text-align: left; color: rgb(34, 34, 34); text-transform: none=
; text-indent: 0px; letter-spacing: normal; font-size: 13px; font-style: no=
rmal; font-variant: normal; font-weight: 400; text-decoration: none; word-s=
pacing: 0px; display: inline !important; white-space: normal; orphans: 2; f=
loat: none; -webkit-text-stroke-width: 0px; background-color: transparent;"=
><font face=3D"arial,sans-serif">or</font></span></div><div><span style=3D"=
background-color: transparent; border-bottom-color: rgb(34, 34, 34); border=
-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; bord=
er-image-repeat: stretch; border-image-slice: 100%; border-image-source: no=
ne; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-=
style: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); b=
order-right-style: none; border-right-width: 0px; border-top-color: rgb(34,=
34, 34); border-top-style: none; border-top-width: 0px; color: rgb(34, 34,=
34); display: inline; float: none; font-family: &quot;Arial&quot;,=
&quot;Helvetica&quot;,sans-serif; font-size: 13px; font-style: norm=
al; font-variant: normal; font-weight: 400; letter-spacing: normal; margin-=
bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans:=
2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top=
: 0px; text-align: left; text-decoration: none; text-indent: 0px; text-tran=
sform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spac=
ing: 0px;"><font face=3D"courier new,monospace" style=3D"border-bottom-colo=
r: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; bo=
rder-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100=
%; border-image-source: none; border-image-width: 1; border-left-color: rgb=
(34, 34, 34); border-left-style: none; border-left-width: 0px; border-right=
-color: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px;=
border-top-color: rgb(34, 34, 34); border-top-style: none; border-top-widt=
h: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top=
: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-=
top: 0px;"><br style=3D"border-bottom-color: rgb(34, 34, 34); border-bottom=
-style: none; border-bottom-width: 0px; border-image-outset: 0; border-imag=
e-repeat: stretch; border-image-slice: 100%; border-image-source: none; bor=
der-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: =
none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-r=
ight-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34=
); border-top-style: none; border-top-width: 0px; margin-bottom: 0px; margi=
n-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; paddi=
ng-left: 0px; padding-right: 0px; padding-top: 0px;"></font></span></div><d=
iv><div style=3D"background-color: transparent; border-bottom-color: rgb(34=
, 34, 34); border-bottom-style: none; border-bottom-width: 0px; border-imag=
e-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border=
-image-source: none; border-image-width: 1; border-left-color: rgb(34, 34, =
34); border-left-style: none; border-left-width: 0px; border-right-color: r=
gb(34, 34, 34); border-right-style: none; border-right-width: 0px; border-t=
op-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; c=
olor: rgb(34, 34, 34); font-family: &quot;Arial&quot;,&quot;Hel=
vetica&quot;,sans-serif; font-size: 13px; font-style: normal; font-vari=
ant: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; =
margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-b=
ottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-a=
lign: left; text-decoration: none; text-indent: 0px; text-transform: none; =
-webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><s=
pan style=3D"background-color: transparent; border-bottom-color: rgb(34, 34=
, 34); border-bottom-style: none; border-bottom-width: 0px; border-image-ou=
tset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-ima=
ge-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34);=
border-left-style: none; border-left-width: 0px; border-right-color: rgb(3=
4, 34, 34); border-right-style: none; border-right-width: 0px; border-top-c=
olor: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; color=
: rgb(34, 34, 34); display: inline; float: none; font-family: &quot;Ari=
al&quot;,&quot;Helvetica&quot;,sans-serif; font-size: 13px; fon=
t-style: normal; font-variant: normal; font-weight: 400; letter-spacing: no=
rmal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: =
0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px=
; padding-top: 0px; text-align: left; text-decoration: none; text-indent: 0=
px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: norm=
al; word-spacing: 0px;"><font face=3D"courier new,monospace" style=3D"borde=
r-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-w=
idth: 0px; border-image-outset: 0; border-image-repeat: stretch; border-ima=
ge-slice: 100%; border-image-source: none; border-image-width: 1; border-le=
ft-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px;=
border-right-color: rgb(34, 34, 34); border-right-style: none; border-righ=
t-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; bo=
rder-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0p=
x; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: =
0px; padding-top: 0px;"><span style=3D"background-color: transparent; borde=
r-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-w=
idth: 0px; border-image-outset: 0; border-image-repeat: stretch; border-ima=
ge-slice: 100%; border-image-source: none; border-image-width: 1; border-le=
ft-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px;=
border-right-color: rgb(34, 34, 34); border-right-style: none; border-righ=
t-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; bo=
rder-top-width: 0px; color: rgb(34, 34, 34); display: inline; float: none; =
font-family: courier new,monospace; font-size: 13px; font-style: normal; fo=
nt-variant: normal; font-weight: 400; letter-spacing: normal; margin-bottom=
: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; pa=
dding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;=
text-align: left; text-decoration: none; text-indent: 0px; text-transform:=
none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0=
px;">namespace b {</span></font></span></div><div style=3D"background-color=
: transparent; border-bottom-color: rgb(34, 34, 34); border-bottom-style: n=
one; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat:=
stretch; border-image-slice: 100%; border-image-source: none; border-image=
-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; bor=
der-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-styl=
e: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border=
-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); font-famil=
y: &quot;Arial&quot;,&quot;Helvetica&quot;,sans-serif; font=
-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; le=
tter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0=
px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; pa=
dding-right: 0px; padding-top: 0px; text-align: left; text-decoration: none=
; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; w=
hite-space: normal; word-spacing: 0px;"><span style=3D"background-color: tr=
ansparent; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none;=
border-bottom-width: 0px; border-image-outset: 0; border-image-repeat: str=
etch; border-image-slice: 100%; border-image-source: none; border-image-wid=
th: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; border-=
left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: n=
one; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top=
-style: none; border-top-width: 0px; color: rgb(34, 34, 34); display: inlin=
e; float: none; font-family: &quot;Arial&quot;,&quot;Helvetica&=
amp;quot;,sans-serif; font-size: 13px; font-style: normal; font-variant: no=
rmal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-=
left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: =
0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: l=
eft; text-decoration: none; text-indent: 0px; text-transform: none; -webkit=
-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><font fac=
e=3D"courier new,monospace" style=3D"border-bottom-color: rgb(34, 34, 34); =
border-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0=
; border-image-repeat: stretch; border-image-slice: 100%; border-image-sour=
ce: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); border=
-left-style: none; border-left-width: 0px; border-right-color: rgb(34, 34, =
34); border-right-style: none; border-right-width: 0px; border-top-color: r=
gb(34, 34, 34); border-top-style: none; border-top-width: 0px; margin-botto=
m: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-botto=
m: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span sty=
le=3D"background-color: transparent; border-bottom-color: rgb(34, 34, 34); =
border-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0=
; border-image-repeat: stretch; border-image-slice: 100%; border-image-sour=
ce: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); border=
-left-style: none; border-left-width: 0px; border-right-color: rgb(34, 34, =
34); border-right-style: none; border-right-width: 0px; border-top-color: r=
gb(34, 34, 34); border-top-style: none; border-top-width: 0px; color: rgb(3=
4, 34, 34); display: inline; float: none; font-family: courier new,monospac=
e; font-size: 13px; font-style: normal; font-variant: normal; font-weight: =
400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-r=
ight: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: =
0px; padding-right: 0px; padding-top: 0px; text-align: left; text-decoratio=
n: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width:=
0px; white-space: normal; word-spacing: 0px;">const a::N var =3D "str=
ing";</span></font></span></div><div style=3D"background-color: transp=
arent; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; bor=
der-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch=
; border-image-slice: 100%; border-image-source: none; border-image-width: =
1; border-left-color: rgb(34, 34, 34); border-left-style: none; border-left=
-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none;=
border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-sty=
le: none; border-top-width: 0px; color: rgb(34, 34, 34); font-family: &=
quot;Arial&quot;,&quot;Helvetica&quot;,sans-serif; font-size: 1=
3px; font-style: normal; font-variant: normal; font-weight: 400; letter-spa=
cing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; marg=
in-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-ri=
ght: 0px; padding-top: 0px; text-align: left; text-decoration: none; text-i=
ndent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-spa=
ce: normal; word-spacing: 0px;"><span style=3D"background-color: transparen=
t; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-=
bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch; bo=
rder-image-slice: 100%; border-image-source: none; border-image-width: 1; b=
order-left-color: rgb(34, 34, 34); border-left-style: none; border-left-wid=
th: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none; bor=
der-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: =
none; border-top-width: 0px; color: rgb(34, 34, 34); display: inline; float=
: none; font-family: &quot;Arial&quot;,&quot;Helvetica&quot=
;,sans-serif; font-size: 13px; font-style: normal; font-variant: normal; fo=
nt-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0p=
x; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; pad=
ding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; tex=
t-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-st=
roke-width: 0px; white-space: normal; word-spacing: 0px;"><font face=3D"cou=
rier new,monospace" style=3D"border-bottom-color: rgb(34, 34, 34); border-b=
ottom-style: none; border-bottom-width: 0px; border-image-outset: 0; border=
-image-repeat: stretch; border-image-slice: 100%; border-image-source: none=
; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-st=
yle: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); bor=
der-right-style: none; border-right-width: 0px; border-top-color: rgb(34, 3=
4, 34); border-top-style: none; border-top-width: 0px; margin-bottom: 0px; =
margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; =
padding-left: 0px; padding-right: 0px; padding-top: 0px;">}</font></span></=
div><b></b><i></i><u></u><sub></sub><sup></sup><strike></strike><br></div><=
div>Will fail - N is an int.</div><div><br></div><div>The point is - the na=
me can cross scopes, much like always, bounding (template instantiation) ca=
n't=C2=A0</div><div>That is the same as in the constexpr if case in loc=
al scope - same name different instantiations, different bounding=C2=A0</di=
v><div><br></div><div><br></div><div><br></div><div>Of course none of this =
is recommended practice, much like global variables are bad</div><div><br><=
/div><div>For example</div><div><br></div><div><div style=3D"background-col=
or: transparent; border-bottom-color: rgb(34, 34, 34); border-bottom-style:=
none; border-bottom-width: 0px; border-image-outset: 0; border-image-repea=
t: stretch; border-image-slice: 100%; border-image-source: none; border-ima=
ge-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; b=
order-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-st=
yle: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); bord=
er-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); font-fam=
ily: &quot;Arial&quot;,&quot;Helvetica&quot;,sans-serif; fo=
nt-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; =
letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right:=
0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; =
padding-right: 0px; padding-top: 0px; text-align: left; text-decoration: no=
ne; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px;=
white-space: normal; word-spacing: 0px;"><span style=3D"background-color: =
transparent; border-bottom-color: rgb(34, 34, 34); border-bottom-style: non=
e; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat: s=
tretch; border-image-slice: 100%; border-image-source: none; border-image-w=
idth: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; borde=
r-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style:=
none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-t=
op-style: none; border-top-width: 0px; color: rgb(34, 34, 34); display: inl=
ine; float: none; font-family: &quot;Arial&quot;,&quot;Helvetic=
a&quot;,sans-serif; font-size: 13px; font-style: normal; font-variant: =
normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margi=
n-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom=
: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align:=
left; text-decoration: none; text-indent: 0px; text-transform: none; -webk=
it-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><font f=
ace=3D"courier new,monospace" style=3D"border-bottom-color: rgb(34, 34, 34)=
; border-bottom-style: none; border-bottom-width: 0px; border-image-outset:=
0; border-image-repeat: stretch; border-image-slice: 100%; border-image-so=
urce: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); bord=
er-left-style: none; border-left-width: 0px; border-right-color: rgb(34, 34=
, 34); border-right-style: none; border-right-width: 0px; border-top-color:=
rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; margin-bot=
tom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bot=
tom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">namespa=
ce a {</font></span></div><div style=3D"background-color: transparent; bord=
er-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-=
width: 0px; border-image-outset: 0; border-image-repeat: stretch; border-im=
age-slice: 100%; border-image-source: none; border-image-width: 1; border-l=
eft-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px=
; border-right-color: rgb(34, 34, 34); border-right-style: none; border-rig=
ht-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; b=
order-top-width: 0px; color: rgb(34, 34, 34); font-family: &quot;Arial&=
amp;quot;,&quot;Helvetica&quot;,sans-serif; font-size: 13px; font-s=
tyle: normal; font-variant: normal; font-weight: 400; letter-spacing: norma=
l; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px=
; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; p=
adding-top: 0px; text-align: left; text-decoration: none; text-indent: 0px;=
text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal;=
word-spacing: 0px;"><span style=3D"background-color: transparent; border-b=
ottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-widt=
h: 0px; border-image-outset: 0; border-image-repeat: stretch; border-image-=
slice: 100%; border-image-source: none; border-image-width: 1; border-left-=
color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; bo=
rder-right-color: rgb(34, 34, 34); border-right-style: none; border-right-w=
idth: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; borde=
r-top-width: 0px; color: rgb(34, 34, 34); display: inline; float: none; fon=
t-family: &quot;Arial&quot;,&quot;Helvetica&quot;,sans-seri=
f; font-size: 13px; font-style: normal; font-variant: normal; font-weight: =
400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-r=
ight: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: =
0px; padding-right: 0px; padding-top: 0px; text-align: left; text-decoratio=
n: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width:=
0px; white-space: normal; word-spacing: 0px;"><font face=3D"courier new,mo=
nospace" style=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style=
: none; border-bottom-width: 0px; border-image-outset: 0; border-image-repe=
at: stretch; border-image-slice: 100%; border-image-source: none; border-im=
age-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; =
border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-s=
tyle: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); bor=
der-top-style: none; border-top-width: 0px; margin-bottom: 0px; margin-left=
: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-lef=
t: 0px; padding-right: 0px; padding-top: 0px;"><br style=3D"border-bottom-c=
olor: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px;=
border-image-outset: 0; border-image-repeat: stretch; border-image-slice: =
100%; border-image-source: none; border-image-width: 1; border-left-color: =
rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; border-ri=
ght-color: rgb(34, 34, 34); border-right-style: none; border-right-width: 0=
px; border-top-color: rgb(34, 34, 34); border-top-style: none; border-top-w=
idth: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-=
top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; paddi=
ng-top: 0px;"></font></span></div><div style=3D"background-color: transpare=
nt; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border=
-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch; b=
order-image-slice: 100%; border-image-source: none; border-image-width: 1; =
border-left-color: rgb(34, 34, 34); border-left-style: none; border-left-wi=
dth: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none; bo=
rder-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style:=
none; border-top-width: 0px; color: rgb(34, 34, 34); font-family: &quo=
t;Arial&quot;,&quot;Helvetica&quot;,sans-serif; font-size: 13px=
; font-style: normal; font-variant: normal; font-weight: 400; letter-spacin=
g: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-=
top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right=
: 0px; padding-top: 0px; text-align: left; text-decoration: none; text-inde=
nt: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space:=
normal; word-spacing: 0px;"><span style=3D"background-color: transparent; =
border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bot=
tom-width: 0px; border-image-outset: 0; border-image-repeat: stretch; borde=
r-image-slice: 100%; border-image-source: none; border-image-width: 1; bord=
er-left-color: rgb(34, 34, 34); border-left-style: none; border-left-width:=
0px; border-right-color: rgb(34, 34, 34); border-right-style: none; border=
-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: non=
e; border-top-width: 0px; color: rgb(34, 34, 34); display: inline; float: n=
one; font-family: &quot;Arial&quot;,&quot;Helvetica&quot;,s=
ans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-=
weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; =
margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; paddin=
g-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-d=
ecoration: none; text-indent: 0px; text-transform: none; -webkit-text-strok=
e-width: 0px; white-space: normal; word-spacing: 0px;"><font face=3D"courie=
r new,monospace" style=3D"border-bottom-color: rgb(34, 34, 34); border-bott=
om-style: none; border-bottom-width: 0px; border-image-outset: 0; border-im=
age-repeat: stretch; border-image-slice: 100%; border-image-source: none; b=
order-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style=
: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border=
-right-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, =
34); border-top-style: none; border-top-width: 0px; margin-bottom: 0px; mar=
gin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; pad=
ding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style=3D"backg=
round-color: transparent; border-bottom-color: rgb(34, 34, 34); border-bott=
om-style: none; border-bottom-width: 0px; border-image-outset: 0; border-im=
age-repeat: stretch; border-image-slice: 100%; border-image-source: none; b=
order-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style=
: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border=
-right-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, =
34); border-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34);=
display: inline; float: none; font-family: courier new,monospace; font-siz=
e: 13px; font-style: normal; font-variant: normal; font-weight: 400; letter=
-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; =
margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; paddin=
g-right: 0px; padding-top: 0px; text-align: left; text-decoration: none; te=
xt-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white=
-space: normal; word-spacing: 0px;">Number Num;</span></font></span><br></d=
iv><div style=3D"background-color: transparent; border-bottom-color: rgb(34=
, 34, 34); border-bottom-style: none; border-bottom-width: 0px; border-imag=
e-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border=
-image-source: none; border-image-width: 1; border-left-color: rgb(34, 34, =
34); border-left-style: none; border-left-width: 0px; border-right-color: r=
gb(34, 34, 34); border-right-style: none; border-right-width: 0px; border-t=
op-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; c=
olor: rgb(34, 34, 34); font-family: &quot;Arial&quot;,&quot;Hel=
vetica&quot;,sans-serif; font-size: 13px; font-style: normal; font-vari=
ant: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; =
margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-b=
ottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-a=
lign: left; text-decoration: none; text-indent: 0px; text-transform: none; =
-webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><s=
pan style=3D"background-color: transparent; border-bottom-color: rgb(34, 34=
, 34); border-bottom-style: none; border-bottom-width: 0px; border-image-ou=
tset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-ima=
ge-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34);=
border-left-style: none; border-left-width: 0px; border-right-color: rgb(3=
4, 34, 34); border-right-style: none; border-right-width: 0px; border-top-c=
olor: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; color=
: rgb(34, 34, 34); display: inline; float: none; font-family: &quot;Ari=
al&quot;,&quot;Helvetica&quot;,sans-serif; font-size: 13px; fon=
t-style: normal; font-variant: normal; font-weight: 400; letter-spacing: no=
rmal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: =
0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px=
; padding-top: 0px; text-align: left; text-decoration: none; text-indent: 0=
px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: norm=
al; word-spacing: 0px;"><font face=3D"courier new,monospace" style=3D"borde=
r-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-w=
idth: 0px; border-image-outset: 0; border-image-repeat: stretch; border-ima=
ge-slice: 100%; border-image-source: none; border-image-width: 1; border-le=
ft-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px;=
border-right-color: rgb(34, 34, 34); border-right-style: none; border-righ=
t-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; bo=
rder-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0p=
x; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: =
0px; padding-top: 0px;"><b style=3D"border-bottom-color: rgb(34, 34, 34); b=
order-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0;=
border-image-repeat: stretch; border-image-slice: 100%; border-image-sourc=
e: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-=
left-style: none; border-left-width: 0px; border-right-color: rgb(34, 34, 3=
4); border-right-style: none; border-right-width: 0px; border-top-color: rg=
b(34, 34, 34); border-top-style: none; border-top-width: 0px; margin-bottom=
: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom=
: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></b><i sty=
le=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; bord=
er-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch;=
border-image-slice: 100%; border-image-source: none; border-image-width: 1=
; border-left-color: rgb(34, 34, 34); border-left-style: none; border-left-=
width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none; =
border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-styl=
e: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margi=
n-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padd=
ing-right: 0px; padding-top: 0px;"></i><u style=3D"border-bottom-color: rgb=
(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; border-i=
mage-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; bor=
der-image-source: none; border-image-width: 1; border-left-color: rgb(34, 3=
4, 34); border-left-style: none; border-left-width: 0px; border-right-color=
: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; borde=
r-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px=
; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;=
padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0=
px;"></u><sub style=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-=
style: none; border-bottom-width: 0px; border-image-outset: 0; border-image=
-repeat: stretch; border-image-slice: 100%; border-image-source: none; bord=
er-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: n=
one; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-ri=
ght-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34)=
; border-top-style: none; border-top-width: 0px; margin-bottom: 0px; margin=
-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; paddin=
g-left: 0px; padding-right: 0px; padding-top: 0px;"></sub><sup style=3D"bor=
der-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom=
-width: 0px; border-image-outset: 0; border-image-repeat: stretch; border-i=
mage-slice: 100%; border-image-source: none; border-image-width: 1; border-=
left-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0p=
x; border-right-color: rgb(34, 34, 34); border-right-style: none; border-ri=
ght-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; =
border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: =
0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right=
: 0px; padding-top: 0px;"></sup><strike style=3D"border-bottom-color: rgb(3=
4, 34, 34); border-bottom-style: none; border-bottom-width: 0px; border-ima=
ge-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; borde=
r-image-source: none; border-image-width: 1; border-left-color: rgb(34, 34,=
34); border-left-style: none; border-left-width: 0px; border-right-color: =
rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; border-=
top-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; =
margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; p=
adding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px=
;"></strike><br style=3D"border-bottom-color: rgb(34, 34, 34); border-botto=
m-style: none; border-bottom-width: 0px; border-image-outset: 0; border-ima=
ge-repeat: stretch; border-image-slice: 100%; border-image-source: none; bo=
rder-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style:=
none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-=
right-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, 3=
4); border-top-style: none; border-top-width: 0px; margin-bottom: 0px; marg=
in-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padd=
ing-left: 0px; padding-right: 0px; padding-top: 0px;"></font></span></div><=
div style=3D"background-color: transparent; border-bottom-color: rgb(34, 34=
, 34); border-bottom-style: none; border-bottom-width: 0px; border-image-ou=
tset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-ima=
ge-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34);=
border-left-style: none; border-left-width: 0px; border-right-color: rgb(3=
4, 34, 34); border-right-style: none; border-right-width: 0px; border-top-c=
olor: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; color=
: rgb(34, 34, 34); font-family: &quot;Arial&quot;,&quot;Helveti=
ca&quot;,sans-serif; font-size: 13px; font-style: normal; font-variant:=
normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; marg=
in-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-botto=
m: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align=
: left; text-decoration: none; text-indent: 0px; text-transform: none; -web=
kit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><span =
style=3D"background-color: transparent; border-bottom-color: rgb(34, 34, 34=
); border-bottom-style: none; border-bottom-width: 0px; border-image-outset=
: 0; border-image-repeat: stretch; border-image-slice: 100%; border-image-s=
ource: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); bor=
der-left-style: none; border-left-width: 0px; border-right-color: rgb(34, 3=
4, 34); border-right-style: none; border-right-width: 0px; border-top-color=
: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; color: rg=
b(34, 34, 34); display: inline; float: none; font-family: &quot;Arial&a=
mp;quot;,&quot;Helvetica&quot;,sans-serif; font-size: 13px; font-st=
yle: normal; font-variant: normal; font-weight: 400; letter-spacing: normal=
; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;=
orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; pa=
dding-top: 0px; text-align: left; text-decoration: none; text-indent: 0px; =
text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; =
word-spacing: 0px;"><font face=3D"courier new,monospace" style=3D"border-bo=
ttom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width=
: 0px; border-image-outset: 0; border-image-repeat: stretch; border-image-s=
lice: 100%; border-image-source: none; border-image-width: 1; border-left-c=
olor: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; bor=
der-right-color: rgb(34, 34, 34); border-right-style: none; border-right-wi=
dth: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; border=
-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; m=
argin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px;=
padding-top: 0px;">}//<a</font></span><br></div></div><div>=C2=A0<div s=
tyle=3D"background-color: transparent; border-bottom-color: rgb(34, 34, 34)=
; border-bottom-style: none; border-bottom-width: 0px; border-image-outset:=
0; border-image-repeat: stretch; border-image-slice: 100%; border-image-so=
urce: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); bord=
er-left-style: none; border-left-width: 0px; border-right-color: rgb(34, 34=
, 34); border-right-style: none; border-right-width: 0px; border-top-color:=
rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; color: rgb=
(34, 34, 34); font-family: &quot;Arial&quot;,&quot;Helvetica&am=
p;quot;,sans-serif; font-size: 13px; font-style: normal; font-variant: norm=
al; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-le=
ft: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0p=
x; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: lef=
t; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-t=
ext-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><span style=
=3D"background-color: transparent; border-bottom-color: rgb(34, 34, 34); bo=
rder-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; =
border-image-repeat: stretch; border-image-slice: 100%; border-image-source=
: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-l=
eft-style: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34=
); border-right-style: none; border-right-width: 0px; border-top-color: rgb=
(34, 34, 34); border-top-style: none; border-top-width: 0px; color: rgb(34,=
34, 34); display: inline; float: none; font-size: 13px; font-style: normal=
; font-variant: normal; font-weight: 400; letter-spacing: normal; margin-bo=
ttom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2=
; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: =
0px; text-align: left; text-decoration: none; text-indent: 0px; text-transf=
orm: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacin=
g: 0px;"><font face=3D"courier new,monospace" style=3D"border-bottom-color:=
rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; bord=
er-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%;=
border-image-source: none; border-image-width: 1; border-left-color: rgb(3=
4, 34, 34); border-left-style: none; border-left-width: 0px; border-right-c=
olor: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; b=
order-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width:=
0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: =
0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-to=
p: 0px;"><span style=3D"background-color: transparent; border-bottom-color:=
rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; bord=
er-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%;=
border-image-source: none; border-image-width: 1; border-left-color: rgb(3=
4, 34, 34); border-left-style: none; border-left-width: 0px; border-right-c=
olor: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; b=
order-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width:=
0px; color: rgb(34, 34, 34); display: inline; float: none; font-family: co=
urier new,monospace; font-size: 13px; font-style: normal; font-variant: nor=
mal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-l=
eft: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0=
px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: le=
ft; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-=
text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">namespace =
b {</span></font></span></div><div style=3D"background-color: transparent; =
border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bot=
tom-width: 0px; border-image-outset: 0; border-image-repeat: stretch; borde=
r-image-slice: 100%; border-image-source: none; border-image-width: 1; bord=
er-left-color: rgb(34, 34, 34); border-left-style: none; border-left-width:=
0px; border-right-color: rgb(34, 34, 34); border-right-style: none; border=
-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: non=
e; border-top-width: 0px; color: rgb(34, 34, 34); font-family: &quot;Ar=
ial&quot;,&quot;Helvetica&quot;,sans-serif; font-size: 13px; fo=
nt-style: normal; font-variant: normal; font-weight: 400; letter-spacing: n=
ormal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top:=
0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0p=
x; padding-top: 0px; text-align: left; text-decoration: none; text-indent: =
0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: nor=
mal; word-spacing: 0px;"><span style=3D"background-color: transparent; bord=
er-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-=
width: 0px; border-image-outset: 0; border-image-repeat: stretch; border-im=
age-slice: 100%; border-image-source: none; border-image-width: 1; border-l=
eft-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px=
; border-right-color: rgb(34, 34, 34); border-right-style: none; border-rig=
ht-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; b=
order-top-width: 0px; color: rgb(34, 34, 34); display: inline; float: none;=
font-size: 13px; font-style: normal; font-variant: normal; font-weight: 40=
0; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-rig=
ht: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0p=
x; padding-right: 0px; padding-top: 0px; text-align: left; text-decoration:=
none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0=
px; white-space: normal; word-spacing: 0px;"><font face=3D"courier new,mono=
space" style=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style: =
none; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat=
: stretch; border-image-slice: 100%; border-image-source: none; border-imag=
e-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; bo=
rder-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-sty=
le: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); borde=
r-top-style: none; border-top-width: 0px; margin-bottom: 0px; margin-left: =
0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left:=
0px; padding-right: 0px; padding-top: 0px;"><span style=3D"background-colo=
r: transparent; border-bottom-color: rgb(34, 34, 34); border-bottom-style: =
none; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat=
: stretch; border-image-slice: 100%; border-image-source: none; border-imag=
e-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; bo=
rder-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-sty=
le: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); borde=
r-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); display: =
inline; float: none; font-family: courier new,monospace; font-size: 13px; f=
ont-style: normal; font-variant: normal; font-weight: 400; letter-spacing: =
normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top=
: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0=
px; padding-top: 0px; text-align: left; text-decoration: none; text-indent:=
0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: no=
rmal; word-spacing: 0px;">const a::N bvar =3D 1;</span></font></span></div>=
<div style=3D"background-color: transparent; border-bottom-color: rgb(34, 3=
4, 34); border-bottom-style: none; border-bottom-width: 0px; border-image-o=
utset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-im=
age-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34)=
; border-left-style: none; border-left-width: 0px; border-right-color: rgb(=
34, 34, 34); border-right-style: none; border-right-width: 0px; border-top-=
color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; colo=
r: rgb(34, 34, 34); font-family: &quot;Arial&quot;,&quot;Helvet=
ica&quot;,sans-serif; font-size: 13px; font-style: normal; font-variant=
: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; mar=
gin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bott=
om: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-alig=
n: left; text-decoration: none; text-indent: 0px; text-transform: none; -we=
bkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><span=
style=3D"background-color: transparent; border-bottom-color: rgb(34, 34, 3=
4); border-bottom-style: none; border-bottom-width: 0px; border-image-outse=
t: 0; border-image-repeat: stretch; border-image-slice: 100%; border-image-=
source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); bo=
rder-left-style: none; border-left-width: 0px; border-right-color: rgb(34, =
34, 34); border-right-style: none; border-right-width: 0px; border-top-colo=
r: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; color: r=
gb(34, 34, 34); display: inline; float: none; font-size: 13px; font-style: =
normal; font-variant: normal; font-weight: 400; letter-spacing: normal; mar=
gin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orph=
ans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding=
-top: 0px; text-align: left; text-decoration: none; text-indent: 0px; text-=
transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-=
spacing: 0px;"><font face=3D"courier new,monospace" style=3D"border-bottom-=
color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px=
; border-image-outset: 0; border-image-repeat: stretch; border-image-slice:=
100%; border-image-source: none; border-image-width: 1; border-left-color:=
rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; border-r=
ight-color: rgb(34, 34, 34); border-right-style: none; border-right-width: =
0px; border-top-color: rgb(34, 34, 34); border-top-style: none; border-top-=
width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin=
-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padd=
ing-top: 0px;">}</font></span></div><b></b><i></i><u></u><sub></sub><sup></=
sup><strike></strike><br></div><div>now, if we include a file that</div><di=
v><br style=3D"background-attachment: scroll; background-clip: border-box; =
background-color: transparent; background-image: none; background-origin: p=
adding-box; background-position-x: 0%; background-position-y: 0%; backgroun=
d-repeat: repeat; background-size: auto; border-bottom-color: rgb(34, 34, 3=
4); border-bottom-style: none; border-bottom-width: 0px; border-image-outse=
t: 0; border-image-repeat: stretch; border-image-slice: 100%; border-image-=
source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); bo=
rder-left-style: none; border-left-width: 0px; border-right-color: rgb(34, =
34, 34); border-right-style: none; border-right-width: 0px; border-top-colo=
r: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; color: r=
gb(34, 34, 34); font-family: &quot;Arial&quot;,&quot;Helvetica&=
amp;quot;,sans-serif; font-size: 13px; height: auto; margin-bottom: 0px; ma=
rgin-left: 0px; margin-right: 0px; margin-top: 0px; min-width: 0px; overflo=
w: visible; overflow-x: visible; overflow-y: visible; padding-bottom: 0px; =
padding-left: 0px; padding-right: 0px; padding-top: 0px;"></div><div><div s=
tyle=3D"background-color: transparent; border-bottom-color: rgb(34, 34, 34)=
; border-bottom-style: none; border-bottom-width: 0px; border-image-outset:=
0; border-image-repeat: stretch; border-image-slice: 100%; border-image-so=
urce: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); bord=
er-left-style: none; border-left-width: 0px; border-right-color: rgb(34, 34=
, 34); border-right-style: none; border-right-width: 0px; border-top-color:=
rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; color: rgb=
(34, 34, 34); font-family: &quot;Arial&quot;,&quot;Helvetica&am=
p;quot;,sans-serif; font-size: 13px; font-style: normal; font-variant: norm=
al; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-le=
ft: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0p=
x; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: lef=
t; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-t=
ext-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><div style=
=3D"background-color: transparent; border-bottom-color: rgb(34, 34, 34); bo=
rder-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; =
border-image-repeat: stretch; border-image-slice: 100%; border-image-source=
: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-l=
eft-style: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34=
); border-right-style: none; border-right-width: 0px; border-top-color: rgb=
(34, 34, 34); border-top-style: none; border-top-width: 0px; color: rgb(34,=
34, 34); font-size: 13px; font-style: normal; font-variant: normal; font-w=
eight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; m=
argin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding=
-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-de=
coration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke=
-width: 0px; white-space: normal; word-spacing: 0px;"><span style=3D"backgr=
ound-color: transparent; border-bottom-color: rgb(34, 34, 34); border-botto=
m-style: none; border-bottom-width: 0px; border-image-outset: 0; border-ima=
ge-repeat: stretch; border-image-slice: 100%; border-image-source: none; bo=
rder-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style:=
none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-=
right-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, 3=
4); border-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); =
display: inline; float: none; font-size: 13px; font-style: normal; font-var=
iant: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px;=
margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-=
bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-=
align: left; text-decoration: none; text-indent: 0px; text-transform: none;=
-webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><=
font face=3D"courier new,monospace" style=3D"border-bottom-color: rgb(34, 3=
4, 34); border-bottom-style: none; border-bottom-width: 0px; border-image-o=
utset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-im=
age-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34)=
; border-left-style: none; border-left-width: 0px; border-right-color: rgb(=
34, 34, 34); border-right-style: none; border-right-width: 0px; border-top-=
color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; marg=
in-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; paddi=
ng-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">n=
amespace a {</font></span></div><div style=3D"background-color: transparent=
; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-b=
ottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch; bor=
der-image-slice: 100%; border-image-source: none; border-image-width: 1; bo=
rder-left-color: rgb(34, 34, 34); border-left-style: none; border-left-widt=
h: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none; bord=
er-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: n=
one; border-top-width: 0px; color: rgb(34, 34, 34); font-size: 13px; font-s=
tyle: normal; font-variant: normal; font-weight: 400; letter-spacing: norma=
l; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px=
; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; p=
adding-top: 0px; text-align: left; text-decoration: none; text-indent: 0px;=
text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal;=
word-spacing: 0px;"><span style=3D"background-color: transparent; border-b=
ottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-widt=
h: 0px; border-image-outset: 0; border-image-repeat: stretch; border-image-=
slice: 100%; border-image-source: none; border-image-width: 1; border-left-=
color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; bo=
rder-right-color: rgb(34, 34, 34); border-right-style: none; border-right-w=
idth: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; borde=
r-top-width: 0px; color: rgb(34, 34, 34); display: inline; float: none; fon=
t-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; l=
etter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: =
0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; p=
adding-right: 0px; padding-top: 0px; text-align: left; text-decoration: non=
e; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; =
white-space: normal; word-spacing: 0px;"><font face=3D"courier new,monospac=
e" style=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style: none=
; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat: st=
retch; border-image-slice: 100%; border-image-source: none; border-image-wi=
dth: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; border=
-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: =
none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-to=
p-style: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px;=
margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px=
; padding-right: 0px; padding-top: 0px;"><br style=3D"border-bottom-color: =
rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; borde=
r-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; =
border-image-source: none; border-image-width: 1; border-left-color: rgb(34=
, 34, 34); border-left-style: none; border-left-width: 0px; border-right-co=
lor: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; bo=
rder-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width: =
0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0=
px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top=
: 0px;"></font></span></div><div style=3D"margin: 0px; padding: 0px; border=
: 0px rgb(34, 34, 34); border-image: none; text-align: left; color: rgb(34,=
34, 34); text-transform: none; text-indent: 0px; letter-spacing: normal; f=
ont-size: 13px; font-variant: normal; word-spacing: 0px; white-space: norma=
l; orphans: 2; -webkit-text-stroke-width: 0px; background-color: transparen=
t;"><span style=3D"margin: 0px; padding: 0px; border: 0px rgb(34, 34, 34); =
border-image: none; text-align: left; color: rgb(34, 34, 34); text-transfor=
m: none; text-indent: 0px; letter-spacing: normal; font-size: 13px; font-va=
riant: normal; word-spacing: 0px; display: inline; white-space: normal; orp=
hans: 2; float: none; -webkit-text-stroke-width: 0px; background-color: tra=
nsparent;"><font face=3D"courier new,monospace" style=3D"border-bottom-colo=
r: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; bo=
rder-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100=
%; border-image-source: none; border-image-width: 1; border-left-color: rgb=
(34, 34, 34); border-left-style: none; border-left-width: 0px; border-right=
-color: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px;=
border-top-color: rgb(34, 34, 34); border-top-style: none; border-top-widt=
h: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top=
: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-=
top: 0px;"><span style=3D"margin: 0px; padding: 0px; border: 0px rgb(34, 34=
, 34); border-image: none; text-align: left; color: rgb(34, 34, 34); text-t=
ransform: none; text-indent: 0px; letter-spacing: normal; font-family: cour=
ier new,monospace; font-size: 13px; font-variant: normal; word-spacing: 0px=
; display: inline; white-space: normal; orphans: 2; float: none; -webkit-te=
xt-stroke-width: 0px; background-color: transparent;"><span style=3D"displa=
y: inline !important; float: none; background-color: transparent; color: rg=
b(34, 34, 34); font-family: courier new,monospace; font-size: 13px; font-st=
yle: normal; font-variant: normal; font-weight: 400; letter-spacing: normal=
; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; te=
xt-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; wo=
rd-spacing: 0px;">const a::N somevar =3D 1.f;</span></span></font></span><b=
r style=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style: none;=
border-bottom-width: 0px; border-image-outset: 0; border-image-repeat: str=
etch; border-image-slice: 100%; border-image-source: none; border-image-wid=
th: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; border-=
left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: n=
one; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top=
-style: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; =
margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px;=
padding-right: 0px; padding-top: 0px;"></div><div style=3D"background-colo=
r: transparent; border-bottom-color: rgb(34, 34, 34); border-bottom-style: =
none; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat=
: stretch; border-image-slice: 100%; border-image-source: none; border-imag=
e-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; bo=
rder-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-sty=
le: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); borde=
r-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); font-size=
: 13px; font-style: normal; font-variant: normal; font-weight: 400; letter-=
spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; m=
argin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding=
-right: 0px; padding-top: 0px; text-align: left; text-decoration: none; tex=
t-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-=
space: normal; word-spacing: 0px;"><span style=3D"background-color: transpa=
rent; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; bord=
er-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch;=
border-image-slice: 100%; border-image-source: none; border-image-width: 1=
; border-left-color: rgb(34, 34, 34); border-left-style: none; border-left-=
width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none; =
border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-styl=
e: none; border-top-width: 0px; color: rgb(34, 34, 34); display: inline; fl=
oat: none; font-size: 13px; font-style: normal; font-variant: normal; font-=
weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; =
margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; paddin=
g-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-d=
ecoration: none; text-indent: 0px; text-transform: none; -webkit-text-strok=
e-width: 0px; white-space: normal; word-spacing: 0px;"><font face=3D"courie=
r new,monospace" style=3D"border-bottom-color: rgb(34, 34, 34); border-bott=
om-style: none; border-bottom-width: 0px; border-image-outset: 0; border-im=
age-repeat: stretch; border-image-slice: 100%; border-image-source: none; b=
order-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style=
: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border=
-right-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, =
34); border-top-style: none; border-top-width: 0px; margin-bottom: 0px; mar=
gin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; pad=
ding-left: 0px; padding-right: 0px; padding-top: 0px;"><b style=3D"border-b=
ottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-widt=
h: 0px; border-image-outset: 0; border-image-repeat: stretch; border-image-=
slice: 100%; border-image-source: none; border-image-width: 1; border-left-=
color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; bo=
rder-right-color: rgb(34, 34, 34); border-right-style: none; border-right-w=
idth: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; borde=
r-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; =
margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px=
; padding-top: 0px;"></b><i style=3D"border-bottom-color: rgb(34, 34, 34); =
border-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0=
; border-image-repeat: stretch; border-image-slice: 100%; border-image-sour=
ce: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); border=
-left-style: none; border-left-width: 0px; border-right-color: rgb(34, 34, =
34); border-right-style: none; border-right-width: 0px; border-top-color: r=
gb(34, 34, 34); border-top-style: none; border-top-width: 0px; margin-botto=
m: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-botto=
m: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></i><u st=
yle=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; bor=
der-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch=
; border-image-slice: 100%; border-image-source: none; border-image-width: =
1; border-left-color: rgb(34, 34, 34); border-left-style: none; border-left=
-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none;=
border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-sty=
le: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; marg=
in-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; pad=
ding-right: 0px; padding-top: 0px;"></u><sub style=3D"border-bottom-color: =
rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; borde=
r-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; =
border-image-source: none; border-image-width: 1; border-left-color: rgb(34=
, 34, 34); border-left-style: none; border-left-width: 0px; border-right-co=
lor: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; bo=
rder-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width: =
0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0=
px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top=
: 0px;"></sub><sup style=3D"border-bottom-color: rgb(34, 34, 34); border-bo=
ttom-style: none; border-bottom-width: 0px; border-image-outset: 0; border-=
image-repeat: stretch; border-image-slice: 100%; border-image-source: none;=
border-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-sty=
le: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); bord=
er-right-style: none; border-right-width: 0px; border-top-color: rgb(34, 34=
, 34); border-top-style: none; border-top-width: 0px; margin-bottom: 0px; m=
argin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; p=
adding-left: 0px; padding-right: 0px; padding-top: 0px;"></sup><strike styl=
e=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; borde=
r-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch; =
border-image-slice: 100%; border-image-source: none; border-image-width: 1;=
border-left-color: rgb(34, 34, 34); border-left-style: none; border-left-w=
idth: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none; b=
order-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style=
: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin=
-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; paddi=
ng-right: 0px; padding-top: 0px;"></strike><b></b><i></i><u></u><sub></sub>=
<sup></sup><strike></strike><br style=3D"border-bottom-color: rgb(34, 34, 3=
4); border-bottom-style: none; border-bottom-width: 0px; border-image-outse=
t: 0; border-image-repeat: stretch; border-image-slice: 100%; border-image-=
source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); bo=
rder-left-style: none; border-left-width: 0px; border-right-color: rgb(34, =
34, 34); border-right-style: none; border-right-width: 0px; border-top-colo=
r: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; margin-b=
ottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-b=
ottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></fon=
t></span></div><div style=3D"background-color: transparent; border-bottom-c=
olor: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px;=
border-image-outset: 0; border-image-repeat: stretch; border-image-slice: =
100%; border-image-source: none; border-image-width: 1; border-left-color: =
rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; border-ri=
ght-color: rgb(34, 34, 34); border-right-style: none; border-right-width: 0=
px; border-top-color: rgb(34, 34, 34); border-top-style: none; border-top-w=
idth: 0px; color: rgb(34, 34, 34); font-size: 13px; font-style: normal; fon=
t-variant: normal; font-weight: 400; letter-spacing: normal; margin-bottom:=
0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; pad=
ding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; =
text-align: left; text-decoration: none; text-indent: 0px; text-transform: =
none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0p=
x;"><span style=3D"background-color: transparent; border-bottom-color: rgb(=
34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; border-im=
age-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; bord=
er-image-source: none; border-image-width: 1; border-left-color: rgb(34, 34=
, 34); border-left-style: none; border-left-width: 0px; border-right-color:=
rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; border=
-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px;=
color: rgb(34, 34, 34); display: inline; float: none; font-size: 13px; fon=
t-style: normal; font-variant: normal; font-weight: 400; letter-spacing: no=
rmal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: =
0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px=
; padding-top: 0px; text-align: left; text-decoration: none; text-indent: 0=
px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: norm=
al; word-spacing: 0px;"><font face=3D"courier new,monospace" style=3D"borde=
r-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-w=
idth: 0px; border-image-outset: 0; border-image-repeat: stretch; border-ima=
ge-slice: 100%; border-image-source: none; border-image-width: 1; border-le=
ft-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px;=
border-right-color: rgb(34, 34, 34); border-right-style: none; border-righ=
t-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; bo=
rder-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0p=
x; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: =
0px; padding-top: 0px;">}//<a</font></span></div><div style=3D"backgroun=
d-color: transparent; border-bottom-color: rgb(34, 34, 34); border-bottom-s=
tyle: none; border-bottom-width: 0px; border-image-outset: 0; border-image-=
repeat: stretch; border-image-slice: 100%; border-image-source: none; borde=
r-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: no=
ne; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-rig=
ht-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34);=
border-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); fon=
t-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; l=
etter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: =
0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; p=
adding-right: 0px; padding-top: 0px; text-align: left; text-decoration: non=
e; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; =
white-space: normal; word-spacing: 0px;"><span style=3D"background-color: t=
ransparent; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none=
; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat: st=
retch; border-image-slice: 100%; border-image-source: none; border-image-wi=
dth: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; border=
-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: =
none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-to=
p-style: none; border-top-width: 0px; color: rgb(34, 34, 34); display: inli=
ne; float: none; font-size: 13px; font-style: normal; font-variant: normal;=
font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left:=
0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; =
padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; =
text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text=
-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><font face=3D"=
courier new,monospace" style=3D"border-bottom-color: rgb(34, 34, 34); borde=
r-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; bor=
der-image-repeat: stretch; border-image-slice: 100%; border-image-source: n=
one; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-left=
-style: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); =
border-right-style: none; border-right-width: 0px; border-top-color: rgb(34=
, 34, 34); border-top-style: none; border-top-width: 0px; margin-bottom: 0p=
x; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0p=
x; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><br></font></s=
pan></div><div style=3D"background-color: transparent; border-bottom-color:=
rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; bord=
er-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%;=
border-image-source: none; border-image-width: 1; border-left-color: rgb(3=
4, 34, 34); border-left-style: none; border-left-width: 0px; border-right-c=
olor: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; b=
order-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width:=
0px; color: rgb(34, 34, 34); font-size: 13px; font-style: normal; font-var=
iant: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px;=
margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-=
bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-=
align: left; text-decoration: none; text-indent: 0px; text-transform: none;=
-webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><=
span style=3D"background-color: transparent; border-bottom-color: rgb(34, 3=
4, 34); border-bottom-style: none; border-bottom-width: 0px; border-image-o=
utset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-im=
age-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34)=
; border-left-style: none; border-left-width: 0px; border-right-color: rgb(=
34, 34, 34); border-right-style: none; border-right-width: 0px; border-top-=
color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; colo=
r: rgb(34, 34, 34); display: inline; float: none; font-size: 13px; font-sty=
le: normal; font-variant: normal; font-weight: 400; letter-spacing: normal;=
margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; =
orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; pad=
ding-top: 0px; text-align: left; text-decoration: none; text-indent: 0px; t=
ext-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; w=
ord-spacing: 0px;"><font face=3D"arial,sans-serif" style=3D"border-bottom-c=
olor: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px;=
border-image-outset: 0; border-image-repeat: stretch; border-image-slice: =
100%; border-image-source: none; border-image-width: 1; border-left-color: =
rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; border-ri=
ght-color: rgb(34, 34, 34); border-right-style: none; border-right-width: 0=
px; border-top-color: rgb(34, 34, 34); border-top-style: none; border-top-w=
idth: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-=
top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; paddi=
ng-top: 0px;">BEFORE b, then we "silently" change bvar to </font>=
<font face=3D"courier new,monospace" style=3D"border-bottom-color: rgb(34, =
34, 34); border-bottom-style: none; border-bottom-width: 0px; border-image-=
outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-i=
mage-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34=
); border-left-style: none; border-left-width: 0px; border-right-color: rgb=
(34, 34, 34); border-right-style: none; border-right-width: 0px; border-top=
-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; mar=
gin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padd=
ing-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">=
float</font></span></div><div style=3D"background-color: transparent; borde=
r-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-w=
idth: 0px; border-image-outset: 0; border-image-repeat: stretch; border-ima=
ge-slice: 100%; border-image-source: none; border-image-width: 1; border-le=
ft-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px;=
border-right-color: rgb(34, 34, 34); border-right-style: none; border-righ=
t-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; bo=
rder-top-width: 0px; color: rgb(34, 34, 34); font-size: 13px; font-style: n=
ormal; font-variant: normal; font-weight: 400; letter-spacing: normal; marg=
in-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orpha=
ns: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-=
top: 0px; text-align: left; text-decoration: none; text-indent: 0px; text-t=
ransform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-s=
pacing: 0px;"><span style=3D"background-color: transparent; border-bottom-c=
olor: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px;=
border-image-outset: 0; border-image-repeat: stretch; border-image-slice: =
100%; border-image-source: none; border-image-width: 1; border-left-color: =
rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; border-ri=
ght-color: rgb(34, 34, 34); border-right-style: none; border-right-width: 0=
px; border-top-color: rgb(34, 34, 34); border-top-style: none; border-top-w=
idth: 0px; color: rgb(34, 34, 34); display: inline; float: none; font-size:=
13px; font-style: normal; font-variant: normal; font-weight: 400; letter-s=
pacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; ma=
rgin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-=
right: 0px; padding-top: 0px; text-align: left; text-decoration: none; text=
-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-s=
pace: normal; word-spacing: 0px;"><font face=3D"arial,sans-serif" style=3D"=
border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bot=
tom-width: 0px; border-image-outset: 0; border-image-repeat: stretch; borde=
r-image-slice: 100%; border-image-source: none; border-image-width: 1; bord=
er-left-color: rgb(34, 34, 34); border-left-style: none; border-left-width:=
0px; border-right-color: rgb(34, 34, 34); border-right-style: none; border=
-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: non=
e; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-righ=
t: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-ri=
ght: 0px; padding-top: 0px;"><font face=3D"courier new,monospace"></font><b=
r></font></span></div><div style=3D"background-color: transparent; border-b=
ottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-widt=
h: 0px; border-image-outset: 0; border-image-repeat: stretch; border-image-=
slice: 100%; border-image-source: none; border-image-width: 1; border-left-=
color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; bo=
rder-right-color: rgb(34, 34, 34); border-right-style: none; border-right-w=
idth: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; borde=
r-top-width: 0px; color: rgb(34, 34, 34); font-size: 13px; font-style: norm=
al; font-variant: normal; font-weight: 400; letter-spacing: normal; margin-=
bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans:=
2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top=
: 0px; text-align: left; text-decoration: none; text-indent: 0px; text-tran=
sform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spac=
ing: 0px;"><span style=3D"background-color: transparent; border-bottom-colo=
r: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; bo=
rder-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100=
%; border-image-source: none; border-image-width: 1; border-left-color: rgb=
(34, 34, 34); border-left-style: none; border-left-width: 0px; border-right=
-color: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px;=
border-top-color: rgb(34, 34, 34); border-top-style: none; border-top-widt=
h: 0px; color: rgb(34, 34, 34); display: inline; float: none; font-size: 13=
px; font-style: normal; font-variant: normal; font-weight: 400; letter-spac=
ing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margi=
n-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-rig=
ht: 0px; padding-top: 0px; text-align: left; text-decoration: none; text-in=
dent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-spac=
e: normal; word-spacing: 0px;"><font face=3D"arial,sans-serif" style=3D"bor=
der-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom=
-width: 0px; border-image-outset: 0; border-image-repeat: stretch; border-i=
mage-slice: 100%; border-image-source: none; border-image-width: 1; border-=
left-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0p=
x; border-right-color: rgb(34, 34, 34); border-right-style: none; border-ri=
ght-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; =
border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: =
0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right=
: 0px; padding-top: 0px;"><br></font></span></div><div style=3D"background-=
color: transparent; border-bottom-color: rgb(34, 34, 34); border-bottom-sty=
le: none; border-bottom-width: 0px; border-image-outset: 0; border-image-re=
peat: stretch; border-image-slice: 100%; border-image-source: none; border-=
image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none=
; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right=
-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); b=
order-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); font-=
size: 13px; font-style: normal; font-variant: normal; font-weight: 400; let=
ter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0p=
x; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; pad=
ding-right: 0px; padding-top: 0px; text-align: left; text-decoration: none;=
text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; wh=
ite-space: normal; word-spacing: 0px;"><span style=3D"background-color: tra=
nsparent; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; =
border-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stre=
tch; border-image-slice: 100%; border-image-source: none; border-image-widt=
h: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; border-l=
eft-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: no=
ne; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-=
style: none; border-top-width: 0px; color: rgb(34, 34, 34); display: inline=
; float: none; font-size: 13px; font-style: normal; font-variant: normal; f=
ont-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0=
px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; pa=
dding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; te=
xt-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-s=
troke-width: 0px; white-space: normal; word-spacing: 0px;"><font face=3D"ar=
ial,sans-serif" style=3D"border-bottom-color: rgb(34, 34, 34); border-botto=
m-style: none; border-bottom-width: 0px; border-image-outset: 0; border-ima=
ge-repeat: stretch; border-image-slice: 100%; border-image-source: none; bo=
rder-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style:=
none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-=
right-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, 3=
4); border-top-style: none; border-top-width: 0px; margin-bottom: 0px; marg=
in-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padd=
ing-left: 0px; padding-right: 0px; padding-top: 0px;">This is one of the re=
asons I prefer to <i>not</i> let late bounding <i>just yet</i>.</font></spa=
n></div><div style=3D"background-color: transparent; border-bottom-color: r=
gb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; border=
-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; b=
order-image-source: none; border-image-width: 1; border-left-color: rgb(34,=
34, 34); border-left-style: none; border-left-width: 0px; border-right-col=
or: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; bor=
der-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0=
px; color: rgb(34, 34, 34); font-size: 13px; font-style: normal; font-varia=
nt: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; m=
argin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bo=
ttom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-al=
ign: left; text-decoration: none; text-indent: 0px; text-transform: none; -=
webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><sp=
an style=3D"background-color: transparent; border-bottom-color: rgb(34, 34,=
34); border-bottom-style: none; border-bottom-width: 0px; border-image-out=
set: 0; border-image-repeat: stretch; border-image-slice: 100%; border-imag=
e-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); =
border-left-style: none; border-left-width: 0px; border-right-color: rgb(34=
, 34, 34); border-right-style: none; border-right-width: 0px; border-top-co=
lor: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; color:=
rgb(34, 34, 34); display: inline; float: none; font-size: 13px; font-style=
: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; m=
argin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; or=
phans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; paddi=
ng-top: 0px; text-align: left; text-decoration: none; text-indent: 0px; tex=
t-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; wor=
d-spacing: 0px;"><font face=3D"arial,sans-serif" style=3D"border-bottom-col=
or: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; b=
order-image-outset: 0; border-image-repeat: stretch; border-image-slice: 10=
0%; border-image-source: none; border-image-width: 1; border-left-color: rg=
b(34, 34, 34); border-left-style: none; border-left-width: 0px; border-righ=
t-color: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px=
; border-top-color: rgb(34, 34, 34); border-top-style: none; border-top-wid=
th: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-to=
p: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding=
-top: 0px;"><br></font></span></div><div style=3D"background-color: transpa=
rent; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; bord=
er-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch;=
border-image-slice: 100%; border-image-source: none; border-image-width: 1=
; border-left-color: rgb(34, 34, 34); border-left-style: none; border-left-=
width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none; =
border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-styl=
e: none; border-top-width: 0px; color: rgb(34, 34, 34); font-size: 13px; fo=
nt-style: normal; font-variant: normal; font-weight: 400; letter-spacing: n=
ormal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top:=
0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0p=
x; padding-top: 0px; text-align: left; text-decoration: none; text-indent: =
0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: nor=
mal; word-spacing: 0px;"><span style=3D"background-color: transparent; bord=
er-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-=
width: 0px; border-image-outset: 0; border-image-repeat: stretch; border-im=
age-slice: 100%; border-image-source: none; border-image-width: 1; border-l=
eft-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px=
; border-right-color: rgb(34, 34, 34); border-right-style: none; border-rig=
ht-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; b=
order-top-width: 0px; color: rgb(34, 34, 34); display: inline; float: none;=
font-size: 13px; font-style: normal; font-variant: normal; font-weight: 40=
0; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-rig=
ht: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0p=
x; padding-right: 0px; padding-top: 0px; text-align: left; text-decoration:=
none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0=
px; white-space: normal; word-spacing: 0px;"><font face=3D"arial,sans-serif=
" style=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style: none;=
border-bottom-width: 0px; border-image-outset: 0; border-image-repeat: str=
etch; border-image-slice: 100%; border-image-source: none; border-image-wid=
th: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; border-=
left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: n=
one; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top=
-style: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; =
margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px;=
padding-right: 0px; padding-top: 0px;">I see no material benefit, yet mult=
iple issues.</font></span></div><div style=3D"background-color: transparent=
; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-b=
ottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch; bor=
der-image-slice: 100%; border-image-source: none; border-image-width: 1; bo=
rder-left-color: rgb(34, 34, 34); border-left-style: none; border-left-widt=
h: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none; bord=
er-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: n=
one; border-top-width: 0px; color: rgb(34, 34, 34); font-size: 13px; font-s=
tyle: normal; font-variant: normal; font-weight: 400; letter-spacing: norma=
l; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px=
; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; p=
adding-top: 0px; text-align: left; text-decoration: none; text-indent: 0px;=
text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal;=
word-spacing: 0px;"><span style=3D"background-color: transparent; border-b=
ottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-widt=
h: 0px; border-image-outset: 0; border-image-repeat: stretch; border-image-=
slice: 100%; border-image-source: none; border-image-width: 1; border-left-=
color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; bo=
rder-right-color: rgb(34, 34, 34); border-right-style: none; border-right-w=
idth: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; borde=
r-top-width: 0px; color: rgb(34, 34, 34); display: inline; float: none; fon=
t-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; l=
etter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: =
0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; p=
adding-right: 0px; padding-top: 0px; text-align: left; text-decoration: non=
e; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; =
white-space: normal; word-spacing: 0px;"><font face=3D"arial,sans-serif" st=
yle=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; bor=
der-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch=
; border-image-slice: 100%; border-image-source: none; border-image-width: =
1; border-left-color: rgb(34, 34, 34); border-left-style: none; border-left=
-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none;=
border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-sty=
le: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; marg=
in-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; pad=
ding-right: 0px; padding-top: 0px;"><br></font></span></div><div style=3D"b=
ackground-color: transparent; border-bottom-color: rgb(34, 34, 34); border-=
bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; borde=
r-image-repeat: stretch; border-image-slice: 100%; border-image-source: non=
e; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-s=
tyle: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); bo=
rder-right-style: none; border-right-width: 0px; border-top-color: rgb(34, =
34, 34); border-top-style: none; border-top-width: 0px; color: rgb(34, 34, =
34); font-size: 13px; font-style: normal; font-variant: normal; font-weight=
: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin=
-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left=
: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-decorat=
ion: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-widt=
h: 0px; white-space: normal; word-spacing: 0px;"><span style=3D"background-=
color: transparent; border-bottom-color: rgb(34, 34, 34); border-bottom-sty=
le: none; border-bottom-width: 0px; border-image-outset: 0; border-image-re=
peat: stretch; border-image-slice: 100%; border-image-source: none; border-=
image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none=
; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right=
-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); b=
order-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); displ=
ay: inline; float: none; font-size: 13px; font-style: normal; font-variant:=
normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; marg=
in-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-botto=
m: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align=
: left; text-decoration: none; text-indent: 0px; text-transform: none; -web=
kit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><font =
face=3D"arial,sans-serif" style=3D"border-bottom-color: rgb(34, 34, 34); bo=
rder-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; =
border-image-repeat: stretch; border-image-slice: 100%; border-image-source=
: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-l=
eft-style: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34=
); border-right-style: none; border-right-width: 0px; border-top-color: rgb=
(34, 34, 34); border-top-style: none; border-top-width: 0px; margin-bottom:=
0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom:=
0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">I am ok wit=
h </font><font face=3D"courier new,monospace" style=3D"border-bottom-color:=
rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; bord=
er-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%;=
border-image-source: none; border-image-width: 1; border-left-color: rgb(3=
4, 34, 34); border-left-style: none; border-left-width: 0px; border-right-c=
olor: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; b=
order-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width:=
0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: =
0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-to=
p: 0px;">Number auto</font></span></div><div style=3D"background-color: tra=
nsparent; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; =
border-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stre=
tch; border-image-slice: 100%; border-image-source: none; border-image-widt=
h: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; border-l=
eft-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: no=
ne; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-=
style: none; border-top-width: 0px; color: rgb(34, 34, 34); font-size: 13px=
; font-style: normal; font-variant: normal; font-weight: 400; letter-spacin=
g: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-=
top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right=
: 0px; padding-top: 0px; text-align: left; text-decoration: none; text-inde=
nt: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space:=
normal; word-spacing: 0px;"><span style=3D"background-color: transparent; =
border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bot=
tom-width: 0px; border-image-outset: 0; border-image-repeat: stretch; borde=
r-image-slice: 100%; border-image-source: none; border-image-width: 1; bord=
er-left-color: rgb(34, 34, 34); border-left-style: none; border-left-width:=
0px; border-right-color: rgb(34, 34, 34); border-right-style: none; border=
-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: non=
e; border-top-width: 0px; color: rgb(34, 34, 34); display: inline; float: n=
one; font-size: 13px; font-style: normal; font-variant: normal; font-weight=
: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin=
-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left=
: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-decorat=
ion: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-widt=
h: 0px; white-space: normal; word-spacing: 0px;"><font face=3D"arial,sans-s=
erif" style=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style: n=
one; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat:=
stretch; border-image-slice: 100%; border-image-source: none; border-image=
-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; bor=
der-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-styl=
e: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border=
-top-style: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0=
px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: =
0px; padding-right: 0px; padding-top: 0px;"><font face=3D"courier new,monos=
pace"></font><br></font></span></div><div style=3D"background-color: transp=
arent; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; bor=
der-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch=
; border-image-slice: 100%; border-image-source: none; border-image-width: =
1; border-left-color: rgb(34, 34, 34); border-left-style: none; border-left=
-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none;=
border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-sty=
le: none; border-top-width: 0px; color: rgb(34, 34, 34); font-size: 13px; f=
ont-style: normal; font-variant: normal; font-weight: 400; letter-spacing: =
normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top=
: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0=
px; padding-top: 0px; text-align: left; text-decoration: none; text-indent:=
0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: no=
rmal; word-spacing: 0px;"><span style=3D"background-color: transparent; bor=
der-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom=
-width: 0px; border-image-outset: 0; border-image-repeat: stretch; border-i=
mage-slice: 100%; border-image-source: none; border-image-width: 1; border-=
left-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0p=
x; border-right-color: rgb(34, 34, 34); border-right-style: none; border-ri=
ght-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; =
border-top-width: 0px; color: rgb(34, 34, 34); display: inline; float: none=
; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 4=
00; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-ri=
ght: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0=
px; padding-right: 0px; padding-top: 0px; text-align: left; text-decoration=
: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: =
0px; white-space: normal; word-spacing: 0px;"><font face=3D"arial,sans-seri=
f" style=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style: none=
; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat: st=
retch; border-image-slice: 100%; border-image-source: none; border-image-wi=
dth: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; border=
-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: =
none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-to=
p-style: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px;=
margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px=
; padding-right: 0px; padding-top: 0px;">And I hope it will be upgraded to =
<font face=3D"courier new,monospace">Number T </font>as it <i>dramatically<=
/i> improves declarations as one sees a type like he always did, granted no=
t a concrete one</font></span></div><div style=3D"background-color: transpa=
rent; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; bord=
er-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch;=
border-image-slice: 100%; border-image-source: none; border-image-width: 1=
; border-left-color: rgb(34, 34, 34); border-left-style: none; border-left-=
width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none; =
border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-styl=
e: none; border-top-width: 0px; color: rgb(34, 34, 34); font-size: 13px; fo=
nt-style: normal; font-variant: normal; font-weight: 400; letter-spacing: n=
ormal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top:=
0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0p=
x; padding-top: 0px; text-align: left; text-decoration: none; text-indent: =
0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: nor=
mal; word-spacing: 0px;"></div><div style=3D"background-color: transparent;=
border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bo=
ttom-width: 0px; border-image-outset: 0; border-image-repeat: stretch; bord=
er-image-slice: 100%; border-image-source: none; border-image-width: 1; bor=
der-left-color: rgb(34, 34, 34); border-left-style: none; border-left-width=
: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none; borde=
r-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: no=
ne; border-top-width: 0px; color: rgb(34, 34, 34); font-size: 13px; font-st=
yle: normal; font-variant: normal; font-weight: 400; letter-spacing: normal=
; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;=
orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; pa=
dding-top: 0px; text-align: left; text-decoration: none; text-indent: 0px; =
text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; =
word-spacing: 0px;"><span style=3D"background-color: transparent; border-bo=
ttom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width=
: 0px; border-image-outset: 0; border-image-repeat: stretch; border-image-s=
lice: 100%; border-image-source: none; border-image-width: 1; border-left-c=
olor: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; bor=
der-right-color: rgb(34, 34, 34); border-right-style: none; border-right-wi=
dth: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; border=
-top-width: 0px; color: rgb(34, 34, 34); display: inline; float: none; font=
-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; le=
tter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0=
px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; pa=
dding-right: 0px; padding-top: 0px; text-align: left; text-decoration: none=
; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; w=
hite-space: normal; word-spacing: 0px;"><font face=3D"arial,sans-serif" sty=
le=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; bord=
er-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch;=
border-image-slice: 100%; border-image-source: none; border-image-width: 1=
; border-left-color: rgb(34, 34, 34); border-left-style: none; border-left-=
width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none; =
border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-styl=
e: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margi=
n-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padd=
ing-right: 0px; padding-top: 0px;"><br></font></span></div><div style=3D"ba=
ckground-color: transparent; border-bottom-color: rgb(34, 34, 34); border-b=
ottom-style: none; border-bottom-width: 0px; border-image-outset: 0; border=
-image-repeat: stretch; border-image-slice: 100%; border-image-source: none=
; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-st=
yle: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); bor=
der-right-style: none; border-right-width: 0px; border-top-color: rgb(34, 3=
4, 34); border-top-style: none; border-top-width: 0px; color: rgb(34, 34, 3=
4); font-size: 13px; font-style: normal; font-variant: normal; font-weight:=
400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-=
right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left:=
0px; padding-right: 0px; padding-top: 0px; text-align: left; text-decorati=
on: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width=
: 0px; white-space: normal; word-spacing: 0px;"><span style=3D"background-c=
olor: transparent; border-bottom-color: rgb(34, 34, 34); border-bottom-styl=
e: none; border-bottom-width: 0px; border-image-outset: 0; border-image-rep=
eat: stretch; border-image-slice: 100%; border-image-source: none; border-i=
mage-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none;=
border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-=
style: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); bo=
rder-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); displa=
y: inline; float: none; font-size: 13px; font-style: normal; font-variant: =
normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margi=
n-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom=
: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align:=
left; text-decoration: none; text-indent: 0px; text-transform: none; -webk=
it-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><font f=
ace=3D"courier new,monospace" style=3D"border-bottom-color: rgb(34, 34, 34)=
; border-bottom-style: none; border-bottom-width: 0px; border-image-outset:=
0; border-image-repeat: stretch; border-image-slice: 100%; border-image-so=
urce: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); bord=
er-left-style: none; border-left-width: 0px; border-right-color: rgb(34, 34=
, 34); border-right-style: none; border-right-width: 0px; border-top-color:=
rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; margin-bot=
tom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bot=
tom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">[](All =
Args&&... args) { f(std::forward<Args>(args)...); }</font></s=
pan></div><div style=3D"background-color: transparent; border-bottom-color:=
rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; bord=
er-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%;=
border-image-source: none; border-image-width: 1; border-left-color: rgb(3=
4, 34, 34); border-left-style: none; border-left-width: 0px; border-right-c=
olor: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; b=
order-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width:=
0px; color: rgb(34, 34, 34); font-size: 13px; font-style: normal; font-var=
iant: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px;=
margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-=
bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-=
align: left; text-decoration: none; text-indent: 0px; text-transform: none;=
-webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><=
span style=3D"background-color: transparent; border-bottom-color: rgb(34, 3=
4, 34); border-bottom-style: none; border-bottom-width: 0px; border-image-o=
utset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-im=
age-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34)=
; border-left-style: none; border-left-width: 0px; border-right-color: rgb(=
34, 34, 34); border-right-style: none; border-right-width: 0px; border-top-=
color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; colo=
r: rgb(34, 34, 34); display: inline; float: none; font-size: 13px; font-sty=
le: normal; font-variant: normal; font-weight: 400; letter-spacing: normal;=
margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; =
orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; pad=
ding-top: 0px; text-align: left; text-decoration: none; text-indent: 0px; t=
ext-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; w=
ord-spacing: 0px;"><font face=3D"courier new,monospace" style=3D"border-bot=
tom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width:=
0px; border-image-outset: 0; border-image-repeat: stretch; border-image-sl=
ice: 100%; border-image-source: none; border-image-width: 1; border-left-co=
lor: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; bord=
er-right-color: rgb(34, 34, 34); border-right-style: none; border-right-wid=
th: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; border-=
top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; ma=
rgin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; =
padding-top: 0px;"><br></font></span></div><div style=3D"margin: 0px; paddi=
ng: 0px; border: 0px rgb(34, 34, 34); border-image: none; text-align: left;=
color: rgb(34, 34, 34); text-transform: none; text-indent: 0px; letter-spa=
cing: normal; font-size: 13px; font-variant: normal; font-weight: 400; text=
-decoration: none; word-spacing: 0px; white-space: normal; orphans: 2; -web=
kit-text-stroke-width: 0px; background-color: transparent;"><span style=3D"=
margin: 0px; padding: 0px; border: 0px rgb(34, 34, 34); border-image: none;=
text-align: left; color: rgb(34, 34, 34); text-transform: none; text-inden=
t: 0px; letter-spacing: normal; font-size: 13px; font-variant: normal; font=
-weight: 400; text-decoration: none; word-spacing: 0px; display: inline; wh=
ite-space: normal; orphans: 2; float: none; -webkit-text-stroke-width: 0px;=
background-color: transparent;"><font face=3D"arial,sans-serif" style=3D"b=
order-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bott=
om-width: 0px; border-image-outset: 0; border-image-repeat: stretch; border=
-image-slice: 100%; border-image-source: none; border-image-width: 1; borde=
r-left-color: rgb(34, 34, 34); border-left-style: none; border-left-width: =
0px; border-right-color: rgb(34, 34, 34); border-right-style: none; border-=
right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none=
; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right=
: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-rig=
ht: 0px; padding-top: 0px;"><i>I will take that before <b>ANY</b> other for=
m!</i></font></span></div><div style=3D"margin: 0px; padding: 0px; border: =
0px rgb(34, 34, 34); border-image: none; text-align: left; color: rgb(34, 3=
4, 34); text-transform: none; text-indent: 0px; letter-spacing: normal; fon=
t-size: 13px; font-variant: normal; font-weight: 400; text-decoration: none=
; word-spacing: 0px; white-space: normal; orphans: 2; -webkit-text-stroke-w=
idth: 0px; background-color: transparent;"><br></div><div style=3D"margin: =
0px; padding: 0px; border: 0px rgb(34, 34, 34); border-image: none; text-al=
ign: left; color: rgb(34, 34, 34); text-transform: none; text-indent: 0px; =
letter-spacing: normal; font-size: 13px; font-variant: normal; font-weight:=
400; text-decoration: none; word-spacing: 0px; white-space: normal; orphan=
s: 2; -webkit-text-stroke-width: 0px; background-color: transparent;"><br><=
/div></div></div></div>
<p></p>
-- <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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/36f3bb9f-ca72-428c-b016-a3c035d657d8%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/36f3bb9f-ca72-428c-b016-a3c035d657d8=
%40isocpp.org</a>.<br />
------=_Part_37141_50913461.1531467959179--
------=_Part_37140_1888108935.1531467959176--
.
Author: Hubert Tong <hubert.reinterpretcast@gmail.com>
Date: Fri, 13 Jul 2018 10:45:22 -0400
Raw View
--000000000000ca9c5f0570e288b7
Content-Type: text/plain; charset="UTF-8"
On Fri, Jul 13, 2018 at 3:45 AM, <mihailnajdenov@gmail.com> wrote:
> I am ok with Number auto
>
> And I hope it will be upgraded to Number T as it *dramatically* improves
> declarations as one sees a type like he always did, granted not a concrete
> one
>
> [](All Args&&... args) { f(std::forward<Args>(args)...); }
>
> *I will take that before ANY other form!*
>
It has been mentioned somewhere that we can and probably should pursue a
syntax to imbue auto with the ability to introduce a name for the type
deduced (or a name for the invented template parameter in deduction
contexts). So, the upgrade is not limited to Concept auto (and can be
pursued separately).
--
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.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CACvkUqbRi_FRW6BdFUwUHZ0XokR%3DqeBHSiP-2OFc2apOCpV2ew%40mail.gmail.com.
--000000000000ca9c5f0570e288b7
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote">On F=
ri, Jul 13, 2018 at 3:45 AM, <span dir=3D"ltr"><<a href=3D"mailto:mihai=
lnajdenov@gmail.com" target=3D"_blank">mihailnajdenov@gmail.com</a>></sp=
an> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;=
border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div><div><di=
v style=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);b=
order-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34=
,34);border-left-style:none;border-left-width:0px;border-right-color:rgb(34=
,34,34);border-right-style:none;border-right-width:0px;border-top-color:rgb=
(34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);f=
ont-size:13px;font-style:normal;font-variant:normal;font-weight:400;letter-=
spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-to=
p:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px=
;text-align:left;text-decoration:none;text-indent:0px;text-transform:none;w=
hite-space:normal;word-spacing:0px"><span style=3D"background-color:transpa=
rent;border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bott=
om-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-=
left-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;bor=
der-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;bo=
rder-top-width:0px;color:rgb(34,34,34);display:inline;float:none;font-size:=
13px;font-style:normal;font-variant:normal;font-weight:400;letter-spacing:n=
ormal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;pad=
ding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-ali=
gn:left;text-decoration:none;text-indent:0px;text-transform:none;white-spac=
e:normal;word-spacing:0px"><font style=3D"border-bottom-color:rgb(34,34,34)=
;border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,=
34,34);border-left-style:none;border-left-width:0px;border-right-color:rgb(=
34,34,34);border-right-style:none;border-right-width:0px;border-top-color:r=
gb(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;m=
argin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-l=
eft:0px;padding-right:0px;padding-top:0px" face=3D"arial,sans-serif">I am o=
k with </font><font style=3D"border-bottom-color:rgb(34,34,34);border-botto=
m-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border=
-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);bor=
der-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);=
border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0p=
x;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;paddi=
ng-right:0px;padding-top:0px" face=3D"courier new,monospace">Number auto</f=
ont></span></div><div style=3D"background-color:transparent;border-bottom-c=
olor:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-=
left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;borde=
r-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;=
border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;c=
olor:rgb(34,34,34);font-size:13px;font-style:normal;font-variant:normal;fon=
t-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin=
-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right=
:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px;t=
ext-transform:none;white-space:normal;word-spacing:0px"><span style=3D"back=
ground-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-st=
yle:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-lef=
t-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-=
right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bord=
er-top-style:none;border-top-width:0px;color:rgb(34,34,34);display:inline;f=
loat:none;font-size:13px;font-style:normal;font-variant:normal;font-weight:=
400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0p=
x;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padd=
ing-top:0px;text-align:left;text-decoration:none;text-indent:0px;text-trans=
form:none;white-space:normal;word-spacing:0px"><font style=3D"border-bottom=
-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;borde=
r-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;bor=
der-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0p=
x;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px=
;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-=
bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px" face=3D"aria=
l,sans-serif"><font face=3D"courier new,monospace"></font><br></font></span=
></div><div style=3D"background-color:transparent;border-bottom-color:rgb(3=
4,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-color=
:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-right-co=
lor:rgb(34,34,34);border-right-style:none;border-right-width:0px;border-top=
-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;color:rgb(3=
4,34,34);font-size:13px;font-style:normal;font-variant:normal;font-weight:4=
00;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px=
;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;paddi=
ng-top:0px;text-align:left;text-decoration:none;text-indent:0px;text-transf=
orm:none;white-space:normal;word-spacing:0px"><span style=3D"background-col=
or:transparent;border-bottom-color:rgb(34,34,34);border-bottom-style:none;b=
order-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:no=
ne;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-styl=
e:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-sty=
le:none;border-top-width:0px;color:rgb(34,34,34);display:inline;float:none;=
font-size:13px;font-style:normal;font-variant:normal;font-weight:400;letter=
-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-t=
op:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0p=
x;text-align:left;text-decoration:none;text-indent:0px;text-transform:none;=
white-space:normal;word-spacing:0px"><font style=3D"border-bottom-color:rgb=
(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-col=
or:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-right-=
color:rgb(34,34,34);border-right-style:none;border-right-width:0px;border-t=
op-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-bo=
ttom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px=
;padding-left:0px;padding-right:0px;padding-top:0px" face=3D"arial,sans-ser=
if">And I hope it will be upgraded to <font face=3D"courier new,monospace">=
Number T </font>as it <i>dramatically</i> improves declarations as one sees=
a type like he always did, granted not a concrete one</font></span></div><=
div style=3D"background-color:transparent;border-bottom-color:rgb(34,34,34)=
;border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,=
34,34);border-left-style:none;border-left-width:0px;border-right-color:rgb(=
34,34,34);border-right-style:none;border-right-width:0px;border-top-color:r=
gb(34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34)=
;font-size:13px;font-style:normal;font-variant:normal;font-weight:400;lette=
r-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-=
top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0=
px;text-align:left;text-decoration:none;text-indent:0px;text-transform:none=
;white-space:normal;word-spacing:0px"></div><div style=3D"background-color:=
transparent;border-bottom-color:rgb(34,34,34);border-bottom-style:none;bord=
er-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;=
border-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:n=
one;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:=
none;border-top-width:0px;color:rgb(34,34,34);font-size:13px;font-style:nor=
mal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-bottom=
:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;pad=
ding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-decora=
tion:none;text-indent:0px;text-transform:none;white-space:normal;word-spaci=
ng:0px"><span style=3D"background-color:transparent;border-bottom-color:rgb=
(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-col=
or:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-right-=
color:rgb(34,34,34);border-right-style:none;border-right-width:0px;border-t=
op-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;color:rgb=
(34,34,34);display:inline;float:none;font-size:13px;font-style:normal;font-=
variant:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;marg=
in-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left=
:0px;padding-right:0px;padding-top:0px;text-align:left;text-decoration:none=
;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><=
font style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;bo=
rder-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:non=
e;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-style=
:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-styl=
e:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:=
0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;pa=
dding-top:0px" face=3D"arial,sans-serif"><br></font></span></div><div style=
=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);border-b=
ottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);bo=
rder-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34)=
;border-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,=
34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);font-siz=
e:13px;font-style:normal;font-variant:normal;font-weight:400;letter-spacing=
:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;p=
adding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-a=
lign:left;text-decoration:none;text-indent:0px;text-transform:none;white-sp=
ace:normal;word-spacing:0px"><span style=3D"background-color:transparent;bo=
rder-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-widt=
h:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-wi=
dth:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-rig=
ht-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-to=
p-width:0px;color:rgb(34,34,34);display:inline;float:none;font-size:13px;fo=
nt-style:normal;font-variant:normal;font-weight:400;letter-spacing:normal;m=
argin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bo=
ttom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-align:left=
;text-decoration:none;text-indent:0px;text-transform:none;white-space:norma=
l;word-spacing:0px"><font style=3D"border-bottom-color:rgb(34,34,34);border=
-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);=
border-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,3=
4);border-right-style:none;border-right-width:0px;border-top-color:rgb(34,3=
4,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-l=
eft:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px=
;padding-right:0px;padding-top:0px" face=3D"courier new,monospace">[](All A=
rgs&&... args) { f(std::forward<Args>(args)...)<wbr>; }</font=
></span></div><div style=3D"background-color:transparent;border-bottom-colo=
r:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-lef=
t-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-r=
ight-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;bor=
der-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;colo=
r:rgb(34,34,34);font-size:13px;font-style:normal;font-variant:normal;font-w=
eight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-ri=
ght:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0p=
x;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px;text=
-transform:none;white-space:normal;word-spacing:0px"><span style=3D"backgro=
und-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-style=
:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-s=
tyle:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-rig=
ht-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-=
top-style:none;border-top-width:0px;color:rgb(34,34,34);display:inline;floa=
t:none;font-size:13px;font-style:normal;font-variant:normal;font-weight:400=
;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;m=
argin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding=
-top:0px;text-align:left;text-decoration:none;text-indent:0px;text-transfor=
m:none;white-space:normal;word-spacing:0px"><font style=3D"border-bottom-co=
lor:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-l=
eft-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;border=
-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;b=
order-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;ma=
rgin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bot=
tom:0px;padding-left:0px;padding-right:0px;padding-top:0px" face=3D"courier=
new,monospace"><br></font></span></div><div style=3D"margin:0px;padding:0p=
x;border:0px rgb(34,34,34);text-align:left;color:rgb(34,34,34);text-transfo=
rm:none;text-indent:0px;letter-spacing:normal;font-size:13px;font-variant:n=
ormal;font-weight:400;text-decoration:none;word-spacing:0px;white-space:nor=
mal;background-color:transparent"><span style=3D"margin:0px;padding:0px;bor=
der:0px rgb(34,34,34);text-align:left;color:rgb(34,34,34);text-transform:no=
ne;text-indent:0px;letter-spacing:normal;font-size:13px;font-variant:normal=
;font-weight:400;text-decoration:none;word-spacing:0px;display:inline;white=
-space:normal;float:none;background-color:transparent"><font style=3D"borde=
r-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0=
px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-width=
:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-right-=
width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-w=
idth:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;=
padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px" face=
=3D"arial,sans-serif"><i>I will take that before <b>ANY</b> other form!</i>=
</font></span></div></div></div></div></blockquote><div>It has been mention=
ed somewhere that we can and probably should pursue a syntax to imbue <span=
style=3D"font-family:monospace,monospace">auto</span> with the ability to =
introduce a name for the type deduced (or a name for the invented template =
parameter in deduction contexts). So, the upgrade is not limited to <span s=
tyle=3D"font-family:monospace,monospace">Concept auto</span> (and can be pu=
rsued separately).<br></div></div></div></div>
<p></p>
-- <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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CACvkUqbRi_FRW6BdFUwUHZ0XokR%3DqeBHSi=
P-2OFc2apOCpV2ew%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">h=
ttps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CACvkUqbRi_FRW6=
BdFUwUHZ0XokR%3DqeBHSiP-2OFc2apOCpV2ew%40mail.gmail.com</a>.<br />
--000000000000ca9c5f0570e288b7--
.
Author: Tony V E <tvaneerd@gmail.com>
Date: Fri, 13 Jul 2018 11:07:22 -0400
Raw View
--0000000000003bf8960570e2d602
Content-Type: text/plain; charset="UTF-8"
On Fri, Jul 13, 2018 at 10:45 AM, Hubert Tong <
hubert.reinterpretcast@gmail.com> wrote:
> On Fri, Jul 13, 2018 at 3:45 AM, <mihailnajdenov@gmail.com> wrote:
>
>> I am ok with Number auto
>>
>> And I hope it will be upgraded to Number T as it *dramatically* improves
>> declarations as one sees a type like he always did, granted not a concrete
>> one
>>
>> [](All Args&&... args) { f(std::forward<Args>(args)...); }
>>
>> *I will take that before ANY other form!*
>>
> It has been mentioned somewhere that we can and probably should pursue a
> syntax to imbue auto with the ability to introduce a name for the type
> deduced (or a name for the invented template parameter in deduction
> contexts). So, the upgrade is not limited to Concept auto (and can be
> pursued separately).
>
But if we end up with auto{X} being the syntax for naming the deduced type,
and Concept auto{X},...
maybe just go with Herb's proposal now.
--
Be seeing you,
Tony
--
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.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAOHCbiuh_JwZjV%3D_S5ucOOC7rPQSToCEpWSrKU7eeOqXqumRvQ%40mail.gmail.com.
--0000000000003bf8960570e2d602
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 Fri, Jul 13, 2018 at 10:45 AM, Hubert Tong <span dir=3D"ltr"><<a =
href=3D"mailto:hubert.reinterpretcast@gmail.com" target=3D"_blank">hubert.r=
einterpretcast@gmail.com</a>></span> wrote:<br><blockquote class=3D"gmai=
l_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left=
:1ex"><div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote=
">On Fri, Jul 13, 2018 at 3:45 AM, <span dir=3D"ltr"><<a href=3D"mailto=
:mihailnajdenov@gmail.com" target=3D"_blank">mihailnajdenov@gmail.com</a>&g=
t;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0=
.8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div><d=
iv><div style=3D"background-color:transparent;border-bottom-color:rgb(34,34=
,34);border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb=
(34,34,34);border-left-style:none;border-left-width:0px;border-right-color:=
rgb(34,34,34);border-right-style:none;border-right-width:0px;border-top-col=
or:rgb(34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34=
,34);font-size:13px;font-style:normal;font-variant:normal;font-weight:400;l=
etter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;mar=
gin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-t=
op:0px;text-align:left;text-decoration:none;text-indent:0px;text-transform:=
none;white-space:normal;word-spacing:0px"><span style=3D"background-color:t=
ransparent;border-bottom-color:rgb(34,34,34);border-bottom-style:none;borde=
r-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;b=
order-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:no=
ne;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:n=
one;border-top-width:0px;color:rgb(34,34,34);display:inline;float:none;font=
-size:13px;font-style:normal;font-variant:normal;font-weight:400;letter-spa=
cing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0=
px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;te=
xt-align:left;text-decoration:none;text-indent:0px;text-transform:none;whit=
e-space:normal;word-spacing:0px"><font style=3D"border-bottom-color:rgb(34,=
34,34);border-bottom-style:none;border-bottom-width:0px;border-left-color:r=
gb(34,34,34);border-left-style:none;border-left-width:0px;border-right-colo=
r:rgb(34,34,34);border-right-style:none;border-right-width:0px;border-top-c=
olor:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom=
:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;pad=
ding-left:0px;padding-right:0px;padding-top:0px" face=3D"arial,sans-serif">=
I am ok with </font><font style=3D"border-bottom-color:rgb(34,34,34);border=
-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);=
border-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,3=
4);border-right-style:none;border-right-width:0px;border-top-color:rgb(34,3=
4,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-l=
eft:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px=
;padding-right:0px;padding-top:0px" face=3D"courier new,monospace">Number a=
uto</font></span></div><div style=3D"background-color:transparent;border-bo=
ttom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;b=
order-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px=
;border-right-color:rgb(34,34,34);border-right-style:none;border-right-widt=
h:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width=
:0px;color:rgb(34,34,34);font-size:13px;font-style:normal;font-variant:norm=
al;font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;=
margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding=
-right:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent=
:0px;text-transform:none;white-space:normal;word-spacing:0px"><span style=
=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);border-b=
ottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);bo=
rder-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34)=
;border-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,=
34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);display:=
inline;float:none;font-size:13px;font-style:normal;font-variant:normal;font=
-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-=
right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:=
0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px;te=
xt-transform:none;white-space:normal;word-spacing:0px"><font style=3D"borde=
r-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0=
px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-width=
:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-right-=
width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-w=
idth:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;=
padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px" face=
=3D"arial,sans-serif"><font face=3D"courier new,monospace"></font><br></fon=
t></span></div><div style=3D"background-color:transparent;border-bottom-col=
or:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-le=
ft-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-=
right-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;bo=
rder-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;col=
or:rgb(34,34,34);font-size:13px;font-style:normal;font-variant:normal;font-=
weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-r=
ight:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0=
px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px;tex=
t-transform:none;white-space:normal;word-spacing:0px"><span style=3D"backgr=
ound-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-styl=
e:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-=
style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-ri=
ght-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);border=
-top-style:none;border-top-width:0px;color:rgb(34,34,34);display:inline;flo=
at:none;font-size:13px;font-style:normal;font-variant:normal;font-weight:40=
0;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;=
margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;paddin=
g-top:0px;text-align:left;text-decoration:none;text-indent:0px;text-transfo=
rm:none;white-space:normal;word-spacing:0px"><font style=3D"border-bottom-c=
olor:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-=
left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;borde=
r-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;=
border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;m=
argin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bo=
ttom:0px;padding-left:0px;padding-right:0px;padding-top:0px" face=3D"arial,=
sans-serif">And I hope it will be upgraded to <font face=3D"courier new,mon=
ospace">Number T </font>as it <i>dramatically</i> improves declarations as =
one sees a type like he always did, granted not a concrete one</font></span=
></div><div style=3D"background-color:transparent;border-bottom-color:rgb(3=
4,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-color=
:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-right-co=
lor:rgb(34,34,34);border-right-style:none;border-right-width:0px;border-top=
-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;color:rgb(3=
4,34,34);font-size:13px;font-style:normal;font-variant:normal;font-weight:4=
00;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px=
;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;paddi=
ng-top:0px;text-align:left;text-decoration:none;text-indent:0px;text-transf=
orm:none;white-space:normal;word-spacing:0px"></div><div style=3D"backgroun=
d-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-style:n=
one;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-sty=
le:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-right=
-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-to=
p-style:none;border-top-width:0px;color:rgb(34,34,34);font-size:13px;font-s=
tyle:normal;font-variant:normal;font-weight:400;letter-spacing:normal;margi=
n-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom=
:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-align:left;tex=
t-decoration:none;text-indent:0px;text-transform:none;white-space:normal;wo=
rd-spacing:0px"><span style=3D"background-color:transparent;border-bottom-c=
olor:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-=
left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;borde=
r-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;=
border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;c=
olor:rgb(34,34,34);display:inline;float:none;font-size:13px;font-style:norm=
al;font-variant:normal;font-weight:400;letter-spacing:normal;margin-bottom:=
0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padd=
ing-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-decorat=
ion:none;text-indent:0px;text-transform:none;white-space:normal;word-spacin=
g:0px"><font style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style=
:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-s=
tyle:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-rig=
ht-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-=
top-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;margi=
n-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-righ=
t:0px;padding-top:0px" face=3D"arial,sans-serif"><br></font></span></div><d=
iv style=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);=
border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,3=
4,34);border-left-style:none;border-left-width:0px;border-right-color:rgb(3=
4,34,34);border-right-style:none;border-right-width:0px;border-top-color:rg=
b(34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);=
font-size:13px;font-style:normal;font-variant:normal;font-weight:400;letter=
-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-t=
op:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0p=
x;text-align:left;text-decoration:none;text-indent:0px;text-transform:none;=
white-space:normal;word-spacing:0px"><span style=3D"background-color:transp=
arent;border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bot=
tom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;border=
-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;bo=
rder-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;b=
order-top-width:0px;color:rgb(34,34,34);display:inline;float:none;font-size=
:13px;font-style:normal;font-variant:normal;font-weight:400;letter-spacing:=
normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;pa=
dding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-al=
ign:left;text-decoration:none;text-indent:0px;text-transform:none;white-spa=
ce:normal;word-spacing:0px"><font style=3D"border-bottom-color:rgb(34,34,34=
);border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34=
,34,34);border-left-style:none;border-left-width:0px;border-right-color:rgb=
(34,34,34);border-right-style:none;border-right-width:0px;border-top-color:=
rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;=
margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-=
left:0px;padding-right:0px;padding-top:0px" face=3D"courier new,monospace">=
[](All Args&&... args) { f(std::forward<Args>(args)...)<wbr>;=
}</font></span></div><div style=3D"background-color:transparent;border-bot=
tom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;bo=
rder-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;=
border-right-color:rgb(34,34,34);border-right-style:none;border-right-width=
:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:=
0px;color:rgb(34,34,34);font-size:13px;font-style:normal;font-variant:norma=
l;font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;m=
argin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-=
right:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:=
0px;text-transform:none;white-space:normal;word-spacing:0px"><span style=3D=
"background-color:transparent;border-bottom-color:rgb(34,34,34);border-bott=
om-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);borde=
r-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);bo=
rder-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34)=
;border-top-style:none;border-top-width:0px;color:rgb(34,34,34);display:inl=
ine;float:none;font-size:13px;font-style:normal;font-variant:normal;font-we=
ight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-rig=
ht:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px=
;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px;text-=
transform:none;white-space:normal;word-spacing:0px"><font style=3D"border-b=
ottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;=
border-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0p=
x;border-right-color:rgb(34,34,34);border-right-style:none;border-right-wid=
th:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-widt=
h:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;pad=
ding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px" face=3D=
"courier new,monospace"><br></font></span></div><div style=3D"margin:0px;pa=
dding:0px;border:0px rgb(34,34,34);text-align:left;color:rgb(34,34,34);text=
-transform:none;text-indent:0px;letter-spacing:normal;font-size:13px;font-v=
ariant:normal;font-weight:400;text-decoration:none;word-spacing:0px;white-s=
pace:normal;background-color:transparent"><span style=3D"margin:0px;padding=
:0px;border:0px rgb(34,34,34);text-align:left;color:rgb(34,34,34);text-tran=
sform:none;text-indent:0px;letter-spacing:normal;font-size:13px;font-varian=
t:normal;font-weight:400;text-decoration:none;word-spacing:0px;display:inli=
ne;white-space:normal;float:none;background-color:transparent"><font style=
=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-botto=
m-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-l=
eft-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;bord=
er-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;bor=
der-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin=
-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:=
0px" face=3D"arial,sans-serif"><i>I will take that before <b>ANY</b> other =
form!</i></font></span></div></div></div></div></blockquote><div>It has bee=
n mentioned somewhere that we can and probably should pursue a syntax to im=
bue <span style=3D"font-family:monospace,monospace">auto</span> with the ab=
ility to introduce a name for the type deduced (or a name for the invented =
template parameter in deduction contexts). So, the upgrade is not limited t=
o <span style=3D"font-family:monospace,monospace">Concept auto</span> (and =
can be pursued separately).<br></div></div></div></div><span class=3D"">
</span></blockquote><div><br></div><div>But if we end up with auto{X} being=
the syntax for naming the deduced type, and Concept auto{X},...</div><div>=
maybe just go with Herb's proposal now.</div><div><br></div></div>-- <b=
r><div class=3D"gmail_signature" data-smartmail=3D"gmail_signature"><div di=
r=3D"ltr"><div>Be seeing you,<br></div>Tony<br></div></div>
</div></div>
<p></p>
-- <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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CAOHCbiuh_JwZjV%3D_S5ucOOC7rPQSToCEpW=
SrKU7eeOqXqumRvQ%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">h=
ttps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAOHCbiuh_JwZjV=
%3D_S5ucOOC7rPQSToCEpWSrKU7eeOqXqumRvQ%40mail.gmail.com</a>.<br />
--0000000000003bf8960570e2d602--
.
Author: Hubert Tong <hubert.reinterpretcast@gmail.com>
Date: Fri, 13 Jul 2018 11:13:40 -0400
Raw View
--000000000000fa9b330570e2eddd
Content-Type: text/plain; charset="UTF-8"
On Fri, Jul 13, 2018 at 11:07 AM, Tony V E <tvaneerd@gmail.com> wrote:
>
>
> On Fri, Jul 13, 2018 at 10:45 AM, Hubert Tong <
> hubert.reinterpretcast@gmail.com> wrote:
>
>> On Fri, Jul 13, 2018 at 3:45 AM, <mihailnajdenov@gmail.com> wrote:
>>
>>> I am ok with Number auto
>>>
>>> And I hope it will be upgraded to Number T as it *dramatically*
>>> improves declarations as one sees a type like he always did, granted not a
>>> concrete one
>>>
>>> [](All Args&&... args) { f(std::forward<Args>(args)...); }
>>>
>>> *I will take that before ANY other form!*
>>>
>> It has been mentioned somewhere that we can and probably should pursue a
>> syntax to imbue auto with the ability to introduce a name for the type
>> deduced (or a name for the invented template parameter in deduction
>> contexts). So, the upgrade is not limited to Concept auto (and can be
>> pursued separately).
>>
>
> But if we end up with auto{X} being the syntax for naming the deduced
> type, and Concept auto{X},...
> maybe just go with Herb's proposal now.
>
It's similar in syntax with respect to the effects of Parts 1 and 2 of
P1141, but the position in Herb's paper over what Part 3 of P1141 covers
was a deal breaker for some.
-- HT
--
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.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CACvkUqbAiLkb8Agg2o1AsgPZro2uyc%2BzeL0EzHOUm8rSN1VzmA%40mail.gmail.com.
--000000000000fa9b330570e2eddd
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote">On F=
ri, Jul 13, 2018 at 11:07 AM, Tony V E <span dir=3D"ltr"><<a href=3D"mai=
lto:tvaneerd@gmail.com" target=3D"_blank">tvaneerd@gmail.com</a>></span>=
wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bor=
der-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><br><div class=
=3D"gmail_extra"><br><div class=3D"gmail_quote"><div><div class=3D"h5">On F=
ri, Jul 13, 2018 at 10:45 AM, Hubert Tong <span dir=3D"ltr"><<a href=3D"=
mailto:hubert.reinterpretcast@gmail.com" target=3D"_blank">hubert.reinterpr=
etcast@gmail.<wbr>com</a>></span> wrote:<br><blockquote class=3D"gmail_q=
uote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1e=
x"><div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote">O=
n Fri, Jul 13, 2018 at 3:45 AM, <span dir=3D"ltr"><<a href=3D"mailto:mi=
hailnajdenov@gmail.com" target=3D"_blank">mihailnajdenov@gmail.com</a>><=
/span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8=
ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div><div>=
<div style=3D"background-color:transparent;border-bottom-color:rgb(34,34,34=
);border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34=
,34,34);border-left-style:none;border-left-width:0px;border-right-color:rgb=
(34,34,34);border-right-style:none;border-right-width:0px;border-top-color:=
rgb(34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34=
);font-size:13px;font-style:normal;font-variant:normal;font-weight:400;lett=
er-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin=
-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:=
0px;text-align:left;text-decoration:none;text-indent:0px;text-transform:non=
e;white-space:normal;word-spacing:0px"><span style=3D"background-color:tran=
sparent;border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-b=
ottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;bord=
er-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;=
border-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none=
;border-top-width:0px;color:rgb(34,34,34);display:inline;float:none;font-si=
ze:13px;font-style:normal;font-variant:normal;font-weight:400;letter-spacin=
g:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;=
padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-=
align:left;text-decoration:none;text-indent:0px;text-transform:none;white-s=
pace:normal;word-spacing:0px"><font style=3D"border-bottom-color:rgb(34,34,=
34);border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(=
34,34,34);border-left-style:none;border-left-width:0px;border-right-color:r=
gb(34,34,34);border-right-style:none;border-right-width:0px;border-top-colo=
r:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0p=
x;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;paddin=
g-left:0px;padding-right:0px;padding-top:0px" face=3D"arial,sans-serif">I a=
m ok with </font><font style=3D"border-bottom-color:rgb(34,34,34);border-bo=
ttom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);bor=
der-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);=
border-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,3=
4);border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left=
:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;pa=
dding-right:0px;padding-top:0px" face=3D"courier new,monospace">Number auto=
</font></span></div><div style=3D"background-color:transparent;border-botto=
m-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;bord=
er-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;bo=
rder-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0=
px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0p=
x;color:rgb(34,34,34);font-size:13px;font-style:normal;font-variant:normal;=
font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;mar=
gin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-ri=
ght:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0p=
x;text-transform:none;white-space:normal;word-spacing:0px"><span style=3D"b=
ackground-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom=
-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-=
left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);bord=
er-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);b=
order-top-style:none;border-top-width:0px;color:rgb(34,34,34);display:inlin=
e;float:none;font-size:13px;font-style:normal;font-variant:normal;font-weig=
ht:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right=
:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;p=
adding-top:0px;text-align:left;text-decoration:none;text-indent:0px;text-tr=
ansform:none;white-space:normal;word-spacing:0px"><font style=3D"border-bot=
tom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;bo=
rder-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;=
border-right-color:rgb(34,34,34);border-right-style:none;border-right-width=
:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:=
0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;paddi=
ng-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px" face=3D"a=
rial,sans-serif"><font face=3D"courier new,monospace"></font><br></font></s=
pan></div><div style=3D"background-color:transparent;border-bottom-color:rg=
b(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-co=
lor:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-right=
-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;border-=
top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;color:rg=
b(34,34,34);font-size:13px;font-style:normal;font-variant:normal;font-weigh=
t:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:=
0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;pa=
dding-top:0px;text-align:left;text-decoration:none;text-indent:0px;text-tra=
nsform:none;white-space:normal;word-spacing:0px"><span style=3D"background-=
color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-style:non=
e;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style=
:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-s=
tyle:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-=
style:none;border-top-width:0px;color:rgb(34,34,34);display:inline;float:no=
ne;font-size:13px;font-style:normal;font-variant:normal;font-weight:400;let=
ter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margi=
n-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top=
:0px;text-align:left;text-decoration:none;text-indent:0px;text-transform:no=
ne;white-space:normal;word-spacing:0px"><font style=3D"border-bottom-color:=
rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-=
color:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-rig=
ht-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;borde=
r-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin=
-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:=
0px;padding-left:0px;padding-right:0px;padding-top:0px" face=3D"arial,sans-=
serif">And I hope it will be upgraded to <font face=3D"courier new,monospac=
e">Number T </font>as it <i>dramatically</i> improves declarations as one s=
ees a type like he always did, granted not a concrete one</font></span></di=
v><div style=3D"background-color:transparent;border-bottom-color:rgb(34,34,=
34);border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(=
34,34,34);border-left-style:none;border-left-width:0px;border-right-color:r=
gb(34,34,34);border-right-style:none;border-right-width:0px;border-top-colo=
r:rgb(34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,=
34);font-size:13px;font-style:normal;font-variant:normal;font-weight:400;le=
tter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;marg=
in-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-to=
p:0px;text-align:left;text-decoration:none;text-indent:0px;text-transform:n=
one;white-space:normal;word-spacing:0px"></div><div style=3D"background-col=
or:transparent;border-bottom-color:rgb(34,34,34);border-bottom-style:none;b=
order-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:no=
ne;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-styl=
e:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-sty=
le:none;border-top-width:0px;color:rgb(34,34,34);font-size:13px;font-style:=
normal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-bot=
tom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;=
padding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-dec=
oration:none;text-indent:0px;text-transform:none;white-space:normal;word-sp=
acing:0px"><span style=3D"background-color:transparent;border-bottom-color:=
rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-=
color:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-rig=
ht-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;borde=
r-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;color:=
rgb(34,34,34);display:inline;float:none;font-size:13px;font-style:normal;fo=
nt-variant:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;m=
argin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-l=
eft:0px;padding-right:0px;padding-top:0px;text-align:left;text-decoration:n=
one;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px=
"><font style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none=
;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:=
none;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-st=
yle:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-s=
tyle:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-rig=
ht:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px=
;padding-top:0px" face=3D"arial,sans-serif"><br></font></span></div><div st=
yle=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);borde=
r-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34)=
;border-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,=
34);border-right-style:none;border-right-width:0px;border-top-color:rgb(34,=
34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);font-=
size:13px;font-style:normal;font-variant:normal;font-weight:400;letter-spac=
ing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0p=
x;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;tex=
t-align:left;text-decoration:none;text-indent:0px;text-transform:none;white=
-space:normal;word-spacing:0px"><span style=3D"background-color:transparent=
;border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-w=
idth:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left=
-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-=
right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border=
-top-width:0px;color:rgb(34,34,34);display:inline;float:none;font-size:13px=
;font-style:normal;font-variant:normal;font-weight:400;letter-spacing:norma=
l;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding=
-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-align:l=
eft;text-decoration:none;text-indent:0px;text-transform:none;white-space:no=
rmal;word-spacing:0px"><font style=3D"border-bottom-color:rgb(34,34,34);bor=
der-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,3=
4);border-left-style:none;border-left-width:0px;border-right-color:rgb(34,3=
4,34);border-right-style:none;border-right-width:0px;border-top-color:rgb(3=
4,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;margi=
n-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:=
0px;padding-right:0px;padding-top:0px" face=3D"courier new,monospace">[](Al=
l Args&&... args) { f(std::forward<Args>(args)...)<wbr>; }</f=
ont></span></div><div style=3D"background-color:transparent;border-bottom-c=
olor:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-=
left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;borde=
r-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;=
border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;c=
olor:rgb(34,34,34);font-size:13px;font-style:normal;font-variant:normal;fon=
t-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin=
-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right=
:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px;t=
ext-transform:none;white-space:normal;word-spacing:0px"><span style=3D"back=
ground-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-st=
yle:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-lef=
t-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-=
right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bord=
er-top-style:none;border-top-width:0px;color:rgb(34,34,34);display:inline;f=
loat:none;font-size:13px;font-style:normal;font-variant:normal;font-weight:=
400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0p=
x;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padd=
ing-top:0px;text-align:left;text-decoration:none;text-indent:0px;text-trans=
form:none;white-space:normal;word-spacing:0px"><font style=3D"border-bottom=
-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;borde=
r-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;bor=
der-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0p=
x;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px=
;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-=
bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px" face=3D"cour=
ier new,monospace"><br></font></span></div><div style=3D"margin:0px;padding=
:0px;border:0px rgb(34,34,34);text-align:left;color:rgb(34,34,34);text-tran=
sform:none;text-indent:0px;letter-spacing:normal;font-size:13px;font-varian=
t:normal;font-weight:400;text-decoration:none;word-spacing:0px;white-space:=
normal;background-color:transparent"><span style=3D"margin:0px;padding:0px;=
border:0px rgb(34,34,34);text-align:left;color:rgb(34,34,34);text-transform=
:none;text-indent:0px;letter-spacing:normal;font-size:13px;font-variant:nor=
mal;font-weight:400;text-decoration:none;word-spacing:0px;display:inline;wh=
ite-space:normal;float:none;background-color:transparent"><font style=3D"bo=
rder-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-widt=
h:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-wi=
dth:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-rig=
ht-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-to=
p-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0=
px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px" f=
ace=3D"arial,sans-serif"><i>I will take that before <b>ANY</b> other form!<=
/i></font></span></div></div></div></div></blockquote><div>It has been ment=
ioned somewhere that we can and probably should pursue a syntax to imbue <s=
pan style=3D"font-family:monospace,monospace">auto</span> with the ability =
to introduce a name for the type deduced (or a name for the invented templa=
te parameter in deduction contexts). So, the upgrade is not limited to <spa=
n style=3D"font-family:monospace,monospace">Concept auto</span> (and can be=
pursued separately).<br></div></div></div></div><span>
</span></blockquote><div><br></div></div></div><div>But if we end up with a=
uto{X} being the syntax for naming the deduced type, and Concept auto{X},..=
..</div><div>maybe just go with Herb's proposal now.</div></div></div></=
div></blockquote><div>It's similar in syntax with respect to the effect=
s of Parts 1 and 2 of P1141, but the position in Herb's paper over what=
Part 3 of P1141 covers was a deal breaker for some.<br><br></div><div>-- H=
T<br></div><div><br></div></div></div></div>
<p></p>
-- <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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CACvkUqbAiLkb8Agg2o1AsgPZro2uyc%2BzeL=
0EzHOUm8rSN1VzmA%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">h=
ttps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CACvkUqbAiLkb8A=
gg2o1AsgPZro2uyc%2BzeL0EzHOUm8rSN1VzmA%40mail.gmail.com</a>.<br />
--000000000000fa9b330570e2eddd--
.
Author: Hubert Tong <hubert.reinterpretcast@gmail.com>
Date: Fri, 13 Jul 2018 11:54:12 -0400
Raw View
--000000000000f1a15e0570e37e18
Content-Type: text/plain; charset="UTF-8"
On Fri, Jul 13, 2018 at 1:32 AM, Zhihao Yuan <zy@miator.net> wrote:
> From: hubert.reinterpretcast@gmail.com <hubert.reinterpretcast@gmail.com>
> Sent: Thursday, July 12, 2018 9:44 PM
> >
> > template <typename T> concept C0 = true;
> > template <typename ...Ts> concept C1 = true;
> >
> > template <C0 ...Ts> struct A0 { }; // (C0<Ts> && ...)
> > template <C1 ...Ts> struct A1 { }; // C1<Ts...>
> >
> > If you don't like it, then I think papers are welcome. [...]
>
> Oh dear, that's a crazy one, I wish P1141R0's wording
> can get rid of it (because that's essentially the 4th kind).
It's not the wording that needs to get rid of it, but the design. It seems
you are saying that the design rationale, namely that "[i]t would further
be nice if that syntax covered only the most common case", provided by
P1141 for removing the shorthand associated with non-type and template
concepts would also apply to this shorthand for applying a concept to a
pack in aggregate. I think that could work, but I cannot make guarantees.
--
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.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CACvkUqZ6paQo6XHH0M1wStwK9q7JUkV_3vEJcEN_13jQMAYG9Q%40mail.gmail.com.
--000000000000f1a15e0570e37e18
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote">On F=
ri, Jul 13, 2018 at 1:32 AM, Zhihao Yuan <span dir=3D"ltr"><<a href=3D"m=
ailto:zy@miator.net" target=3D"_blank">zy@miator.net</a>></span> wrote:<=
br><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bord=
er-left:1px solid rgb(204,204,204);padding-left:1ex">From: <a href=3D"mailt=
o:hubert.reinterpretcast@gmail.com" target=3D"_blank">hubert.reinterpretcas=
t@gmail.c<wbr>om</a> <<a href=3D"mailto:hubert.reinterpretcast@gmail.com=
" target=3D"_blank">hubert.reinterpretcast@gmail.<wbr>com</a>> <br>
Sent: Thursday, July 12, 2018 9:44 PM<br>
<span>> <br>
> template <typename T> concept C0 =3D true;<br>
> template <typename ...Ts> concept C1 =3D true;<br>
> <br>
> template <C0 ...Ts> struct A0 { }; // (C0<Ts> && .=
...)<br>
> template <C1 ...Ts> struct A1 { }; // C1<Ts...><br>
> <br>
</span>> If you don't like it, then I think papers are welcome. [...=
]<br>
<br>
Oh dear, that's a crazy one, I wish P1141R0's wording<br>
can get rid of it (because that's essentially the 4th kind).</blockquot=
e><div>It's not the wording that needs to get rid of it, but the design=
.. It seems you are saying that the design rationale, namely that "[i]t=
would further be nice if that syntax covered only the most common case&quo=
t;, provided by P1141 for removing the shorthand associated with non-type a=
nd template concepts would also apply to this shorthand for applying a conc=
ept to a pack in aggregate. I think that could work, but I cannot make guar=
antees.<br><br></div></div></div></div>
<p></p>
-- <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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CACvkUqZ6paQo6XHH0M1wStwK9q7JUkV_3vEJ=
cEN_13jQMAYG9Q%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">htt=
ps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CACvkUqZ6paQo6XHH=
0M1wStwK9q7JUkV_3vEJcEN_13jQMAYG9Q%40mail.gmail.com</a>.<br />
--000000000000f1a15e0570e37e18--
.
Author: mihailnajdenov@gmail.com
Date: Fri, 13 Jul 2018 09:07:13 -0700 (PDT)
Raw View
------=_Part_130596_1289491458.1531498033531
Content-Type: multipart/alternative;
boundary="----=_Part_130597_2018154884.1531498033532"
------=_Part_130597_2018154884.1531498033532
Content-Type: text/plain; charset="UTF-8"
On Friday, July 13, 2018 at 5:45:45 PM UTC+3, Hubert Tong wrote:
>
> On Fri, Jul 13, 2018 at 3:45 AM, <mihailn...@gmail.com <javascript:>>
> wrote:
>
>> I am ok with Number auto
>>
>> And I hope it will be upgraded to Number T as it *dramatically* improves
>> declarations as one sees a type like he always did, granted not a concrete
>> one
>>
>> [](All Args&&... args) { f(std::forward<Args>(args)...); }
>>
>> *I will take that before ANY other form!*
>>
> It has been mentioned somewhere that we can and probably should pursue a
> syntax to imbue auto with the ability to introduce a name for the type
> deduced (or a name for the invented template parameter in deduction
> contexts). So, the upgrade is not limited to Concept auto (and can be
> pursued separately).
>
The way I see it, if we declare a blanket rule that a concept always
introduces a typename (orthogonal to "class always introduces a type"),
that tool is very powerful and actually makes auto *inferior*:
func(Any Arg&& a)
reads *better* then,
func(auto&& a)
*even if* we don't use the type!
One might argue in template header it will be confusing, but that is
speculation, because in practice the name of the variable should be
lowercase and/or will have clearly non-typy name
template<Number Num N>
template<RandomNumberGenerator RNG rng>
also
template<Any Val val>
is *better* then
template<auto val>
(and we have the type as a bonus)
A great benefit is the fact one is *explicit* he takes ANYTHINIG which
*might* not be good idea and one might reconsider and go and constrain the
types.
--
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.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/eeae7fd0-92f0-488d-9a5f-face9091b562%40isocpp.org.
------=_Part_130597_2018154884.1531498033532
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><br><br>On Friday, July 13, 2018 at 5:45:45 PM UTC+3, Hube=
rt Tong wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-l=
eft: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr"=
><div><div class=3D"gmail_quote">On Fri, Jul 13, 2018 at 3:45 AM, <span di=
r=3D"ltr"><<a onmousedown=3D"this.href=3D'javascript:';return tr=
ue;" onclick=3D"this.href=3D'javascript:';return true;" href=3D"jav=
ascript:" target=3D"_blank" rel=3D"nofollow" gdf-obfuscated-mailto=3D"mo9Ht=
3ZYCQAJ">mihailn...@gmail.com</a>></span> wrote:<br><blockquote class=3D=
"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding=
-left:1ex"><div dir=3D"ltr"><div><div><div style=3D"background-color:transp=
arent;border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bot=
tom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;border=
-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;bo=
rder-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;b=
order-top-width:0px;color:rgb(34,34,34);font-size:13px;font-style:normal;fo=
nt-variant:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;m=
argin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-l=
eft:0px;padding-right:0px;padding-top:0px;text-align:left;text-decoration:n=
one;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px=
"><span style=3D"background-color:transparent;border-bottom-color:rgb(34,34=
,34);border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb=
(34,34,34);border-left-style:none;border-left-width:0px;border-right-color:=
rgb(34,34,34);border-right-style:none;border-right-width:0px;border-top-col=
or:rgb(34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34=
,34);display:inline;float:none;font-size:13px;font-style:normal;font-varian=
t:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-lef=
t:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;p=
adding-right:0px;padding-top:0px;text-align:left;text-decoration:none;text-=
indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><font f=
ace=3D"arial,sans-serif" style=3D"border-bottom-color:rgb(34,34,34);border-=
bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);b=
order-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34=
);border-right-style:none;border-right-width:0px;border-top-color:rgb(34,34=
,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-le=
ft:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;=
padding-right:0px;padding-top:0px">I am ok with </font><font face=3D"courie=
r new,monospace" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-s=
tyle:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-le=
ft-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border=
-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bor=
der-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;m=
argin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-=
right:0px;padding-top:0px">Number auto</font></span></div><div style=3D"bac=
kground-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-s=
tyle:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-le=
ft-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border=
-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bor=
der-top-style:none;border-top-width:0px;color:rgb(34,34,34);font-size:13px;=
font-style:normal;font-variant:normal;font-weight:400;letter-spacing:normal=
;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-=
bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-align:le=
ft;text-decoration:none;text-indent:0px;text-transform:none;white-space:nor=
mal;word-spacing:0px"><span style=3D"background-color:transparent;border-bo=
ttom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;b=
order-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px=
;border-right-color:rgb(34,34,34);border-right-style:none;border-right-widt=
h:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width=
:0px;color:rgb(34,34,34);display:inline;float:none;font-size:13px;font-styl=
e:normal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-b=
ottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0p=
x;padding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-d=
ecoration:none;text-indent:0px;text-transform:none;white-space:normal;word-=
spacing:0px"><font face=3D"arial,sans-serif" style=3D"border-bottom-color:r=
gb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-c=
olor:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-righ=
t-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;border=
-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-=
bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0=
px;padding-left:0px;padding-right:0px;padding-top:0px"><font face=3D"courie=
r new,monospace"></font><br></font></span></div><div style=3D"background-co=
lor:transparent;border-bottom-color:rgb(34,34,34);border-bottom-style:none;=
border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:n=
one;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-sty=
le:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-st=
yle:none;border-top-width:0px;color:rgb(34,34,34);font-size:13px;font-style=
:normal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-bo=
ttom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px=
;padding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-de=
coration:none;text-indent:0px;text-transform:none;white-space:normal;word-s=
pacing:0px"><span style=3D"background-color:transparent;border-bottom-color=
:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-left=
-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-ri=
ght-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;bord=
er-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;color=
:rgb(34,34,34);display:inline;float:none;font-size:13px;font-style:normal;f=
ont-variant:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;=
margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-=
left:0px;padding-right:0px;padding-top:0px;text-align:left;text-decoration:=
none;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0p=
x"><font face=3D"arial,sans-serif" style=3D"border-bottom-color:rgb(34,34,3=
4);border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(3=
4,34,34);border-left-style:none;border-left-width:0px;border-right-color:rg=
b(34,34,34);border-right-style:none;border-right-width:0px;border-top-color=
:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px=
;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding=
-left:0px;padding-right:0px;padding-top:0px">And I hope it will be upgraded=
to <font face=3D"courier new,monospace">Number T </font>as it <i>dramatica=
lly</i> improves declarations as one sees a type like he always did, grante=
d not a concrete one</font></span></div><div style=3D"background-color:tran=
sparent;border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-b=
ottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;bord=
er-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;=
border-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none=
;border-top-width:0px;color:rgb(34,34,34);font-size:13px;font-style:normal;=
font-variant:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px=
;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding=
-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-decoration=
:none;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0=
px"></div><div style=3D"background-color:transparent;border-bottom-color:rg=
b(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-co=
lor:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-right=
-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;border-=
top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;color:rg=
b(34,34,34);font-size:13px;font-style:normal;font-variant:normal;font-weigh=
t:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:=
0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;pa=
dding-top:0px;text-align:left;text-decoration:none;text-indent:0px;text-tra=
nsform:none;white-space:normal;word-spacing:0px"><span style=3D"background-=
color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-style:non=
e;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style=
:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-s=
tyle:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-=
style:none;border-top-width:0px;color:rgb(34,34,34);display:inline;float:no=
ne;font-size:13px;font-style:normal;font-variant:normal;font-weight:400;let=
ter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margi=
n-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top=
:0px;text-align:left;text-decoration:none;text-indent:0px;text-transform:no=
ne;white-space:normal;word-spacing:0px"><font face=3D"arial,sans-serif" sty=
le=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bot=
tom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;border=
-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;bo=
rder-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;b=
order-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;marg=
in-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-to=
p:0px"><br></font></span></div><div style=3D"background-color:transparent;b=
order-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-wid=
th:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-w=
idth:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-ri=
ght-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-t=
op-width:0px;color:rgb(34,34,34);font-size:13px;font-style:normal;font-vari=
ant:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-l=
eft:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px=
;padding-right:0px;padding-top:0px;text-align:left;text-decoration:none;tex=
t-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span=
style=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);bo=
rder-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,=
34);border-left-style:none;border-left-width:0px;border-right-color:rgb(34,=
34,34);border-right-style:none;border-right-width:0px;border-top-color:rgb(=
34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);di=
splay:inline;float:none;font-size:13px;font-style:normal;font-variant:norma=
l;font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;m=
argin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-=
right:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:=
0px;text-transform:none;white-space:normal;word-spacing:0px"><font face=3D"=
courier new,monospace" style=3D"border-bottom-color:rgb(34,34,34);border-bo=
ttom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);bor=
der-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);=
border-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,3=
4);border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left=
:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;pa=
dding-right:0px;padding-top:0px">[](All Args&&... args) { f(std::fo=
rward<Args>(args)...)<wbr>; }</font></span></div><div style=3D"backgr=
ound-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-styl=
e:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-=
style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-ri=
ght-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);border=
-top-style:none;border-top-width:0px;color:rgb(34,34,34);font-size:13px;fon=
t-style:normal;font-variant:normal;font-weight:400;letter-spacing:normal;ma=
rgin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bot=
tom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-align:left;=
text-decoration:none;text-indent:0px;text-transform:none;white-space:normal=
;word-spacing:0px"><span style=3D"background-color:transparent;border-botto=
m-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;bord=
er-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;bo=
rder-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0=
px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0p=
x;color:rgb(34,34,34);display:inline;float:none;font-size:13px;font-style:n=
ormal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-bott=
om:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;p=
adding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-deco=
ration:none;text-indent:0px;text-transform:none;white-space:normal;word-spa=
cing:0px"><font face=3D"courier new,monospace" style=3D"border-bottom-color=
:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-left=
-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-ri=
ght-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;bord=
er-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;margi=
n-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom=
:0px;padding-left:0px;padding-right:0px;padding-top:0px"><br></font></span>=
</div><div style=3D"margin:0px;padding:0px;border:0px rgb(34,34,34);text-al=
ign:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spa=
cing:normal;font-size:13px;font-variant:normal;font-weight:400;text-decorat=
ion:none;word-spacing:0px;white-space:normal;background-color:transparent">=
<span style=3D"margin:0px;padding:0px;border:0px rgb(34,34,34);text-align:l=
eft;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:=
normal;font-size:13px;font-variant:normal;font-weight:400;text-decoration:n=
one;word-spacing:0px;display:inline;white-space:normal;float:none;backgroun=
d-color:transparent"><font face=3D"arial,sans-serif" style=3D"border-bottom=
-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;borde=
r-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;bor=
der-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0p=
x;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px=
;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-=
bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px"><i>I will ta=
ke that before <b>ANY</b> other form!</i></font></span></div></div></div></=
div></blockquote><div>It has been mentioned somewhere that we can and proba=
bly should pursue a syntax to imbue <span style=3D"font-family:monospace,mo=
nospace">auto</span> with the ability to introduce a name for the type dedu=
ced (or a name for the invented template parameter in deduction contexts). =
So, the upgrade is not limited to <span style=3D"font-family:monospace,mono=
space">Concept auto</span> (and can be pursued separately).<br></div></div>=
</div></div></blockquote><div><br></div><div><br></div><div><div style=3D"b=
ackground-color: transparent; border-bottom-color: rgb(34, 34, 34); border-=
bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; borde=
r-image-repeat: stretch; border-image-slice: 100%; border-image-source: non=
e; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-s=
tyle: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); bo=
rder-right-style: none; border-right-width: 0px; border-top-color: rgb(34, =
34, 34); border-top-style: none; border-top-width: 0px; color: rgb(34, 34, =
34); font-family: &quot;Arial&quot;,&quot;Helvetica&quot;,s=
ans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-=
weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; =
margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; paddin=
g-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-d=
ecoration: none; text-indent: 0px; text-transform: none; -webkit-text-strok=
e-width: 0px; white-space: normal; word-spacing: 0px;">The way I see it, if=
we declare a blanket rule that a concept always introduces a typename (ort=
hogonal to "<font face=3D"courier new,monospace" style=3D"border-botto=
m-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0=
px; border-image-outset: 0; border-image-repeat: stretch; border-image-slic=
e: 100%; border-image-source: none; border-image-width: 1; border-left-colo=
r: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; border=
-right-color: rgb(34, 34, 34); border-right-style: none; border-right-width=
: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; border-to=
p-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; marg=
in-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; pa=
dding-top: 0px;">class</font> always introduces a type"),</div><div st=
yle=3D"background-color: transparent; border-bottom-color: rgb(34, 34, 34);=
border-bottom-style: none; border-bottom-width: 0px; border-image-outset: =
0; border-image-repeat: stretch; border-image-slice: 100%; border-image-sou=
rce: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); borde=
r-left-style: none; border-left-width: 0px; border-right-color: rgb(34, 34,=
34); border-right-style: none; border-right-width: 0px; border-top-color: =
rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; color: rgb(=
34, 34, 34); font-family: &quot;Arial&quot;,&quot;Helvetica&=
;quot;,sans-serif; font-size: 13px; font-style: normal; font-variant: norma=
l; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-lef=
t: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px=
; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left=
; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-te=
xt-stroke-width: 0px; white-space: normal; word-spacing: 0px;">that tool is=
very powerful and actually makes auto <i>inferior</i>:</div><div style=3D"=
background-color: transparent; border-bottom-color: rgb(34, 34, 34); border=
-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; bord=
er-image-repeat: stretch; border-image-slice: 100%; border-image-source: no=
ne; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-=
style: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); b=
order-right-style: none; border-right-width: 0px; border-top-color: rgb(34,=
34, 34); border-top-style: none; border-top-width: 0px; color: rgb(34, 34,=
34); font-family: &quot;Arial&quot;,&quot;Helvetica&quot;,=
sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font=
-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px;=
margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; paddi=
ng-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-=
decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stro=
ke-width: 0px; white-space: normal; word-spacing: 0px;"><br style=3D"backgr=
ound-attachment: scroll; background-clip: border-box; background-color: tra=
nsparent; background-image: none; background-origin: padding-box; backgroun=
d-position-x: 0%; background-position-y: 0%; background-repeat: repeat; bac=
kground-size: auto; border-bottom-color: rgb(34, 34, 34); border-bottom-sty=
le: none; border-bottom-width: 0px; border-image-outset: 0; border-image-re=
peat: stretch; border-image-slice: 100%; border-image-source: none; border-=
image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none=
; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right=
-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); b=
order-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); font-=
family: &quot;Arial&quot;,&quot;Helvetica&quot;,sans-serif;=
font-size: 13px; height: auto; margin-bottom: 0px; margin-left: 0px; margi=
n-right: 0px; margin-top: 0px; min-width: 0px; overflow: visible; overflow-=
x: visible; overflow-y: visible; padding-bottom: 0px; padding-left: 0px; pa=
dding-right: 0px; padding-top: 0px;"></div><div style=3D"background-color: =
transparent; border-bottom-color: rgb(34, 34, 34); border-bottom-style: non=
e; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat: s=
tretch; border-image-slice: 100%; border-image-source: none; border-image-w=
idth: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; borde=
r-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style:=
none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-t=
op-style: none; border-top-width: 0px; color: rgb(34, 34, 34); font-family:=
&quot;Arial&quot;,&quot;Helvetica&quot;,sans-serif; font-s=
ize: 13px; font-style: normal; font-variant: normal; font-weight: 400; lett=
er-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px=
; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padd=
ing-right: 0px; padding-top: 0px; text-align: left; text-decoration: none; =
text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; whi=
te-space: normal; word-spacing: 0px;"><font face=3D"courier new,monospace" =
style=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; b=
order-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stret=
ch; border-image-slice: 100%; border-image-source: none; border-image-width=
: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; border-le=
ft-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: non=
e; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-s=
tyle: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; ma=
rgin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; p=
adding-right: 0px; padding-top: 0px;">func(Any Arg&& a)</font></div=
><div style=3D"background-color: transparent; border-bottom-color: rgb(34, =
34, 34); border-bottom-style: none; border-bottom-width: 0px; border-image-=
outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-i=
mage-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34=
); border-left-style: none; border-left-width: 0px; border-right-color: rgb=
(34, 34, 34); border-right-style: none; border-right-width: 0px; border-top=
-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; col=
or: rgb(34, 34, 34); font-family: &quot;Arial&quot;,&quot;Helve=
tica&quot;,sans-serif; font-size: 13px; font-style: normal; font-varian=
t: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; ma=
rgin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bot=
tom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-ali=
gn: left; text-decoration: none; text-indent: 0px; text-transform: none; -w=
ebkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><fon=
t face=3D"courier new,monospace" style=3D"border-bottom-color: rgb(34, 34, =
34); border-bottom-style: none; border-bottom-width: 0px; border-image-outs=
et: 0; border-image-repeat: stretch; border-image-slice: 100%; border-image=
-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); b=
order-left-style: none; border-left-width: 0px; border-right-color: rgb(34,=
34, 34); border-right-style: none; border-right-width: 0px; border-top-col=
or: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; margin-=
bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-=
bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><br =
style=3D"background-attachment: scroll; background-clip: border-box; backgr=
ound-color: transparent; background-image: none; background-origin: padding=
-box; background-position-x: 0%; background-position-y: 0%; background-repe=
at: repeat; background-size: auto; border-bottom-color: rgb(34, 34, 34); bo=
rder-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; =
border-image-repeat: stretch; border-image-slice: 100%; border-image-source=
: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-l=
eft-style: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34=
); border-right-style: none; border-right-width: 0px; border-top-color: rgb=
(34, 34, 34); border-top-style: none; border-top-width: 0px; color: rgb(34,=
34, 34); font-family: courier new,monospace; font-size: 13px; height: auto=
; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;=
min-width: 0px; overflow: visible; overflow-x: visible; overflow-y: visibl=
e; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top:=
0px;"></font></div><div style=3D"background-color: transparent; border-bot=
tom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width:=
0px; border-image-outset: 0; border-image-repeat: stretch; border-image-sl=
ice: 100%; border-image-source: none; border-image-width: 1; border-left-co=
lor: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; bord=
er-right-color: rgb(34, 34, 34); border-right-style: none; border-right-wid=
th: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; border-=
top-width: 0px; color: rgb(34, 34, 34); font-family: &quot;Arial&qu=
ot;,&quot;Helvetica&quot;,sans-serif; font-size: 13px; font-style: =
normal; font-variant: normal; font-weight: 400; letter-spacing: normal; mar=
gin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orph=
ans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding=
-top: 0px; text-align: left; text-decoration: none; text-indent: 0px; text-=
transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-=
spacing: 0px;"><font face=3D"arial,sans-serif" style=3D"border-bottom-color=
: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; bor=
der-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%=
; border-image-source: none; border-image-width: 1; border-left-color: rgb(=
34, 34, 34); border-left-style: none; border-left-width: 0px; border-right-=
color: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; =
border-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width=
: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top:=
0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-t=
op: 0px;">reads <i>better</i> then,=C2=A0</font></div><div style=3D"backgro=
und-color: transparent; border-bottom-color: rgb(34, 34, 34); border-bottom=
-style: none; border-bottom-width: 0px; border-image-outset: 0; border-imag=
e-repeat: stretch; border-image-slice: 100%; border-image-source: none; bor=
der-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: =
none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-r=
ight-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34=
); border-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); f=
ont-family: &quot;Arial&quot;,&quot;Helvetica&quot;,sans-se=
rif; font-size: 13px; font-style: normal; font-variant: normal; font-weight=
: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin=
-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left=
: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-decorat=
ion: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-widt=
h: 0px; white-space: normal; word-spacing: 0px;"><font face=3D"arial,sans-s=
erif" style=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style: n=
one; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat:=
stretch; border-image-slice: 100%; border-image-source: none; border-image=
-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; bor=
der-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-styl=
e: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border=
-top-style: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0=
px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: =
0px; padding-right: 0px; padding-top: 0px;"><i style=3D"background-attachme=
nt: scroll; background-clip: border-box; background-color: transparent; bac=
kground-image: none; background-origin: padding-box; background-position-x:=
0%; background-position-y: 0%; background-repeat: repeat; background-size:=
auto; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; bor=
der-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch=
; border-image-slice: 100%; border-image-source: none; border-image-width: =
1; border-left-color: rgb(34, 34, 34); border-left-style: none; border-left=
-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none;=
border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-sty=
le: none; border-top-width: 0px; color: rgb(34, 34, 34); font-family: arial=
,sans-serif; font-size: 13px; height: auto; margin-bottom: 0px; margin-left=
: 0px; margin-right: 0px; margin-top: 0px; min-width: 0px; overflow: visibl=
e; overflow-x: visible; overflow-y: visible; padding-bottom: 0px; padding-l=
eft: 0px; padding-right: 0px; padding-top: 0px;"></i><i style=3D"background=
-attachment: scroll; background-clip: border-box; background-color: transpa=
rent; background-image: none; background-origin: padding-box; background-po=
sition-x: 0%; background-position-y: 0%; background-repeat: repeat; backgro=
und-size: auto; border-bottom-color: rgb(34, 34, 34); border-bottom-style: =
none; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat=
: stretch; border-image-slice: 100%; border-image-source: none; border-imag=
e-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; bo=
rder-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-sty=
le: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); borde=
r-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); font-fami=
ly: arial,sans-serif; font-size: 13px; height: auto; margin-bottom: 0px; ma=
rgin-left: 0px; margin-right: 0px; margin-top: 0px; min-width: 0px; overflo=
w: visible; overflow-x: visible; overflow-y: visible; padding-bottom: 0px; =
padding-left: 0px; padding-right: 0px; padding-top: 0px;"></i><br style=3D"=
background-attachment: scroll; background-clip: border-box; background-colo=
r: transparent; background-image: none; background-origin: padding-box; bac=
kground-position-x: 0%; background-position-y: 0%; background-repeat: repea=
t; background-size: auto; border-bottom-color: rgb(34, 34, 34); border-bott=
om-style: none; border-bottom-width: 0px; border-image-outset: 0; border-im=
age-repeat: stretch; border-image-slice: 100%; border-image-source: none; b=
order-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style=
: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border=
-right-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, =
34); border-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34);=
font-family: arial,sans-serif; font-size: 13px; height: auto; margin-botto=
m: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-width: 0p=
x; overflow: visible; overflow-x: visible; overflow-y: visible; padding-bot=
tom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></font>=
</div><div style=3D"background-color: transparent; border-bottom-color: rgb=
(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; border-i=
mage-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; bor=
der-image-source: none; border-image-width: 1; border-left-color: rgb(34, 3=
4, 34); border-left-style: none; border-left-width: 0px; border-right-color=
: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; borde=
r-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px=
; color: rgb(34, 34, 34); font-family: &quot;Arial&quot;,&quot;=
Helvetica&quot;,sans-serif; font-size: 13px; font-style: normal; font-v=
ariant: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0p=
x; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; paddin=
g-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; tex=
t-align: left; text-decoration: none; text-indent: 0px; text-transform: non=
e; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"=
><font face=3D"arial,sans-serif" style=3D"border-bottom-color: rgb(34, 34, =
34); border-bottom-style: none; border-bottom-width: 0px; border-image-outs=
et: 0; border-image-repeat: stretch; border-image-slice: 100%; border-image=
-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); b=
order-left-style: none; border-left-width: 0px; border-right-color: rgb(34,=
34, 34); border-right-style: none; border-right-width: 0px; border-top-col=
or: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; margin-=
bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-=
bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><spa=
n style=3D"background-color: transparent; border-bottom-color: rgb(34, 34, =
34); border-bottom-style: none; border-bottom-width: 0px; border-image-outs=
et: 0; border-image-repeat: stretch; border-image-slice: 100%; border-image=
-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); b=
order-left-style: none; border-left-width: 0px; border-right-color: rgb(34,=
34, 34); border-right-style: none; border-right-width: 0px; border-top-col=
or: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; color: =
rgb(34, 34, 34); display: inline; float: none; font-family: courier new,mon=
ospace; font-size: 13px; font-style: normal; font-variant: normal; font-wei=
ght: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; mar=
gin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-l=
eft: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-deco=
ration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-w=
idth: 0px; white-space: normal; word-spacing: 0px;">func(auto&& a)<=
/span><b style=3D"background-attachment: scroll; background-clip: border-bo=
x; background-color: transparent; background-image: none; background-origin=
: padding-box; background-position-x: 0%; background-position-y: 0%; backgr=
ound-repeat: repeat; background-size: auto; border-bottom-color: rgb(34, 34=
, 34); border-bottom-style: none; border-bottom-width: 0px; border-image-ou=
tset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-ima=
ge-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34);=
border-left-style: none; border-left-width: 0px; border-right-color: rgb(3=
4, 34, 34); border-right-style: none; border-right-width: 0px; border-top-c=
olor: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; color=
: rgb(34, 34, 34); font-family: arial,sans-serif; font-size: 13px; height: =
auto; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: =
0px; min-width: 0px; overflow: visible; overflow-x: visible; overflow-y: vi=
sible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-=
top: 0px;"></b><i style=3D"background-attachment: scroll; background-clip: =
border-box; background-color: transparent; background-image: none; backgrou=
nd-origin: padding-box; background-position-x: 0%; background-position-y: 0=
%; background-repeat: repeat; background-size: auto; border-bottom-color: r=
gb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; border=
-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; b=
order-image-source: none; border-image-width: 1; border-left-color: rgb(34,=
34, 34); border-left-style: none; border-left-width: 0px; border-right-col=
or: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; bor=
der-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0=
px; color: rgb(34, 34, 34); font-family: arial,sans-serif; font-size: 13px;=
height: auto; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; mar=
gin-top: 0px; min-width: 0px; overflow: visible; overflow-x: visible; overf=
low-y: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px;=
padding-top: 0px;"></i><u style=3D"background-attachment: scroll; backgrou=
nd-clip: border-box; background-color: transparent; background-image: none;=
background-origin: padding-box; background-position-x: 0%; background-posi=
tion-y: 0%; background-repeat: repeat; background-size: auto; border-bottom=
-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0p=
x; border-image-outset: 0; border-image-repeat: stretch; border-image-slice=
: 100%; border-image-source: none; border-image-width: 1; border-left-color=
: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; border-=
right-color: rgb(34, 34, 34); border-right-style: none; border-right-width:=
0px; border-top-color: rgb(34, 34, 34); border-top-style: none; border-top=
-width: 0px; color: rgb(34, 34, 34); font-family: arial,sans-serif; font-si=
ze: 13px; height: auto; margin-bottom: 0px; margin-left: 0px; margin-right:=
0px; margin-top: 0px; min-width: 0px; overflow: visible; overflow-x: visib=
le; overflow-y: visible; padding-bottom: 0px; padding-left: 0px; padding-ri=
ght: 0px; padding-top: 0px;"></u><sub style=3D"border-bottom-color: rgb(34,=
34, 34); border-bottom-style: none; border-bottom-width: 0px; border-image=
-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-=
image-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 3=
4); border-left-style: none; border-left-width: 0px; border-right-color: rg=
b(34, 34, 34); border-right-style: none; border-right-width: 0px; border-to=
p-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; ma=
rgin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; pad=
ding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"=
></sub><sup style=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-st=
yle: none; border-bottom-width: 0px; border-image-outset: 0; border-image-r=
epeat: stretch; border-image-slice: 100%; border-image-source: none; border=
-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: non=
e; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-righ=
t-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); =
border-top-style: none; border-top-width: 0px; margin-bottom: 0px; margin-l=
eft: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-=
left: 0px; padding-right: 0px; padding-top: 0px;"></sup><strike style=3D"bo=
rder-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-botto=
m-width: 0px; border-image-outset: 0; border-image-repeat: stretch; border-=
image-slice: 100%; border-image-source: none; border-image-width: 1; border=
-left-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0=
px; border-right-color: rgb(34, 34, 34); border-right-style: none; border-r=
ight-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none;=
border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right:=
0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-righ=
t: 0px; padding-top: 0px;"></strike><br style=3D"background-attachment: scr=
oll; background-clip: border-box; background-color: transparent; background=
-image: none; background-origin: padding-box; background-position-x: 0%; ba=
ckground-position-y: 0%; background-repeat: repeat; background-size: auto; =
border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bot=
tom-width: 0px; border-image-outset: 0; border-image-repeat: stretch; borde=
r-image-slice: 100%; border-image-source: none; border-image-width: 1; bord=
er-left-color: rgb(34, 34, 34); border-left-style: none; border-left-width:=
0px; border-right-color: rgb(34, 34, 34); border-right-style: none; border=
-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: non=
e; border-top-width: 0px; color: rgb(34, 34, 34); font-family: arial,sans-s=
erif; font-size: 13px; height: auto; margin-bottom: 0px; margin-left: 0px; =
margin-right: 0px; margin-top: 0px; min-width: 0px; overflow: visible; over=
flow-x: visible; overflow-y: visible; padding-bottom: 0px; padding-left: 0p=
x; padding-right: 0px; padding-top: 0px;"></font></div><div style=3D"backgr=
ound-color: transparent; border-bottom-color: rgb(34, 34, 34); border-botto=
m-style: none; border-bottom-width: 0px; border-image-outset: 0; border-ima=
ge-repeat: stretch; border-image-slice: 100%; border-image-source: none; bo=
rder-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style:=
none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-=
right-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, 3=
4); border-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); =
font-family: &quot;Arial&quot;,&quot;Helvetica&quot;,sans-s=
erif; font-size: 13px; font-style: normal; font-variant: normal; font-weigh=
t: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margi=
n-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-lef=
t: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-decora=
tion: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-wid=
th: 0px; white-space: normal; word-spacing: 0px;"><font face=3D"arial,sans-=
serif" style=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style: =
none; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat=
: stretch; border-image-slice: 100%; border-image-source: none; border-imag=
e-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; bo=
rder-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-sty=
le: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); borde=
r-top-style: none; border-top-width: 0px; margin-bottom: 0px; margin-left: =
0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left:=
0px; padding-right: 0px; padding-top: 0px;"><b style=3D"background-attachm=
ent: scroll; background-clip: border-box; background-color: transparent; ba=
ckground-image: none; background-origin: padding-box; background-position-x=
: 0%; background-position-y: 0%; background-repeat: repeat; background-size=
: auto; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; bo=
rder-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretc=
h; border-image-slice: 100%; border-image-source: none; border-image-width:=
1; border-left-color: rgb(34, 34, 34); border-left-style: none; border-lef=
t-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none=
; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-st=
yle: none; border-top-width: 0px; color: rgb(34, 34, 34); font-family: aria=
l,sans-serif; font-size: 13px; height: auto; margin-bottom: 0px; margin-lef=
t: 0px; margin-right: 0px; margin-top: 0px; min-width: 0px; overflow: visib=
le; overflow-x: visible; overflow-y: visible; padding-bottom: 0px; padding-=
left: 0px; padding-right: 0px; padding-top: 0px;"></b><i style=3D"backgroun=
d-attachment: scroll; background-clip: border-box; background-color: transp=
arent; background-image: none; background-origin: padding-box; background-p=
osition-x: 0%; background-position-y: 0%; background-repeat: repeat; backgr=
ound-size: auto; border-bottom-color: rgb(34, 34, 34); border-bottom-style:=
none; border-bottom-width: 0px; border-image-outset: 0; border-image-repea=
t: stretch; border-image-slice: 100%; border-image-source: none; border-ima=
ge-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; b=
order-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-st=
yle: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); bord=
er-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); font-fam=
ily: arial,sans-serif; font-size: 13px; height: auto; margin-bottom: 0px; m=
argin-left: 0px; margin-right: 0px; margin-top: 0px; min-width: 0px; overfl=
ow: visible; overflow-x: visible; overflow-y: visible; padding-bottom: 0px;=
padding-left: 0px; padding-right: 0px; padding-top: 0px;"></i><u style=3D"=
background-attachment: scroll; background-clip: border-box; background-colo=
r: transparent; background-image: none; background-origin: padding-box; bac=
kground-position-x: 0%; background-position-y: 0%; background-repeat: repea=
t; background-size: auto; border-bottom-color: rgb(34, 34, 34); border-bott=
om-style: none; border-bottom-width: 0px; border-image-outset: 0; border-im=
age-repeat: stretch; border-image-slice: 100%; border-image-source: none; b=
order-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style=
: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border=
-right-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, =
34); border-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34);=
font-family: arial,sans-serif; font-size: 13px; height: auto; margin-botto=
m: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-width: 0p=
x; overflow: visible; overflow-x: visible; overflow-y: visible; padding-bot=
tom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></u><su=
b style=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style: none;=
border-bottom-width: 0px; border-image-outset: 0; border-image-repeat: str=
etch; border-image-slice: 100%; border-image-source: none; border-image-wid=
th: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; border-=
left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: n=
one; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top=
-style: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; =
margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px;=
padding-right: 0px; padding-top: 0px;"></sub><sup style=3D"border-bottom-c=
olor: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px;=
border-image-outset: 0; border-image-repeat: stretch; border-image-slice: =
100%; border-image-source: none; border-image-width: 1; border-left-color: =
rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; border-ri=
ght-color: rgb(34, 34, 34); border-right-style: none; border-right-width: 0=
px; border-top-color: rgb(34, 34, 34); border-top-style: none; border-top-w=
idth: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-=
top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; paddi=
ng-top: 0px;"></sup><strike style=3D"border-bottom-color: rgb(34, 34, 34); =
border-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0=
; border-image-repeat: stretch; border-image-slice: 100%; border-image-sour=
ce: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); border=
-left-style: none; border-left-width: 0px; border-right-color: rgb(34, 34, =
34); border-right-style: none; border-right-width: 0px; border-top-color: r=
gb(34, 34, 34); border-top-style: none; border-top-width: 0px; margin-botto=
m: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-botto=
m: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></strike>=
<br style=3D"background-attachment: scroll; background-clip: border-box; ba=
ckground-color: transparent; background-image: none; background-origin: pad=
ding-box; background-position-x: 0%; background-position-y: 0%; background-=
repeat: repeat; background-size: auto; border-bottom-color: rgb(34, 34, 34)=
; border-bottom-style: none; border-bottom-width: 0px; border-image-outset:=
0; border-image-repeat: stretch; border-image-slice: 100%; border-image-so=
urce: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); bord=
er-left-style: none; border-left-width: 0px; border-right-color: rgb(34, 34=
, 34); border-right-style: none; border-right-width: 0px; border-top-color:=
rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; color: rgb=
(34, 34, 34); font-family: arial,sans-serif; font-size: 13px; height: auto;=
margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; =
min-width: 0px; overflow: visible; overflow-x: visible; overflow-y: visible=
; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: =
0px;"></font></div><div style=3D"background-color: transparent; border-bott=
om-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: =
0px; border-image-outset: 0; border-image-repeat: stretch; border-image-sli=
ce: 100%; border-image-source: none; border-image-width: 1; border-left-col=
or: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; borde=
r-right-color: rgb(34, 34, 34); border-right-style: none; border-right-widt=
h: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; border-t=
op-width: 0px; color: rgb(34, 34, 34); font-family: &quot;Arial&quo=
t;,&quot;Helvetica&quot;,sans-serif; font-size: 13px; font-style: n=
ormal; font-variant: normal; font-weight: 400; letter-spacing: normal; marg=
in-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orpha=
ns: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-=
top: 0px; text-align: left; text-decoration: none; text-indent: 0px; text-t=
ransform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-s=
pacing: 0px;"><font face=3D"arial,sans-serif" style=3D"border-bottom-color:=
rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; bord=
er-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%;=
border-image-source: none; border-image-width: 1; border-left-color: rgb(3=
4, 34, 34); border-left-style: none; border-left-width: 0px; border-right-c=
olor: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; b=
order-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width:=
0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: =
0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-to=
p: 0px;"><i style=3D"background-attachment: scroll; background-clip: border=
-box; background-color: transparent; background-image: none; background-ori=
gin: padding-box; background-position-x: 0%; background-position-y: 0%; bac=
kground-repeat: repeat; background-size: auto; border-bottom-color: rgb(34,=
34, 34); border-bottom-style: none; border-bottom-width: 0px; border-image=
-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-=
image-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 3=
4); border-left-style: none; border-left-width: 0px; border-right-color: rg=
b(34, 34, 34); border-right-style: none; border-right-width: 0px; border-to=
p-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; co=
lor: rgb(34, 34, 34); font-family: arial,sans-serif; font-size: 13px; heigh=
t: auto; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-to=
p: 0px; min-width: 0px; overflow: visible; overflow-x: visible; overflow-y:=
visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; paddi=
ng-top: 0px;">even if</i><span style=3D"background-color: transparent; bord=
er-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-=
width: 0px; border-image-outset: 0; border-image-repeat: stretch; border-im=
age-slice: 100%; border-image-source: none; border-image-width: 1; border-l=
eft-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px=
; border-right-color: rgb(34, 34, 34); border-right-style: none; border-rig=
ht-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; b=
order-top-width: 0px; color: rgb(34, 34, 34); display: inline; float: none;=
font-family: arial,sans-serif; font-size: 13px; font-style: normal; font-v=
ariant: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0p=
x; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; paddin=
g-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; tex=
t-align: left; text-decoration: none; text-indent: 0px; text-transform: non=
e; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"=
> we don't use the type!</span><b style=3D"background-attachment: scrol=
l; background-clip: border-box; background-color: transparent; background-i=
mage: none; background-origin: padding-box; background-position-x: 0%; back=
ground-position-y: 0%; background-repeat: repeat; background-size: auto; bo=
rder-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-botto=
m-width: 0px; border-image-outset: 0; border-image-repeat: stretch; border-=
image-slice: 100%; border-image-source: none; border-image-width: 1; border=
-left-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0=
px; border-right-color: rgb(34, 34, 34); border-right-style: none; border-r=
ight-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none;=
border-top-width: 0px; color: rgb(34, 34, 34); font-family: arial,sans-ser=
if; font-size: 13px; height: auto; margin-bottom: 0px; margin-left: 0px; ma=
rgin-right: 0px; margin-top: 0px; min-width: 0px; overflow: visible; overfl=
ow-x: visible; overflow-y: visible; padding-bottom: 0px; padding-left: 0px;=
padding-right: 0px; padding-top: 0px;"></b><i style=3D"background-attachme=
nt: scroll; background-clip: border-box; background-color: transparent; bac=
kground-image: none; background-origin: padding-box; background-position-x:=
0%; background-position-y: 0%; background-repeat: repeat; background-size:=
auto; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; bor=
der-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch=
; border-image-slice: 100%; border-image-source: none; border-image-width: =
1; border-left-color: rgb(34, 34, 34); border-left-style: none; border-left=
-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none;=
border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-sty=
le: none; border-top-width: 0px; color: rgb(34, 34, 34); font-family: arial=
,sans-serif; font-size: 13px; height: auto; margin-bottom: 0px; margin-left=
: 0px; margin-right: 0px; margin-top: 0px; min-width: 0px; overflow: visibl=
e; overflow-x: visible; overflow-y: visible; padding-bottom: 0px; padding-l=
eft: 0px; padding-right: 0px; padding-top: 0px;"></i><u style=3D"background=
-attachment: scroll; background-clip: border-box; background-color: transpa=
rent; background-image: none; background-origin: padding-box; background-po=
sition-x: 0%; background-position-y: 0%; background-repeat: repeat; backgro=
und-size: auto; border-bottom-color: rgb(34, 34, 34); border-bottom-style: =
none; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat=
: stretch; border-image-slice: 100%; border-image-source: none; border-imag=
e-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; bo=
rder-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-sty=
le: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); borde=
r-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); font-fami=
ly: arial,sans-serif; font-size: 13px; height: auto; margin-bottom: 0px; ma=
rgin-left: 0px; margin-right: 0px; margin-top: 0px; min-width: 0px; overflo=
w: visible; overflow-x: visible; overflow-y: visible; padding-bottom: 0px; =
padding-left: 0px; padding-right: 0px; padding-top: 0px;"></u><sub style=3D=
"border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bo=
ttom-width: 0px; border-image-outset: 0; border-image-repeat: stretch; bord=
er-image-slice: 100%; border-image-source: none; border-image-width: 1; bor=
der-left-color: rgb(34, 34, 34); border-left-style: none; border-left-width=
: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none; borde=
r-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: no=
ne; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-rig=
ht: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-r=
ight: 0px; padding-top: 0px;"></sub><sup style=3D"border-bottom-color: rgb(=
34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; border-im=
age-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; bord=
er-image-source: none; border-image-width: 1; border-left-color: rgb(34, 34=
, 34); border-left-style: none; border-left-width: 0px; border-right-color:=
rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; border=
-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px;=
margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; =
padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0p=
x;"></sup><strike style=3D"border-bottom-color: rgb(34, 34, 34); border-bot=
tom-style: none; border-bottom-width: 0px; border-image-outset: 0; border-i=
mage-repeat: stretch; border-image-slice: 100%; border-image-source: none; =
border-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-styl=
e: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); borde=
r-right-style: none; border-right-width: 0px; border-top-color: rgb(34, 34,=
34); border-top-style: none; border-top-width: 0px; margin-bottom: 0px; ma=
rgin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; pa=
dding-left: 0px; padding-right: 0px; padding-top: 0px;"></strike><br style=
=3D"background-attachment: scroll; background-clip: border-box; background-=
color: transparent; background-image: none; background-origin: padding-box;=
background-position-x: 0%; background-position-y: 0%; background-repeat: r=
epeat; background-size: auto; border-bottom-color: rgb(34, 34, 34); border-=
bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; borde=
r-image-repeat: stretch; border-image-slice: 100%; border-image-source: non=
e; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-s=
tyle: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); bo=
rder-right-style: none; border-right-width: 0px; border-top-color: rgb(34, =
34, 34); border-top-style: none; border-top-width: 0px; color: rgb(34, 34, =
34); font-family: arial,sans-serif; font-size: 13px; height: auto; margin-b=
ottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-width=
: 0px; overflow: visible; overflow-x: visible; overflow-y: visible; padding=
-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></f=
ont></div><div style=3D"background-color: transparent; border-bottom-color:=
rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; bord=
er-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%;=
border-image-source: none; border-image-width: 1; border-left-color: rgb(3=
4, 34, 34); border-left-style: none; border-left-width: 0px; border-right-c=
olor: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; b=
order-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width:=
0px; color: rgb(34, 34, 34); font-family: &quot;Arial&quot;,&q=
uot;Helvetica&quot;,sans-serif; font-size: 13px; font-style: normal; fo=
nt-variant: normal; font-weight: 400; letter-spacing: normal; margin-bottom=
: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; pa=
dding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;=
text-align: left; text-decoration: none; text-indent: 0px; text-transform:=
none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0=
px;"><font face=3D"courier new,monospace" style=3D"border-bottom-color: rgb=
(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; border-i=
mage-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; bor=
der-image-source: none; border-image-width: 1; border-left-color: rgb(34, 3=
4, 34); border-left-style: none; border-left-width: 0px; border-right-color=
: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; borde=
r-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px=
; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;=
padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0=
px;"><font face=3D"arial,sans-serif" style=3D"border-bottom-color: rgb(34, =
34, 34); border-bottom-style: none; border-bottom-width: 0px; border-image-=
outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-i=
mage-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34=
); border-left-style: none; border-left-width: 0px; border-right-color: rgb=
(34, 34, 34); border-right-style: none; border-right-width: 0px; border-top=
-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; mar=
gin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padd=
ing-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">=
</font><b style=3D"background-attachment: scroll; background-clip: border-b=
ox; background-color: transparent; background-image: none; background-origi=
n: padding-box; background-position-x: 0%; background-position-y: 0%; backg=
round-repeat: repeat; background-size: auto; border-bottom-color: rgb(34, 3=
4, 34); border-bottom-style: none; border-bottom-width: 0px; border-image-o=
utset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-im=
age-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34)=
; border-left-style: none; border-left-width: 0px; border-right-color: rgb(=
34, 34, 34); border-right-style: none; border-right-width: 0px; border-top-=
color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; colo=
r: rgb(34, 34, 34); font-family: courier new,monospace; font-size: 13px; he=
ight: auto; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin=
-top: 0px; min-width: 0px; overflow: visible; overflow-x: visible; overflow=
-y: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; pa=
dding-top: 0px;"></b><i style=3D"background-attachment: scroll; background-=
clip: border-box; background-color: transparent; background-image: none; ba=
ckground-origin: padding-box; background-position-x: 0%; background-positio=
n-y: 0%; background-repeat: repeat; background-size: auto; border-bottom-co=
lor: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; =
border-image-outset: 0; border-image-repeat: stretch; border-image-slice: 1=
00%; border-image-source: none; border-image-width: 1; border-left-color: r=
gb(34, 34, 34); border-left-style: none; border-left-width: 0px; border-rig=
ht-color: rgb(34, 34, 34); border-right-style: none; border-right-width: 0p=
x; border-top-color: rgb(34, 34, 34); border-top-style: none; border-top-wi=
dth: 0px; color: rgb(34, 34, 34); font-family: courier new,monospace; font-=
size: 13px; height: auto; margin-bottom: 0px; margin-left: 0px; margin-righ=
t: 0px; margin-top: 0px; min-width: 0px; overflow: visible; overflow-x: vis=
ible; overflow-y: visible; padding-bottom: 0px; padding-left: 0px; padding-=
right: 0px; padding-top: 0px;"></i><u style=3D"background-attachment: scrol=
l; background-clip: border-box; background-color: transparent; background-i=
mage: none; background-origin: padding-box; background-position-x: 0%; back=
ground-position-y: 0%; background-repeat: repeat; background-size: auto; bo=
rder-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-botto=
m-width: 0px; border-image-outset: 0; border-image-repeat: stretch; border-=
image-slice: 100%; border-image-source: none; border-image-width: 1; border=
-left-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0=
px; border-right-color: rgb(34, 34, 34); border-right-style: none; border-r=
ight-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none;=
border-top-width: 0px; color: rgb(34, 34, 34); font-family: courier new,mo=
nospace; font-size: 13px; height: auto; margin-bottom: 0px; margin-left: 0p=
x; margin-right: 0px; margin-top: 0px; min-width: 0px; overflow: visible; o=
verflow-x: visible; overflow-y: visible; padding-bottom: 0px; padding-left:=
0px; padding-right: 0px; padding-top: 0px;"></u><sub style=3D"border-botto=
m-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0=
px; border-image-outset: 0; border-image-repeat: stretch; border-image-slic=
e: 100%; border-image-source: none; border-image-width: 1; border-left-colo=
r: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; border=
-right-color: rgb(34, 34, 34); border-right-style: none; border-right-width=
: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; border-to=
p-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; marg=
in-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; pa=
dding-top: 0px;"></sub><sup style=3D"border-bottom-color: rgb(34, 34, 34); =
border-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0=
; border-image-repeat: stretch; border-image-slice: 100%; border-image-sour=
ce: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); border=
-left-style: none; border-left-width: 0px; border-right-color: rgb(34, 34, =
34); border-right-style: none; border-right-width: 0px; border-top-color: r=
gb(34, 34, 34); border-top-style: none; border-top-width: 0px; margin-botto=
m: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-botto=
m: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></sup><st=
rike style=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style: no=
ne; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat: =
stretch; border-image-slice: 100%; border-image-source: none; border-image-=
width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; bord=
er-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style=
: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-=
top-style: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0p=
x; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0=
px; padding-right: 0px; padding-top: 0px;"></strike><br style=3D"background=
-attachment: scroll; background-clip: border-box; background-color: transpa=
rent; background-image: none; background-origin: padding-box; background-po=
sition-x: 0%; background-position-y: 0%; background-repeat: repeat; backgro=
und-size: auto; border-bottom-color: rgb(34, 34, 34); border-bottom-style: =
none; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat=
: stretch; border-image-slice: 100%; border-image-source: none; border-imag=
e-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; bo=
rder-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-sty=
le: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); borde=
r-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); font-fami=
ly: courier new,monospace; font-size: 13px; height: auto; margin-bottom: 0p=
x; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-width: 0px; ov=
erflow: visible; overflow-x: visible; overflow-y: visible; padding-bottom: =
0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></font></div=
><div style=3D"background-color: transparent; border-bottom-color: rgb(34, =
34, 34); border-bottom-style: none; border-bottom-width: 0px; border-image-=
outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-i=
mage-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34=
); border-left-style: none; border-left-width: 0px; border-right-color: rgb=
(34, 34, 34); border-right-style: none; border-right-width: 0px; border-top=
-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; col=
or: rgb(34, 34, 34); font-family: &quot;Arial&quot;,&quot;Helve=
tica&quot;,sans-serif; font-size: 13px; font-style: normal; font-varian=
t: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; ma=
rgin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bot=
tom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-ali=
gn: left; text-decoration: none; text-indent: 0px; text-transform: none; -w=
ebkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><fon=
t face=3D"courier new,monospace" style=3D"border-bottom-color: rgb(34, 34, =
34); border-bottom-style: none; border-bottom-width: 0px; border-image-outs=
et: 0; border-image-repeat: stretch; border-image-slice: 100%; border-image=
-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); b=
order-left-style: none; border-left-width: 0px; border-right-color: rgb(34,=
34, 34); border-right-style: none; border-right-width: 0px; border-top-col=
or: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; margin-=
bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-=
bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><br =
style=3D"background-attachment: scroll; background-clip: border-box; backgr=
ound-color: transparent; background-image: none; background-origin: padding=
-box; background-position-x: 0%; background-position-y: 0%; background-repe=
at: repeat; background-size: auto; border-bottom-color: rgb(34, 34, 34); bo=
rder-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; =
border-image-repeat: stretch; border-image-slice: 100%; border-image-source=
: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-l=
eft-style: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34=
); border-right-style: none; border-right-width: 0px; border-top-color: rgb=
(34, 34, 34); border-top-style: none; border-top-width: 0px; color: rgb(34,=
34, 34); font-family: courier new,monospace; font-size: 13px; height: auto=
; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;=
min-width: 0px; overflow: visible; overflow-x: visible; overflow-y: visibl=
e; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top:=
0px;"></font></div><div style=3D"background-color: transparent; border-bot=
tom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width:=
0px; border-image-outset: 0; border-image-repeat: stretch; border-image-sl=
ice: 100%; border-image-source: none; border-image-width: 1; border-left-co=
lor: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; bord=
er-right-color: rgb(34, 34, 34); border-right-style: none; border-right-wid=
th: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; border-=
top-width: 0px; color: rgb(34, 34, 34); font-family: &quot;Arial&qu=
ot;,&quot;Helvetica&quot;,sans-serif; font-size: 13px; font-style: =
normal; font-variant: normal; font-weight: 400; letter-spacing: normal; mar=
gin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orph=
ans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding=
-top: 0px; text-align: left; text-decoration: none; text-indent: 0px; text-=
transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-=
spacing: 0px;"><font face=3D"arial,sans-serif" style=3D"border-bottom-color=
: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; bor=
der-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%=
; border-image-source: none; border-image-width: 1; border-left-color: rgb(=
34, 34, 34); border-left-style: none; border-left-width: 0px; border-right-=
color: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; =
border-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width=
: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top:=
0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-t=
op: 0px;">One might argue in template header it will be confusing, but that=
is speculation, because in practice the name of the variable should be low=
ercase and/or will have clearly non-typy name</font></div><div style=3D"bac=
kground-color: transparent; border-bottom-color: rgb(34, 34, 34); border-bo=
ttom-style: none; border-bottom-width: 0px; border-image-outset: 0; border-=
image-repeat: stretch; border-image-slice: 100%; border-image-source: none;=
border-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-sty=
le: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); bord=
er-right-style: none; border-right-width: 0px; border-top-color: rgb(34, 34=
, 34); border-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34=
); font-family: &quot;Arial&quot;,&quot;Helvetica&quot;,san=
s-serif; font-size: 13px; font-style: normal; font-variant: normal; font-we=
ight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; ma=
rgin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-=
left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-dec=
oration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-=
width: 0px; white-space: normal; word-spacing: 0px;"><font face=3D"arial,sa=
ns-serif" style=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-styl=
e: none; border-bottom-width: 0px; border-image-outset: 0; border-image-rep=
eat: stretch; border-image-slice: 100%; border-image-source: none; border-i=
mage-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none;=
border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-=
style: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); bo=
rder-top-style: none; border-top-width: 0px; margin-bottom: 0px; margin-lef=
t: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-le=
ft: 0px; padding-right: 0px; padding-top: 0px;"><br style=3D"background-att=
achment: scroll; background-clip: border-box; background-color: transparent=
; background-image: none; background-origin: padding-box; background-positi=
on-x: 0%; background-position-y: 0%; background-repeat: repeat; background-=
size: auto; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none=
; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat: st=
retch; border-image-slice: 100%; border-image-source: none; border-image-wi=
dth: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; border=
-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: =
none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-to=
p-style: none; border-top-width: 0px; color: rgb(34, 34, 34); font-family: =
arial,sans-serif; font-size: 13px; height: auto; margin-bottom: 0px; margin=
-left: 0px; margin-right: 0px; margin-top: 0px; min-width: 0px; overflow: v=
isible; overflow-x: visible; overflow-y: visible; padding-bottom: 0px; padd=
ing-left: 0px; padding-right: 0px; padding-top: 0px;"></font></div><div sty=
le=3D"background-color: transparent; border-bottom-color: rgb(34, 34, 34); =
border-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0=
; border-image-repeat: stretch; border-image-slice: 100%; border-image-sour=
ce: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); border=
-left-style: none; border-left-width: 0px; border-right-color: rgb(34, 34, =
34); border-right-style: none; border-right-width: 0px; border-top-color: r=
gb(34, 34, 34); border-top-style: none; border-top-width: 0px; color: rgb(3=
4, 34, 34); font-family: &quot;Arial&quot;,&quot;Helvetica&=
quot;,sans-serif; font-size: 13px; font-style: normal; font-variant: normal=
; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left=
: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px;=
padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;=
text-decoration: none; text-indent: 0px; text-transform: none; -webkit-tex=
t-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><font face=3D=
"courier new,monospace" style=3D"border-bottom-color: rgb(34, 34, 34); bord=
er-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; bo=
rder-image-repeat: stretch; border-image-slice: 100%; border-image-source: =
none; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-lef=
t-style: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34);=
border-right-style: none; border-right-width: 0px; border-top-color: rgb(3=
4, 34, 34); border-top-style: none; border-top-width: 0px; margin-bottom: 0=
px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0=
px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">template<N=
umber Num N></font></div><div style=3D"background-color: transparent; bo=
rder-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-botto=
m-width: 0px; border-image-outset: 0; border-image-repeat: stretch; border-=
image-slice: 100%; border-image-source: none; border-image-width: 1; border=
-left-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0=
px; border-right-color: rgb(34, 34, 34); border-right-style: none; border-r=
ight-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none;=
border-top-width: 0px; color: rgb(34, 34, 34); font-family: &quot;Aria=
l&quot;,&quot;Helvetica&quot;,sans-serif; font-size: 13px; font=
-style: normal; font-variant: normal; font-weight: 400; letter-spacing: nor=
mal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0=
px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px;=
padding-top: 0px; text-align: left; text-decoration: none; text-indent: 0p=
x; text-transform: none; -webkit-text-stroke-width: 0px; white-space: norma=
l; word-spacing: 0px;"><span style=3D"background-color: transparent; border=
-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-wi=
dth: 0px; border-image-outset: 0; border-image-repeat: stretch; border-imag=
e-slice: 100%; border-image-source: none; border-image-width: 1; border-lef=
t-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; =
border-right-color: rgb(34, 34, 34); border-right-style: none; border-right=
-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; bor=
der-top-width: 0px; color: rgb(34, 34, 34); display: inline; float: none; f=
ont-size: 13px; font-style: normal; font-variant: normal; font-weight: 400;=
letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right=
: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px;=
padding-right: 0px; padding-top: 0px; text-align: left; text-decoration: n=
one; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px=
; white-space: normal; word-spacing: 0px;"><font face=3D"courier new,monosp=
ace" style=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style: no=
ne; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat: =
stretch; border-image-slice: 100%; border-image-source: none; border-image-=
width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; bord=
er-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style=
: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-=
top-style: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0p=
x; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0=
px; padding-right: 0px; padding-top: 0px;">template<RandomNumberGenerato=
r RNG rng></font></span></div><div style=3D"background-color: transparen=
t; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-=
bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch; bo=
rder-image-slice: 100%; border-image-source: none; border-image-width: 1; b=
order-left-color: rgb(34, 34, 34); border-left-style: none; border-left-wid=
th: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none; bor=
der-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: =
none; border-top-width: 0px; color: rgb(34, 34, 34); font-family: &quot=
;Arial&quot;,&quot;Helvetica&quot;,sans-serif; font-size: 13px;=
font-style: normal; font-variant: normal; font-weight: 400; letter-spacing=
: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-t=
op: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right:=
0px; padding-top: 0px; text-align: left; text-decoration: none; text-inden=
t: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: =
normal; word-spacing: 0px;"><b style=3D"background-attachment: scroll; back=
ground-clip: border-box; background-color: transparent; background-image: n=
one; background-origin: padding-box; background-position-x: 0%; background-=
position-y: 0%; background-repeat: repeat; background-size: auto; border-bo=
ttom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width=
: 0px; border-image-outset: 0; border-image-repeat: stretch; border-image-s=
lice: 100%; border-image-source: none; border-image-width: 1; border-left-c=
olor: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; bor=
der-right-color: rgb(34, 34, 34); border-right-style: none; border-right-wi=
dth: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; border=
-top-width: 0px; color: rgb(34, 34, 34); font-family: &quot;Arial&q=
uot;,&quot;Helvetica&quot;,sans-serif; font-size: 13px; height: aut=
o; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px=
; min-width: 0px; overflow: visible; overflow-x: visible; overflow-y: visib=
le; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top=
: 0px;"></b><i style=3D"background-attachment: scroll; background-clip: bor=
der-box; background-color: transparent; background-image: none; background-=
origin: padding-box; background-position-x: 0%; background-position-y: 0%; =
background-repeat: repeat; background-size: auto; border-bottom-color: rgb(=
34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; border-im=
age-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; bord=
er-image-source: none; border-image-width: 1; border-left-color: rgb(34, 34=
, 34); border-left-style: none; border-left-width: 0px; border-right-color:=
rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; border=
-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px;=
color: rgb(34, 34, 34); font-family: &quot;Arial&quot;,&quot;H=
elvetica&quot;,sans-serif; font-size: 13px; height: auto; margin-bottom=
: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-width: 0px=
; overflow: visible; overflow-x: visible; overflow-y: visible; padding-bott=
om: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></i><u s=
tyle=3D"background-attachment: scroll; background-clip: border-box; backgro=
und-color: transparent; background-image: none; background-origin: padding-=
box; background-position-x: 0%; background-position-y: 0%; background-repea=
t: repeat; background-size: auto; border-bottom-color: rgb(34, 34, 34); bor=
der-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; b=
order-image-repeat: stretch; border-image-slice: 100%; border-image-source:=
none; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-le=
ft-style: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34)=
; border-right-style: none; border-right-width: 0px; border-top-color: rgb(=
34, 34, 34); border-top-style: none; border-top-width: 0px; color: rgb(34, =
34, 34); font-family: &quot;Arial&quot;,&quot;Helvetica&quo=
t;,sans-serif; font-size: 13px; height: auto; margin-bottom: 0px; margin-le=
ft: 0px; margin-right: 0px; margin-top: 0px; min-width: 0px; overflow: visi=
ble; overflow-x: visible; overflow-y: visible; padding-bottom: 0px; padding=
-left: 0px; padding-right: 0px; padding-top: 0px;"></u><sub style=3D"border=
-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-wi=
dth: 0px; border-image-outset: 0; border-image-repeat: stretch; border-imag=
e-slice: 100%; border-image-source: none; border-image-width: 1; border-lef=
t-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; =
border-right-color: rgb(34, 34, 34); border-right-style: none; border-right=
-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; bor=
der-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px=
; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0=
px; padding-top: 0px;"></sub><sup style=3D"border-bottom-color: rgb(34, 34,=
34); border-bottom-style: none; border-bottom-width: 0px; border-image-out=
set: 0; border-image-repeat: stretch; border-image-slice: 100%; border-imag=
e-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); =
border-left-style: none; border-left-width: 0px; border-right-color: rgb(34=
, 34, 34); border-right-style: none; border-right-width: 0px; border-top-co=
lor: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; margin=
-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding=
-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></s=
up><strike style=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-sty=
le: none; border-bottom-width: 0px; border-image-outset: 0; border-image-re=
peat: stretch; border-image-slice: 100%; border-image-source: none; border-=
image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none=
; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right=
-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); b=
order-top-style: none; border-top-width: 0px; margin-bottom: 0px; margin-le=
ft: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-l=
eft: 0px; padding-right: 0px; padding-top: 0px;"></strike><br style=3D"back=
ground-attachment: scroll; background-clip: border-box; background-color: t=
ransparent; background-image: none; background-origin: padding-box; backgro=
und-position-x: 0%; background-position-y: 0%; background-repeat: repeat; b=
ackground-size: auto; border-bottom-color: rgb(34, 34, 34); border-bottom-s=
tyle: none; border-bottom-width: 0px; border-image-outset: 0; border-image-=
repeat: stretch; border-image-slice: 100%; border-image-source: none; borde=
r-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: no=
ne; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-rig=
ht-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34);=
border-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); fon=
t-family: &quot;Arial&quot;,&quot;Helvetica&quot;,sans-seri=
f; font-size: 13px; height: auto; margin-bottom: 0px; margin-left: 0px; mar=
gin-right: 0px; margin-top: 0px; min-width: 0px; overflow: visible; overflo=
w-x: visible; overflow-y: visible; padding-bottom: 0px; padding-left: 0px; =
padding-right: 0px; padding-top: 0px;"></div><div style=3D"background-color=
: transparent; border-bottom-color: rgb(34, 34, 34); border-bottom-style: n=
one; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat:=
stretch; border-image-slice: 100%; border-image-source: none; border-image=
-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; bor=
der-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-styl=
e: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border=
-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); font-famil=
y: &quot;Arial&quot;,&quot;Helvetica&quot;,sans-serif; font=
-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; le=
tter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0=
px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; pa=
dding-right: 0px; padding-top: 0px; text-align: left; text-decoration: none=
; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; w=
hite-space: normal; word-spacing: 0px;">also=C2=A0</div><div style=3D"backg=
round-color: transparent; border-bottom-color: rgb(34, 34, 34); border-bott=
om-style: none; border-bottom-width: 0px; border-image-outset: 0; border-im=
age-repeat: stretch; border-image-slice: 100%; border-image-source: none; b=
order-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style=
: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border=
-right-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, =
34); border-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34);=
font-family: &quot;Arial&quot;,&quot;Helvetica&quot;,sans-=
serif; font-size: 13px; font-style: normal; font-variant: normal; font-weig=
ht: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; marg=
in-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-le=
ft: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-decor=
ation: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-wi=
dth: 0px; white-space: normal; word-spacing: 0px;"><br style=3D"background-=
attachment: scroll; background-clip: border-box; background-color: transpar=
ent; background-image: none; background-origin: padding-box; background-pos=
ition-x: 0%; background-position-y: 0%; background-repeat: repeat; backgrou=
nd-size: auto; border-bottom-color: rgb(34, 34, 34); border-bottom-style: n=
one; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat:=
stretch; border-image-slice: 100%; border-image-source: none; border-image=
-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; bor=
der-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-styl=
e: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border=
-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); font-famil=
y: &quot;Arial&quot;,&quot;Helvetica&quot;,sans-serif; font=
-size: 13px; height: auto; margin-bottom: 0px; margin-left: 0px; margin-rig=
ht: 0px; margin-top: 0px; min-width: 0px; overflow: visible; overflow-x: vi=
sible; overflow-y: visible; padding-bottom: 0px; padding-left: 0px; padding=
-right: 0px; padding-top: 0px;"></div><div style=3D"background-color: trans=
parent; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; bo=
rder-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretc=
h; border-image-slice: 100%; border-image-source: none; border-image-width:=
1; border-left-color: rgb(34, 34, 34); border-left-style: none; border-lef=
t-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none=
; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-st=
yle: none; border-top-width: 0px; color: rgb(34, 34, 34); font-family: &=
;quot;Arial&quot;,&quot;Helvetica&quot;,sans-serif; font-size: =
13px; font-style: normal; font-variant: normal; font-weight: 400; letter-sp=
acing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; mar=
gin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-r=
ight: 0px; padding-top: 0px; text-align: left; text-decoration: none; text-=
indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-sp=
ace: normal; word-spacing: 0px;"><span style=3D"background-color: transpare=
nt; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border=
-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch; b=
order-image-slice: 100%; border-image-source: none; border-image-width: 1; =
border-left-color: rgb(34, 34, 34); border-left-style: none; border-left-wi=
dth: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none; bo=
rder-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style:=
none; border-top-width: 0px; color: rgb(34, 34, 34); display: inline; floa=
t: none; font-family: courier new,monospace; font-size: 13px; font-style: n=
ormal; font-variant: normal; font-weight: 400; letter-spacing: normal; marg=
in-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orpha=
ns: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-=
top: 0px; text-align: left; text-decoration: none; text-indent: 0px; text-t=
ransform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-s=
pacing: 0px;">template<Any Val val></span></div><div style=3D"backgro=
und-color: transparent; border-bottom-color: rgb(34, 34, 34); border-bottom=
-style: none; border-bottom-width: 0px; border-image-outset: 0; border-imag=
e-repeat: stretch; border-image-slice: 100%; border-image-source: none; bor=
der-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: =
none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-r=
ight-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34=
); border-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); f=
ont-family: &quot;Arial&quot;,&quot;Helvetica&quot;,sans-se=
rif; font-size: 13px; font-style: normal; font-variant: normal; font-weight=
: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin=
-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left=
: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-decorat=
ion: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-widt=
h: 0px; white-space: normal; word-spacing: 0px;">is <i style=3D"background-=
attachment: scroll; background-clip: border-box; background-color: transpar=
ent; background-image: none; background-origin: padding-box; background-pos=
ition-x: 0%; background-position-y: 0%; background-repeat: repeat; backgrou=
nd-size: auto; border-bottom-color: rgb(34, 34, 34); border-bottom-style: n=
one; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat:=
stretch; border-image-slice: 100%; border-image-source: none; border-image=
-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; bor=
der-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-styl=
e: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border=
-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); font-famil=
y: &quot;Arial&quot;,&quot;Helvetica&quot;,sans-serif; font=
-size: 13px; height: auto; margin-bottom: 0px; margin-left: 0px; margin-rig=
ht: 0px; margin-top: 0px; min-width: 0px; overflow: visible; overflow-x: vi=
sible; overflow-y: visible; padding-bottom: 0px; padding-left: 0px; padding=
-right: 0px; padding-top: 0px;">better</i> then=C2=A0</div><div style=3D"ba=
ckground-color: transparent; border-bottom-color: rgb(34, 34, 34); border-b=
ottom-style: none; border-bottom-width: 0px; border-image-outset: 0; border=
-image-repeat: stretch; border-image-slice: 100%; border-image-source: none=
; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-st=
yle: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); bor=
der-right-style: none; border-right-width: 0px; border-top-color: rgb(34, 3=
4, 34); border-top-style: none; border-top-width: 0px; color: rgb(34, 34, 3=
4); font-family: &quot;Arial&quot;,&quot;Helvetica&quot;,sa=
ns-serif; font-size: 13px; font-style: normal; font-variant: normal; font-w=
eight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; m=
argin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding=
-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-de=
coration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke=
-width: 0px; white-space: normal; word-spacing: 0px;"><span style=3D"backgr=
ound-color: transparent; border-bottom-color: rgb(34, 34, 34); border-botto=
m-style: none; border-bottom-width: 0px; border-image-outset: 0; border-ima=
ge-repeat: stretch; border-image-slice: 100%; border-image-source: none; bo=
rder-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style:=
none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-=
right-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, 3=
4); border-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); =
display: inline; float: none; font-family: courier new,monospace; font-size=
: 13px; font-style: normal; font-variant: normal; font-weight: 400; letter-=
spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; m=
argin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding=
-right: 0px; padding-top: 0px; text-align: left; text-decoration: none; tex=
t-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-=
space: normal; word-spacing: 0px;">template<auto val></span><b style=
=3D"background-attachment: scroll; background-clip: border-box; background-=
color: transparent; background-image: none; background-origin: padding-box;=
background-position-x: 0%; background-position-y: 0%; background-repeat: r=
epeat; background-size: auto; border-bottom-color: rgb(34, 34, 34); border-=
bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; borde=
r-image-repeat: stretch; border-image-slice: 100%; border-image-source: non=
e; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-s=
tyle: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); bo=
rder-right-style: none; border-right-width: 0px; border-top-color: rgb(34, =
34, 34); border-top-style: none; border-top-width: 0px; color: rgb(34, 34, =
34); font-family: &quot;Arial&quot;,&quot;Helvetica&quot;,s=
ans-serif; font-size: 13px; height: auto; margin-bottom: 0px; margin-left: =
0px; margin-right: 0px; margin-top: 0px; min-width: 0px; overflow: visible;=
overflow-x: visible; overflow-y: visible; padding-bottom: 0px; padding-lef=
t: 0px; padding-right: 0px; padding-top: 0px;"></b><i style=3D"background-a=
ttachment: scroll; background-clip: border-box; background-color: transpare=
nt; background-image: none; background-origin: padding-box; background-posi=
tion-x: 0%; background-position-y: 0%; background-repeat: repeat; backgroun=
d-size: auto; border-bottom-color: rgb(34, 34, 34); border-bottom-style: no=
ne; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat: =
stretch; border-image-slice: 100%; border-image-source: none; border-image-=
width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; bord=
er-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style=
: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-=
top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); font-family=
: &quot;Arial&quot;,&quot;Helvetica&quot;,sans-serif; font-=
size: 13px; height: auto; margin-bottom: 0px; margin-left: 0px; margin-righ=
t: 0px; margin-top: 0px; min-width: 0px; overflow: visible; overflow-x: vis=
ible; overflow-y: visible; padding-bottom: 0px; padding-left: 0px; padding-=
right: 0px; padding-top: 0px;"></i><u style=3D"background-attachment: scrol=
l; background-clip: border-box; background-color: transparent; background-i=
mage: none; background-origin: padding-box; background-position-x: 0%; back=
ground-position-y: 0%; background-repeat: repeat; background-size: auto; bo=
rder-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-botto=
m-width: 0px; border-image-outset: 0; border-image-repeat: stretch; border-=
image-slice: 100%; border-image-source: none; border-image-width: 1; border=
-left-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0=
px; border-right-color: rgb(34, 34, 34); border-right-style: none; border-r=
ight-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none;=
border-top-width: 0px; color: rgb(34, 34, 34); font-family: &quot;Aria=
l&quot;,&quot;Helvetica&quot;,sans-serif; font-size: 13px; heig=
ht: auto; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-t=
op: 0px; min-width: 0px; overflow: visible; overflow-x: visible; overflow-y=
: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padd=
ing-top: 0px;"></u><sub style=3D"border-bottom-color: rgb(34, 34, 34); bord=
er-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; bo=
rder-image-repeat: stretch; border-image-slice: 100%; border-image-source: =
none; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-lef=
t-style: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34);=
border-right-style: none; border-right-width: 0px; border-top-color: rgb(3=
4, 34, 34); border-top-style: none; border-top-width: 0px; margin-bottom: 0=
px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0=
px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></sub><sup st=
yle=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; bor=
der-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch=
; border-image-slice: 100%; border-image-source: none; border-image-width: =
1; border-left-color: rgb(34, 34, 34); border-left-style: none; border-left=
-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none;=
border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-sty=
le: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; marg=
in-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; pad=
ding-right: 0px; padding-top: 0px;"></sup><strike style=3D"border-bottom-co=
lor: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; =
border-image-outset: 0; border-image-repeat: stretch; border-image-slice: 1=
00%; border-image-source: none; border-image-width: 1; border-left-color: r=
gb(34, 34, 34); border-left-style: none; border-left-width: 0px; border-rig=
ht-color: rgb(34, 34, 34); border-right-style: none; border-right-width: 0p=
x; border-top-color: rgb(34, 34, 34); border-top-style: none; border-top-wi=
dth: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-t=
op: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; paddin=
g-top: 0px;"></strike></div><div style=3D"background-color: transparent; bo=
rder-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-botto=
m-width: 0px; border-image-outset: 0; border-image-repeat: stretch; border-=
image-slice: 100%; border-image-source: none; border-image-width: 1; border=
-left-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0=
px; border-right-color: rgb(34, 34, 34); border-right-style: none; border-r=
ight-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none;=
border-top-width: 0px; color: rgb(34, 34, 34); font-family: &quot;Aria=
l&quot;,&quot;Helvetica&quot;,sans-serif; font-size: 13px; font=
-style: normal; font-variant: normal; font-weight: 400; letter-spacing: nor=
mal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0=
px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px;=
padding-top: 0px; text-align: left; text-decoration: none; text-indent: 0p=
x; text-transform: none; -webkit-text-stroke-width: 0px; white-space: norma=
l; word-spacing: 0px;"><br style=3D"background-attachment: scroll; backgrou=
nd-clip: border-box; background-color: transparent; background-image: none;=
background-origin: padding-box; background-position-x: 0%; background-posi=
tion-y: 0%; background-repeat: repeat; background-size: auto; border-bottom=
-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0p=
x; border-image-outset: 0; border-image-repeat: stretch; border-image-slice=
: 100%; border-image-source: none; border-image-width: 1; border-left-color=
: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; border-=
right-color: rgb(34, 34, 34); border-right-style: none; border-right-width:=
0px; border-top-color: rgb(34, 34, 34); border-top-style: none; border-top=
-width: 0px; color: rgb(34, 34, 34); font-family: &quot;Arial&quot;=
,&quot;Helvetica&quot;,sans-serif; font-size: 13px; height: auto; m=
argin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; mi=
n-width: 0px; overflow: visible; overflow-x: visible; overflow-y: visible; =
padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0p=
x;"></div><div style=3D"background-color: transparent; border-bottom-color:=
rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; bord=
er-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%;=
border-image-source: none; border-image-width: 1; border-left-color: rgb(3=
4, 34, 34); border-left-style: none; border-left-width: 0px; border-right-c=
olor: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; b=
order-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width:=
0px; color: rgb(34, 34, 34); font-family: &quot;Arial&quot;,&q=
uot;Helvetica&quot;,sans-serif; font-size: 13px; font-style: normal; fo=
nt-variant: normal; font-weight: 400; letter-spacing: normal; margin-bottom=
: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; pa=
dding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;=
text-align: left; text-decoration: none; text-indent: 0px; text-transform:=
none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0=
px;">(and we have the type as a bonus)</div><div style=3D"background-color:=
transparent; border-bottom-color: rgb(34, 34, 34); border-bottom-style: no=
ne; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat: =
stretch; border-image-slice: 100%; border-image-source: none; border-image-=
width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; bord=
er-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style=
: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-=
top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); font-family=
: &quot;Arial&quot;,&quot;Helvetica&quot;,sans-serif; font-=
size: 13px; font-style: normal; font-variant: normal; font-weight: 400; let=
ter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0p=
x; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; pad=
ding-right: 0px; padding-top: 0px; text-align: left; text-decoration: none;=
text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; wh=
ite-space: normal; word-spacing: 0px;"><br style=3D"background-attachment: =
scroll; background-clip: border-box; background-color: transparent; backgro=
und-image: none; background-origin: padding-box; background-position-x: 0%;=
background-position-y: 0%; background-repeat: repeat; background-size: aut=
o; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-=
bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch; bo=
rder-image-slice: 100%; border-image-source: none; border-image-width: 1; b=
order-left-color: rgb(34, 34, 34); border-left-style: none; border-left-wid=
th: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none; bor=
der-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: =
none; border-top-width: 0px; color: rgb(34, 34, 34); font-family: &quot=
;Arial&quot;,&quot;Helvetica&quot;,sans-serif; font-size: 13px;=
height: auto; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; mar=
gin-top: 0px; min-width: 0px; overflow: visible; overflow-x: visible; overf=
low-y: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px;=
padding-top: 0px;"></div><div style=3D"background-color: transparent; bord=
er-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-=
width: 0px; border-image-outset: 0; border-image-repeat: stretch; border-im=
age-slice: 100%; border-image-source: none; border-image-width: 1; border-l=
eft-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px=
; border-right-color: rgb(34, 34, 34); border-right-style: none; border-rig=
ht-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; b=
order-top-width: 0px; color: rgb(34, 34, 34); font-family: &quot;Arial&=
amp;quot;,&quot;Helvetica&quot;,sans-serif; font-size: 13px; font-s=
tyle: normal; font-variant: normal; font-weight: 400; letter-spacing: norma=
l; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px=
; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; p=
adding-top: 0px; text-align: left; text-decoration: none; text-indent: 0px;=
text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal;=
word-spacing: 0px;">A great benefit is the fact one is <i>explicit</i> he =
takes ANYTHINIG which <i>might</i> not be good idea and one might reconside=
r and go and constrain the types.</div><div style=3D"background-color: tran=
sparent; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; b=
order-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stret=
ch; border-image-slice: 100%; border-image-source: none; border-image-width=
: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; border-le=
ft-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: non=
e; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-s=
tyle: none; border-top-width: 0px; color: rgb(34, 34, 34); font-family: &am=
p;quot;Arial&quot;,&quot;Helvetica&quot;,sans-serif; font-size:=
13px; font-style: normal; font-variant: normal; font-weight: 400; letter-s=
pacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; ma=
rgin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-=
right: 0px; padding-top: 0px; text-align: left; text-decoration: none; text=
-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-s=
pace: normal; word-spacing: 0px;"><br></div></div></div>
<p></p>
-- <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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/eeae7fd0-92f0-488d-9a5f-face9091b562%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/eeae7fd0-92f0-488d-9a5f-face9091b562=
%40isocpp.org</a>.<br />
------=_Part_130597_2018154884.1531498033532--
------=_Part_130596_1289491458.1531498033531--
.
Author: mihailnajdenov@gmail.com
Date: Fri, 13 Jul 2018 09:08:56 -0700 (PDT)
Raw View
------=_Part_132648_126130988.1531498136053
Content-Type: multipart/alternative;
boundary="----=_Part_132649_1623552549.1531498136053"
------=_Part_132649_1623552549.1531498136053
Content-Type: text/plain; charset="UTF-8"
On Friday, July 13, 2018 at 5:45:45 PM UTC+3, Hubert Tong wrote:
>
> On Fri, Jul 13, 2018 at 3:45 AM, <mihailn...@gmail.com <javascript:>>
> wrote:
>
>> I am ok with Number auto
>>
>> And I hope it will be upgraded to Number T as it *dramatically* improves
>> declarations as one sees a type like he always did, granted not a concrete
>> one
>>
>> [](All Args&&... args) { f(std::forward<Args>(args)...); }
>>
>> *I will take that before ANY other form!*
>>
> It has been mentioned somewhere that we can and probably should pursue a
> syntax to imbue auto with the ability to introduce a name for the type
> deduced (or a name for the invented template parameter in deduction
> contexts). So, the upgrade is not limited to Concept auto (and can be
> pursued separately).
>
The way I see it, if we declare a blanket rule that a concept always
introduces a typename (orthogonal to "class always introduces a type"),
that tool is very powerful and actually makes auto inferior:
func(Any Arg&& a)
reads *better* then,
func(auto&& a)
even if we don't use the type!
One might argue in template header it will be confusing, but that is
speculation, because in practice the name of the variable should be
lowercase and/or will have clearly non-typy name
template<Number Num N>
template<RandomNumberGenerator RNG rng>
also
template<Any Val val>
is *better* then
template<auto val>
(and we have the type as a bonus)
A great benefit is the fact one is explicit he takes ANYTHINIG which might
not be good idea and one might reconsider and go and constrain the types.
--
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.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/d3cdb28a-0a15-4baa-9f4a-c542ef9dc057%40isocpp.org.
------=_Part_132649_1623552549.1531498136053
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><br><br>On Friday, July 13, 2018 at 5:45:45 PM UTC+3, Hube=
rt Tong wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-l=
eft: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr"=
><div><div class=3D"gmail_quote">On Fri, Jul 13, 2018 at 3:45 AM, <span di=
r=3D"ltr"><<a onmousedown=3D"this.href=3D'javascript:';return tr=
ue;" onclick=3D"this.href=3D'javascript:';return true;" href=3D"jav=
ascript:" target=3D"_blank" rel=3D"nofollow" gdf-obfuscated-mailto=3D"mo9Ht=
3ZYCQAJ">mihailn...@gmail.com</a>></span> wrote:<br><blockquote class=3D=
"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding=
-left:1ex"><div dir=3D"ltr"><div><div><div style=3D"background-color:transp=
arent;border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bot=
tom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;border=
-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;bo=
rder-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;b=
order-top-width:0px;color:rgb(34,34,34);font-size:13px;font-style:normal;fo=
nt-variant:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;m=
argin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-l=
eft:0px;padding-right:0px;padding-top:0px;text-align:left;text-decoration:n=
one;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px=
"><span style=3D"background-color:transparent;border-bottom-color:rgb(34,34=
,34);border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb=
(34,34,34);border-left-style:none;border-left-width:0px;border-right-color:=
rgb(34,34,34);border-right-style:none;border-right-width:0px;border-top-col=
or:rgb(34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34=
,34);display:inline;float:none;font-size:13px;font-style:normal;font-varian=
t:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-lef=
t:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;p=
adding-right:0px;padding-top:0px;text-align:left;text-decoration:none;text-=
indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><font f=
ace=3D"arial,sans-serif" style=3D"border-bottom-color:rgb(34,34,34);border-=
bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);b=
order-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34=
);border-right-style:none;border-right-width:0px;border-top-color:rgb(34,34=
,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-le=
ft:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;=
padding-right:0px;padding-top:0px">I am ok with </font><font face=3D"courie=
r new,monospace" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-s=
tyle:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-le=
ft-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border=
-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bor=
der-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;m=
argin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-=
right:0px;padding-top:0px">Number auto</font></span></div><div style=3D"bac=
kground-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-s=
tyle:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-le=
ft-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border=
-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bor=
der-top-style:none;border-top-width:0px;color:rgb(34,34,34);font-size:13px;=
font-style:normal;font-variant:normal;font-weight:400;letter-spacing:normal=
;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-=
bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-align:le=
ft;text-decoration:none;text-indent:0px;text-transform:none;white-space:nor=
mal;word-spacing:0px"><span style=3D"background-color:transparent;border-bo=
ttom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;b=
order-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px=
;border-right-color:rgb(34,34,34);border-right-style:none;border-right-widt=
h:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width=
:0px;color:rgb(34,34,34);display:inline;float:none;font-size:13px;font-styl=
e:normal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-b=
ottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0p=
x;padding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-d=
ecoration:none;text-indent:0px;text-transform:none;white-space:normal;word-=
spacing:0px"><font face=3D"arial,sans-serif" style=3D"border-bottom-color:r=
gb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-c=
olor:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-righ=
t-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;border=
-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-=
bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0=
px;padding-left:0px;padding-right:0px;padding-top:0px"><font face=3D"courie=
r new,monospace"></font><br></font></span></div><div style=3D"background-co=
lor:transparent;border-bottom-color:rgb(34,34,34);border-bottom-style:none;=
border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:n=
one;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-sty=
le:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-st=
yle:none;border-top-width:0px;color:rgb(34,34,34);font-size:13px;font-style=
:normal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-bo=
ttom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px=
;padding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-de=
coration:none;text-indent:0px;text-transform:none;white-space:normal;word-s=
pacing:0px"><span style=3D"background-color:transparent;border-bottom-color=
:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-left=
-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-ri=
ght-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;bord=
er-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;color=
:rgb(34,34,34);display:inline;float:none;font-size:13px;font-style:normal;f=
ont-variant:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;=
margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-=
left:0px;padding-right:0px;padding-top:0px;text-align:left;text-decoration:=
none;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0p=
x"><font face=3D"arial,sans-serif" style=3D"border-bottom-color:rgb(34,34,3=
4);border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(3=
4,34,34);border-left-style:none;border-left-width:0px;border-right-color:rg=
b(34,34,34);border-right-style:none;border-right-width:0px;border-top-color=
:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px=
;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding=
-left:0px;padding-right:0px;padding-top:0px">And I hope it will be upgraded=
to <font face=3D"courier new,monospace">Number T </font>as it <i>dramatica=
lly</i> improves declarations as one sees a type like he always did, grante=
d not a concrete one</font></span></div><div style=3D"background-color:tran=
sparent;border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-b=
ottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;bord=
er-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;=
border-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none=
;border-top-width:0px;color:rgb(34,34,34);font-size:13px;font-style:normal;=
font-variant:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px=
;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding=
-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-decoration=
:none;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0=
px"></div><div style=3D"background-color:transparent;border-bottom-color:rg=
b(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-co=
lor:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-right=
-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;border-=
top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;color:rg=
b(34,34,34);font-size:13px;font-style:normal;font-variant:normal;font-weigh=
t:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:=
0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;pa=
dding-top:0px;text-align:left;text-decoration:none;text-indent:0px;text-tra=
nsform:none;white-space:normal;word-spacing:0px"><span style=3D"background-=
color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-style:non=
e;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style=
:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-s=
tyle:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-=
style:none;border-top-width:0px;color:rgb(34,34,34);display:inline;float:no=
ne;font-size:13px;font-style:normal;font-variant:normal;font-weight:400;let=
ter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margi=
n-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top=
:0px;text-align:left;text-decoration:none;text-indent:0px;text-transform:no=
ne;white-space:normal;word-spacing:0px"><font face=3D"arial,sans-serif" sty=
le=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bot=
tom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;border=
-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;bo=
rder-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;b=
order-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;marg=
in-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-to=
p:0px"><br></font></span></div><div style=3D"background-color:transparent;b=
order-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-wid=
th:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-w=
idth:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-ri=
ght-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-t=
op-width:0px;color:rgb(34,34,34);font-size:13px;font-style:normal;font-vari=
ant:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-l=
eft:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px=
;padding-right:0px;padding-top:0px;text-align:left;text-decoration:none;tex=
t-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span=
style=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);bo=
rder-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,=
34);border-left-style:none;border-left-width:0px;border-right-color:rgb(34,=
34,34);border-right-style:none;border-right-width:0px;border-top-color:rgb(=
34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);di=
splay:inline;float:none;font-size:13px;font-style:normal;font-variant:norma=
l;font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;m=
argin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-=
right:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:=
0px;text-transform:none;white-space:normal;word-spacing:0px"><font face=3D"=
courier new,monospace" style=3D"border-bottom-color:rgb(34,34,34);border-bo=
ttom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);bor=
der-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);=
border-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,3=
4);border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left=
:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;pa=
dding-right:0px;padding-top:0px">[](All Args&&... args) { f(std::fo=
rward<Args>(args)...)<wbr>; }</font></span></div><div style=3D"backgr=
ound-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-styl=
e:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-=
style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-ri=
ght-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);border=
-top-style:none;border-top-width:0px;color:rgb(34,34,34);font-size:13px;fon=
t-style:normal;font-variant:normal;font-weight:400;letter-spacing:normal;ma=
rgin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bot=
tom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-align:left;=
text-decoration:none;text-indent:0px;text-transform:none;white-space:normal=
;word-spacing:0px"><span style=3D"background-color:transparent;border-botto=
m-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;bord=
er-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;bo=
rder-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0=
px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0p=
x;color:rgb(34,34,34);display:inline;float:none;font-size:13px;font-style:n=
ormal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-bott=
om:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;p=
adding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-deco=
ration:none;text-indent:0px;text-transform:none;white-space:normal;word-spa=
cing:0px"><font face=3D"courier new,monospace" style=3D"border-bottom-color=
:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-left=
-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-ri=
ght-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;bord=
er-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;margi=
n-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom=
:0px;padding-left:0px;padding-right:0px;padding-top:0px"><br></font></span>=
</div><div style=3D"margin:0px;padding:0px;border:0px rgb(34,34,34);text-al=
ign:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spa=
cing:normal;font-size:13px;font-variant:normal;font-weight:400;text-decorat=
ion:none;word-spacing:0px;white-space:normal;background-color:transparent">=
<span style=3D"margin:0px;padding:0px;border:0px rgb(34,34,34);text-align:l=
eft;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:=
normal;font-size:13px;font-variant:normal;font-weight:400;text-decoration:n=
one;word-spacing:0px;display:inline;white-space:normal;float:none;backgroun=
d-color:transparent"><font face=3D"arial,sans-serif" style=3D"border-bottom=
-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;borde=
r-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;bor=
der-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0p=
x;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px=
;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-=
bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px"><i>I will ta=
ke that before <b>ANY</b> other form!</i></font></span></div></div></div></=
div></blockquote><div>It has been mentioned somewhere that we can and proba=
bly should pursue a syntax to imbue <span style=3D"font-family:monospace,mo=
nospace">auto</span> with the ability to introduce a name for the type dedu=
ced (or a name for the invented template parameter in deduction contexts). =
So, the upgrade is not limited to <span style=3D"font-family:monospace,mono=
space">Concept auto</span> (and can be pursued separately).<br></div></div>=
</div></div></blockquote><div><br></div><div><br>The way I see it, if we de=
clare a blanket rule that a concept always introduces a typename (orthogona=
l to "<font face=3D"courier new,monospace">class</font> always introdu=
ces a type"),<br>that tool is very powerful and actually makes auto in=
ferior:</div><div><br></div><div><font face=3D"courier new,monospace">func(=
Any Arg&& a)</font></div><div><font face=3D"courier new,monospace">=
<br></font></div><div>reads <i>better</i> then,=C2=A0</div><div><br></div><=
div><font face=3D"courier new,monospace">func(auto&& a)</font></div=
><div><font face=3D"courier new,monospace"><br></font></div><div>even if we=
don't use the type!</div><div><br>One might argue in template header i=
t will be confusing, but that is speculation, because in practice the name =
of the variable should be lowercase and/or will have clearly non-typy name<=
/div><div><br></div><div><font face=3D"courier new,monospace">template<N=
umber Num N><br>template<RandomNumberGenerator RNG rng></font></di=
v><div><font face=3D"courier new,monospace"><br></font></div><div>also=C2=
=A0</div><div><br></div><div><font face=3D"courier new,monospace">template&=
lt;Any Val val></font><br>is <i>better</i> then <br><font face=3D"courie=
r new,monospace">template<auto val></font></div><div><font face=3D"co=
urier new,monospace"></font><br></div><div>(and we have the type as a bonus=
)</div><div><br></div><div>A great benefit is the fact one is explicit he t=
akes ANYTHINIG which might not be good idea and one might reconsider and go=
and constrain the types.=C2=A0</div></div>
<p></p>
-- <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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/d3cdb28a-0a15-4baa-9f4a-c542ef9dc057%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/d3cdb28a-0a15-4baa-9f4a-c542ef9dc057=
%40isocpp.org</a>.<br />
------=_Part_132649_1623552549.1531498136053--
------=_Part_132648_126130988.1531498136053--
.
Author: Tony V E <tvaneerd@gmail.com>
Date: Fri, 13 Jul 2018 18:38:18 -0400
Raw View
--000000000000f199e50570e9229f
Content-Type: text/plain; charset="UTF-8"
On Fri, Jul 13, 2018 at 11:13 AM, Hubert Tong <
hubert.reinterpretcast@gmail.com> wrote:
> On Fri, Jul 13, 2018 at 11:07 AM, Tony V E <tvaneerd@gmail.com> wrote:
>
>>
>>
>> On Fri, Jul 13, 2018 at 10:45 AM, Hubert Tong <
>> hubert.reinterpretcast@gmail.com> wrote:
>>
>>> On Fri, Jul 13, 2018 at 3:45 AM, <mihailnajdenov@gmail.com> wrote:
>>>
>>>> I am ok with Number auto
>>>>
>>>> And I hope it will be upgraded to Number T as it *dramatically*
>>>> improves declarations as one sees a type like he always did, granted not a
>>>> concrete one
>>>>
>>>> [](All Args&&... args) { f(std::forward<Args>(args)...); }
>>>>
>>>> *I will take that before ANY other form!*
>>>>
>>> It has been mentioned somewhere that we can and probably should pursue a
>>> syntax to imbue auto with the ability to introduce a name for the type
>>> deduced (or a name for the invented template parameter in deduction
>>> contexts). So, the upgrade is not limited to Concept auto (and can be
>>> pursued separately).
>>>
>>
>> But if we end up with auto{X} being the syntax for naming the deduced
>> type, and Concept auto{X},...
>> maybe just go with Herb's proposal now.
>>
> It's similar in syntax with respect to the effects of Parts 1 and 2 of
> P1141, but the position in Herb's paper over what Part 3 of P1141 covers
> was a deal breaker for some.
>
That was the best part of Herb's paper :-)
Ah well.
> -- HT
>
>
--
Be seeing you,
Tony
--
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.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAOHCbis_9wdqpsmcejSDmf8w86wvRvG6vnFTKuqfNQ1Bi7VsJA%40mail.gmail.com.
--000000000000f199e50570e9229f
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 Fri, Jul 13, 2018 at 11:13 AM, Hubert Tong <span dir=3D"ltr"><<a =
href=3D"mailto:hubert.reinterpretcast@gmail.com" target=3D"_blank">hubert.r=
einterpretcast@gmail.com</a>></span> wrote:<br><blockquote class=3D"gmai=
l_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left=
:1ex"><div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote=
"><span class=3D"">On Fri, Jul 13, 2018 at 11:07 AM, Tony V E <span dir=3D"=
ltr"><<a href=3D"mailto:tvaneerd@gmail.com" target=3D"_blank">tvaneerd@g=
mail.com</a>></span> wrote:<br><blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=
=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quote"><div=
><div>On Fri, Jul 13, 2018 at 10:45 AM, Hubert Tong <span dir=3D"ltr"><<=
a href=3D"mailto:hubert.reinterpretcast@gmail.com" target=3D"_blank">hubert=
..reinterpretcast@gmail.<wbr>com</a>></span> wrote:<br><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex"><div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gma=
il_quote">On Fri, Jul 13, 2018 at 3:45 AM, <span dir=3D"ltr"><<a href=
=3D"mailto:mihailnajdenov@gmail.com" target=3D"_blank">mihailnajdenov@gmail=
..com</a>></span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"ma=
rgin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"lt=
r"><div><div><div style=3D"background-color:transparent;border-bottom-color=
:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-left=
-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-ri=
ght-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;bord=
er-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;color=
:rgb(34,34,34);font-size:13px;font-style:normal;font-variant:normal;font-we=
ight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-rig=
ht:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px=
;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px;text-=
transform:none;white-space:normal;word-spacing:0px"><span style=3D"backgrou=
nd-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-style:=
none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-st=
yle:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-righ=
t-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-t=
op-style:none;border-top-width:0px;color:rgb(34,34,34);display:inline;float=
:none;font-size:13px;font-style:normal;font-variant:normal;font-weight:400;=
letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;ma=
rgin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-=
top:0px;text-align:left;text-decoration:none;text-indent:0px;text-transform=
:none;white-space:normal;word-spacing:0px"><font style=3D"border-bottom-col=
or:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-le=
ft-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-=
right-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;bo=
rder-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;mar=
gin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bott=
om:0px;padding-left:0px;padding-right:0px;padding-top:0px" face=3D"arial,sa=
ns-serif">I am ok with </font><font style=3D"border-bottom-color:rgb(34,34,=
34);border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(=
34,34,34);border-left-style:none;border-left-width:0px;border-right-color:r=
gb(34,34,34);border-right-style:none;border-right-width:0px;border-top-colo=
r:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0p=
x;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;paddin=
g-left:0px;padding-right:0px;padding-top:0px" face=3D"courier new,monospace=
">Number auto</font></span></div><div style=3D"background-color:transparent=
;border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-w=
idth:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left=
-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-=
right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border=
-top-width:0px;color:rgb(34,34,34);font-size:13px;font-style:normal;font-va=
riant:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;margin=
-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0=
px;padding-right:0px;padding-top:0px;text-align:left;text-decoration:none;t=
ext-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><sp=
an style=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);=
border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,3=
4,34);border-left-style:none;border-left-width:0px;border-right-color:rgb(3=
4,34,34);border-right-style:none;border-right-width:0px;border-top-color:rg=
b(34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);=
display:inline;float:none;font-size:13px;font-style:normal;font-variant:nor=
mal;font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px=
;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;paddin=
g-right:0px;padding-top:0px;text-align:left;text-decoration:none;text-inden=
t:0px;text-transform:none;white-space:normal;word-spacing:0px"><font style=
=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-botto=
m-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-l=
eft-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;bord=
er-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;bor=
der-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin=
-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:=
0px" face=3D"arial,sans-serif"><font face=3D"courier new,monospace"></font>=
<br></font></span></div><div style=3D"background-color:transparent;border-b=
ottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;=
border-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0p=
x;border-right-color:rgb(34,34,34);border-right-style:none;border-right-wid=
th:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-widt=
h:0px;color:rgb(34,34,34);font-size:13px;font-style:normal;font-variant:nor=
mal;font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px=
;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;paddin=
g-right:0px;padding-top:0px;text-align:left;text-decoration:none;text-inden=
t:0px;text-transform:none;white-space:normal;word-spacing:0px"><span style=
=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);border-b=
ottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);bo=
rder-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34)=
;border-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,=
34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);display:=
inline;float:none;font-size:13px;font-style:normal;font-variant:normal;font=
-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-=
right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:=
0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px;te=
xt-transform:none;white-space:normal;word-spacing:0px"><font style=3D"borde=
r-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0=
px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-width=
:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-right-=
width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-w=
idth:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;=
padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px" face=
=3D"arial,sans-serif">And I hope it will be upgraded to <font face=3D"couri=
er new,monospace">Number T </font>as it <i>dramatically</i> improves declar=
ations as one sees a type like he always did, granted not a concrete one</f=
ont></span></div><div style=3D"background-color:transparent;border-bottom-c=
olor:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-=
left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;borde=
r-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;=
border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;c=
olor:rgb(34,34,34);font-size:13px;font-style:normal;font-variant:normal;fon=
t-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin=
-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right=
:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px;t=
ext-transform:none;white-space:normal;word-spacing:0px"></div><div style=3D=
"background-color:transparent;border-bottom-color:rgb(34,34,34);border-bott=
om-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);borde=
r-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);bo=
rder-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34)=
;border-top-style:none;border-top-width:0px;color:rgb(34,34,34);font-size:1=
3px;font-style:normal;font-variant:normal;font-weight:400;letter-spacing:no=
rmal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padd=
ing-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-alig=
n:left;text-decoration:none;text-indent:0px;text-transform:none;white-space=
:normal;word-spacing:0px"><span style=3D"background-color:transparent;borde=
r-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0=
px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-width=
:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-right-=
width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-w=
idth:0px;color:rgb(34,34,34);display:inline;float:none;font-size:13px;font-=
style:normal;font-variant:normal;font-weight:400;letter-spacing:normal;marg=
in-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-botto=
m:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-align:left;te=
xt-decoration:none;text-indent:0px;text-transform:none;white-space:normal;w=
ord-spacing:0px"><font style=3D"border-bottom-color:rgb(34,34,34);border-bo=
ttom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);bor=
der-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);=
border-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,3=
4);border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left=
:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;pa=
dding-right:0px;padding-top:0px" face=3D"arial,sans-serif"><br></font></spa=
n></div><div style=3D"background-color:transparent;border-bottom-color:rgb(=
34,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-colo=
r:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-right-c=
olor:rgb(34,34,34);border-right-style:none;border-right-width:0px;border-to=
p-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;color:rgb(=
34,34,34);font-size:13px;font-style:normal;font-variant:normal;font-weight:=
400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0p=
x;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padd=
ing-top:0px;text-align:left;text-decoration:none;text-indent:0px;text-trans=
form:none;white-space:normal;word-spacing:0px"><span style=3D"background-co=
lor:transparent;border-bottom-color:rgb(34,34,34);border-bottom-style:none;=
border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:n=
one;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-sty=
le:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-st=
yle:none;border-top-width:0px;color:rgb(34,34,34);display:inline;float:none=
;font-size:13px;font-style:normal;font-variant:normal;font-weight:400;lette=
r-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-=
top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0=
px;text-align:left;text-decoration:none;text-indent:0px;text-transform:none=
;white-space:normal;word-spacing:0px"><font style=3D"border-bottom-color:rg=
b(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-co=
lor:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-right=
-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;border-=
top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-b=
ottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0p=
x;padding-left:0px;padding-right:0px;padding-top:0px" face=3D"courier new,m=
onospace">[](All Args&&... args) { f(std::forward<Args>(args)=
....)<wbr>; }</font></span></div><div style=3D"background-color:transparent;=
border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-wi=
dth:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-=
width:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-r=
ight-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-=
top-width:0px;color:rgb(34,34,34);font-size:13px;font-style:normal;font-var=
iant:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-=
left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0p=
x;padding-right:0px;padding-top:0px;text-align:left;text-decoration:none;te=
xt-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><spa=
n style=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);b=
order-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34=
,34);border-left-style:none;border-left-width:0px;border-right-color:rgb(34=
,34,34);border-right-style:none;border-right-width:0px;border-top-color:rgb=
(34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);d=
isplay:inline;float:none;font-size:13px;font-style:normal;font-variant:norm=
al;font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;=
margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding=
-right:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent=
:0px;text-transform:none;white-space:normal;word-spacing:0px"><font style=
=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-botto=
m-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-l=
eft-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;bord=
er-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;bor=
der-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin=
-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:=
0px" face=3D"courier new,monospace"><br></font></span></div><div style=3D"m=
argin:0px;padding:0px;border:0px rgb(34,34,34);text-align:left;color:rgb(34=
,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;font-size=
:13px;font-variant:normal;font-weight:400;text-decoration:none;word-spacing=
:0px;white-space:normal;background-color:transparent"><span style=3D"margin=
:0px;padding:0px;border:0px rgb(34,34,34);text-align:left;color:rgb(34,34,3=
4);text-transform:none;text-indent:0px;letter-spacing:normal;font-size:13px=
;font-variant:normal;font-weight:400;text-decoration:none;word-spacing:0px;=
display:inline;white-space:normal;float:none;background-color:transparent">=
<font style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;b=
order-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:no=
ne;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-styl=
e:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-sty=
le:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right=
:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;p=
adding-top:0px" face=3D"arial,sans-serif"><i>I will take that before <b>ANY=
</b> other form!</i></font></span></div></div></div></div></blockquote><div=
>It has been mentioned somewhere that we can and probably should pursue a s=
yntax to imbue <span style=3D"font-family:monospace,monospace">auto</span> =
with the ability to introduce a name for the type deduced (or a name for th=
e invented template parameter in deduction contexts). So, the upgrade is no=
t limited to <span style=3D"font-family:monospace,monospace">Concept auto</=
span> (and can be pursued separately).<br></div></div></div></div><span>
</span></blockquote><div><br></div></div></div><div>But if we end up with a=
uto{X} being the syntax for naming the deduced type, and Concept auto{X},..=
..</div><div>maybe just go with Herb's proposal now.</div></div></div></=
div></blockquote></span><div>It's similar in syntax with respect to the=
effects of Parts 1 and 2 of P1141, but the position in Herb's paper ov=
er what Part 3 of P1141 covers was a deal breaker for some.<br></div></div>=
</div></div></blockquote><div><br></div><div>That was the best part of Herb=
's paper :-)</div><div> Ah well.</div><div><br></div><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex"><div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gma=
il_quote"><div><br></div><div>-- HT<br></div><br clear=3D"all"></div></div>=
</div></blockquote></div><br>-- <br><div class=3D"gmail_signature" data-sma=
rtmail=3D"gmail_signature"><div dir=3D"ltr"><div>Be seeing you,<br></div>To=
ny<br></div></div>
</div></div>
<p></p>
-- <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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CAOHCbis_9wdqpsmcejSDmf8w86wvRvG6vnFT=
KuqfNQ1Bi7VsJA%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">htt=
ps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAOHCbis_9wdqpsmc=
ejSDmf8w86wvRvG6vnFTKuqfNQ1Bi7VsJA%40mail.gmail.com</a>.<br />
--000000000000f199e50570e9229f--
.
Author: mihailnajdenov@gmail.com
Date: Sat, 14 Jul 2018 00:18:52 -0700 (PDT)
Raw View
------=_Part_129468_57727616.1531552733060
Content-Type: multipart/alternative;
boundary="----=_Part_129469_2119421183.1531552733062"
------=_Part_129469_2119421183.1531552733062
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
On Friday, July 13, 2018 at 10:45:59 AM UTC+3, mihailn...@gmail.com wrote:
>
>
>
> On Friday, July 13, 2018 at 1:48:04 AM UTC+3, Zhihao Yuan wrote:
>>
>> From: mihailn...@gmail.com <mihailn...@gmail.com>=20
>> Sent: Thursday, July 12, 2018 4:06 PM=20
>> >>>=20
>> >>> namespace n {=20
>> >>>=20
>> >>> StandardLayoutType T; //< allowed?=20
>> >>>=20
>> >> That's the kind of bug that I'm looking for...=20
>> >> It shouldn't be allowed.=20
>> >=20
>> > Any reason why? Except confusion and probably impl difficulties.=20
>>
>> Let's say you have this declaration in a header and include=20
>> it in two different translation units, then essentially you=20
>> got a "poor man's namespace template." The outcome of=20
>> enforcing T to be deduced to the same type across=20
>> translation units isn't useful enough to justify its complexity.=20
>>
>> I think these declarations should appear only in block scopes,=20
>> and have no linkage, as same as constrained-parameters.=20
>>
>
> Hum, the way I see it the type must be the same only in a given template=
=20
> instantiation not across all instantiations
>
> namespace a {
>
> Number Num;
>
> template<Something S>
> auto func()
> {
> Num n =3D S.do();
>
> Num p =3D . . .;
>
> // Num will be the same for func, lets say an int
> }
>
> template<SomethingElse S>
> auto func()
> {
> Num n =3D S.do();
>
> // Num will be the same for func - a float=20
> }
> }//< a
>
> // other TU
>
> #include <a.h>
>
> namespace b {
>
> template<Something S>
> auto func()
> {
> a::Num n =3D S.do();
>
> // a::Num will be short
> }
>
> }//< b
>
> I don't think it is good idea, but I don't see much of a problem.
>
> Now, if=20
>
> namespace a {
>
> Number Num;
> const N var =3D 1;
>
> }//<a
>
> and
>
> #include <a.h>
>
> namespace a {
> const N var2 =3D "string";
> }
>
> or
>
> namespace b {
> const a::N var =3D "string";
> }
>
> Will fail - N is an int.
>
> The point is - the name can cross scopes, much like always, bounding=20
> (template instantiation) can't=20
> That is the same as in the constexpr if case in local scope - same name=
=20
> different instantiations, different bounding=20
>
>
>
> Of course none of this is recommended practice, much like global variable=
s=20
> are bad
>
> For example
>
> namespace a {
>
> Number Num;
>
> }//<a
> =20
> namespace b {
> const a::N bvar =3D 1;
> }
>
> now, if we include a file that
>
> namespace a {
>
> const a::N somevar =3D 1.f;
>
> }//<a
>
> BEFORE b, then we "silently" change bvar to float
>
>
> This is one of the reasons I prefer to *not* let late bounding *just yet*=
..
>
> I see no material benefit, yet multiple issues.
>
> I am ok with Number auto
>
> And I hope it will be upgraded to Number T as it *dramatically* improves=
=20
> declarations as one sees a type like he always did, granted not a concret=
e=20
> one
>
> [](All Args&&... args) { f(std::forward<Args>(args)...); }
>
> *I will take that before ANY other form!*
>
>
>
Oh, boy, *I just remembered*:
using Randon_access_iterator{Ran};=20
// ...=20
void sort(Ran p, Ran q);
using Forward_iterator{For};
using Forward_iterator{For2};=20
using Output_iterator{Out};=20
// ...=20
void merge(For p, For q, For2 p2, For2 q2, Out p);
The syntax of this using-declaration is: using name-of-concept {=20
identifier-list };=20
So, we have a very terse syntax that minimizes repetition and can=20
distinguish between two uses of the same type of a concept and=20
(potentially) two di=EF=AC=80erent type of a concept.=20
In case, you lost track of the reason for going in this direction: This=20
terse syntax can be used for lambdas, where the old (verbose) syntax is=20
either impossible or so verbose that it would encourage the use of=20
unconstrained lambdas.
For example:=20
[] (For p, For q, For2 p2, For2 q2, Out p) { /=E2=88=97 do some merging ...=
=E2=88=97/ }
*It is from:*=20
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3580.pdf
*Sound familiar? :)*
--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/840eecc5-5aae-40d8-b965-7f74197a3970%40isocpp.or=
g.
------=_Part_129469_2119421183.1531552733062
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><br><br>On Friday, July 13, 2018 at 10:45:59 AM UTC+3, mih=
ailn...@gmail.com wrote:<blockquote class=3D"gmail_quote" style=3D"margin: =
0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div d=
ir=3D"ltr"><br><br>On Friday, July 13, 2018 at 1:48:04 AM UTC+3, Zhihao Yua=
n wrote:<blockquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8=
ex;border-left:1px #ccc solid;padding-left:1ex">From: <a rel=3D"nofollow">m=
ihailn...@gmail.com</a> <<a rel=3D"nofollow">mihailn...@gmail.com</a>>=
;=20
<br>Sent: Thursday, July 12, 2018 4:06 PM
<br>>>>=20
<br>>>> namespace n {=20
<br>>>>=20
<br>>>> StandardLayoutType T; //< allowed?=20
<br>>>>=20
<br>>> That's the kind of bug that I'm looking for...=20
<br>>> It shouldn't be allowed.=20
<br>>=20
<br>> Any reason why? Except confusion and probably impl difficulties.
<br>
<br>Let's say you have this declaration in a header and include
<br>it in two different translation units, then essentially you
<br>got a "poor man's namespace template." The outcome of
<br>enforcing T to be deduced to the same type across
<br>translation units isn't useful enough to justify its complexity.
<br>
<br>I think these declarations should appear only in block scopes,
<br>and have no linkage, as same as constrained-parameters.
<br></blockquote><div><br></div><div>Hum, the way I see it the type must be=
the same only in a given template instantiation not across all=C2=A0=C2=A0=
<span style=3D"display:inline!important;float:none;background-color:transpa=
rent;color:rgb(34,34,34);font-family:"Arial","Helvetica"=
;,sans-serif;font-size:13px;font-style:normal;font-variant:normal;font-weig=
ht:400;letter-spacing:normal;text-align:left;text-decoration:none;text-inde=
nt:0px;text-transform:none;white-space:normal;word-spacing:0px">instantiati=
ons</span></div><div><span style=3D"text-align:left;color:rgb(34,34,34);tex=
t-transform:none;text-indent:0px;letter-spacing:normal;font-size:13px;font-=
style:normal;font-variant:normal;font-weight:400;text-decoration:none;word-=
spacing:0px;display:inline!important;white-space:normal;float:none;backgrou=
nd-color:transparent"><font face=3D"courier new,monospace"></font><br></spa=
n></div><div><span style=3D"text-align:left;color:rgb(34,34,34);text-transf=
orm:none;text-indent:0px;letter-spacing:normal;font-size:13px;font-style:no=
rmal;font-variant:normal;font-weight:400;text-decoration:none;word-spacing:=
0px;display:inline!important;white-space:normal;float:none;background-color=
:transparent"><font face=3D"courier new,monospace">namespace a {</font></sp=
an></div><div><span style=3D"text-align:left;color:rgb(34,34,34);text-trans=
form:none;text-indent:0px;letter-spacing:normal;font-size:13px;font-style:n=
ormal;font-variant:normal;font-weight:400;text-decoration:none;word-spacing=
:0px;display:inline!important;white-space:normal;float:none;background-colo=
r:transparent"><font face=3D"courier new,monospace"></font><br></span></div=
><div><span style=3D"text-align:left;color:rgb(34,34,34);text-transform:non=
e;text-indent:0px;letter-spacing:normal;font-size:13px;font-style:normal;fo=
nt-variant:normal;font-weight:400;text-decoration:none;word-spacing:0px;dis=
play:inline!important;white-space:normal;float:none;background-color:transp=
arent"><font face=3D"courier new,monospace">Number Num;</font></span></div>=
<div><span style=3D"text-align:left;color:rgb(34,34,34);text-transform:none=
;text-indent:0px;letter-spacing:normal;font-size:13px;font-style:normal;fon=
t-variant:normal;font-weight:400;text-decoration:none;word-spacing:0px;disp=
lay:inline!important;white-space:normal;float:none;background-color:transpa=
rent"><font face=3D"courier new,monospace"></font><br></span></div><div><sp=
an style=3D"text-align:left;color:rgb(34,34,34);text-transform:none;text-in=
dent:0px;letter-spacing:normal;font-size:13px;font-style:normal;font-varian=
t:normal;font-weight:400;text-decoration:none;word-spacing:0px;display:inli=
ne!important;white-space:normal;float:none;background-color:transparent"><f=
ont face=3D"courier new,monospace">template<Something S></font></span=
></div><div><span style=3D"text-align:left;color:rgb(34,34,34);text-transfo=
rm:none;text-indent:0px;letter-spacing:normal;font-size:13px;font-style:nor=
mal;font-variant:normal;font-weight:400;text-decoration:none;word-spacing:0=
px;display:inline!important;white-space:normal;float:none;background-color:=
transparent"><font face=3D"courier new,monospace">auto func()</font></span>=
</div><div><span style=3D"text-align:left;color:rgb(34,34,34);text-transfor=
m:none;text-indent:0px;letter-spacing:normal;font-size:13px;font-style:norm=
al;font-variant:normal;font-weight:400;text-decoration:none;word-spacing:0p=
x;display:inline!important;white-space:normal;float:none;background-color:t=
ransparent"><font face=3D"courier new,monospace">{</font></span></div><div>=
<span style=3D"text-align:left;color:rgb(34,34,34);text-transform:none;text=
-indent:0px;letter-spacing:normal;font-size:13px;font-style:normal;font-var=
iant:normal;font-weight:400;text-decoration:none;word-spacing:0px;display:i=
nline!important;white-space:normal;float:none;background-color:transparent"=
><font face=3D"courier new,monospace">=C2=A0 Num n =3D S.do();</font></span=
></div><div><span style=3D"text-align:left;color:rgb(34,34,34);text-transfo=
rm:none;text-indent:0px;letter-spacing:normal;font-size:13px;font-style:nor=
mal;font-variant:normal;font-weight:400;text-decoration:none;word-spacing:0=
px;display:inline!important;white-space:normal;float:none;background-color:=
transparent"><font face=3D"courier new,monospace"><br></font></span></div><=
div><span style=3D"text-align:left;color:rgb(34,34,34);text-transform:none;=
text-indent:0px;letter-spacing:normal;font-size:13px;font-style:normal;font=
-variant:normal;font-weight:400;text-decoration:none;word-spacing:0px;displ=
ay:inline!important;white-space:normal;float:none;background-color:transpar=
ent"><font face=3D"courier new,monospace">=C2=A0 Num p =3D . . .;</font></s=
pan></div><div><span style=3D"text-align:left;color:rgb(34,34,34);text-tran=
sform:none;text-indent:0px;letter-spacing:normal;font-size:13px;font-style:=
normal;font-variant:normal;font-weight:400;text-decoration:none;word-spacin=
g:0px;display:inline!important;white-space:normal;float:none;background-col=
or:transparent"><font face=3D"courier new,monospace"><br></font></span></di=
v><div><span style=3D"text-align:left;color:rgb(34,34,34);text-transform:no=
ne;text-indent:0px;letter-spacing:normal;font-size:13px;font-style:normal;f=
ont-variant:normal;font-weight:400;text-decoration:none;word-spacing:0px;di=
splay:inline!important;white-space:normal;float:none;background-color:trans=
parent"><font face=3D"courier new,monospace">=C2=A0 // Num will be the same=
for func, lets say an int</font></span></div><div><span style=3D"text-alig=
n:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spaci=
ng:normal;font-size:13px;font-style:normal;font-variant:normal;font-weight:=
400;text-decoration:none;word-spacing:0px;display:inline!important;white-sp=
ace:normal;float:none;background-color:transparent"><font face=3D"courier n=
ew,monospace">}</font></span></div><div><span style=3D"text-align:left;colo=
r:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;f=
ont-size:13px;font-style:normal;font-variant:normal;font-weight:400;text-de=
coration:none;word-spacing:0px;display:inline!important;white-space:normal;=
float:none;background-color:transparent"><font face=3D"courier new,monospac=
e"></font><br></span></div><div><span style=3D"text-align:left;color:rgb(34=
,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;font-size=
:13px;font-variant:normal;word-spacing:0px;display:inline!important;white-s=
pace:normal;float:none;background-color:transparent"><div><span><font face=
=3D"courier new,monospace" style=3D"border-bottom-color:rgb(34,34,34);borde=
r-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34)=
;border-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,=
34);border-right-style:none;border-right-width:0px;border-top-color:rgb(34,=
34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-=
left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0p=
x;padding-right:0px;padding-top:0px">template<SomethingElse S></font>=
</span></div><div><span><font face=3D"courier new,monospace" style=3D"borde=
r-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0=
px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-width=
:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-right-=
width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-w=
idth:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;=
padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px">auto=
func()</font></span></div><div><span><font face=3D"courier new,monospace" =
style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-=
bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;bor=
der-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:none=
;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:non=
e;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;m=
argin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding=
-top:0px">{</font></span></div><div><span><font face=3D"courier new,monospa=
ce" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;bor=
der-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none=
;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:=
none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-style=
:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0=
px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;pad=
ding-top:0px">=C2=A0 Num n =3D S.do();</font></span></div><div><span><font =
face=3D"courier new,monospace" style=3D"border-bottom-color:rgb(34,34,34);b=
order-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34=
,34);border-left-style:none;border-left-width:0px;border-right-color:rgb(34=
,34,34);border-right-style:none;border-right-width:0px;border-top-color:rgb=
(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;mar=
gin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-lef=
t:0px;padding-right:0px;padding-top:0px"><br></font></span></div><div><span=
><font face=3D"courier new,monospace" style=3D"border-bottom-color:rgb(34,3=
4,34);border-bottom-style:none;border-bottom-width:0px;border-left-color:rg=
b(34,34,34);border-left-style:none;border-left-width:0px;border-right-color=
:rgb(34,34,34);border-right-style:none;border-right-width:0px;border-top-co=
lor:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:=
0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padd=
ing-left:0px;padding-right:0px;padding-top:0px">=C2=A0 // Num will be the s=
ame for func - a float=C2=A0</font></span></div><div><span><font face=3D"co=
urier new,monospace" style=3D"border-bottom-color:rgb(34,34,34);border-bott=
om-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);borde=
r-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);bo=
rder-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34)=
;border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0=
px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padd=
ing-right:0px;padding-top:0px">}</font></span></div><div><span><font face=
=3D"courier new,monospace" style=3D"border-bottom-color:rgb(34,34,34);borde=
r-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34)=
;border-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,=
34);border-right-style:none;border-right-width:0px;border-top-color:rgb(34,=
34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-=
left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0p=
x;padding-right:0px;padding-top:0px">}//< a</font></span></div><div><b><=
/b><i></i><u></u><sub></sub><sup></sup><strike></strike><br></div><div><fon=
t face=3D"courier new,monospace">// other TU</font></div><div><font face=3D=
"courier new,monospace"><br></font></div><div><font face=3D"courier new,mon=
ospace">#include <a.h></font></div><div><font face=3D"courier new,mon=
ospace"><br></font></div><div><font face=3D"courier new,monospace">namespac=
e b {</font></div><div><font face=3D"courier new,monospace"><br></font></di=
v><div><font face=3D"courier new,monospace"><div><span style=3D"background-=
color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-style:non=
e;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style=
:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-s=
tyle:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-=
style:none;border-top-width:0px;color:rgb(34,34,34);display:inline;float:no=
ne;font-size:13px;font-style:normal;font-variant:normal;font-weight:400;let=
ter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margi=
n-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top=
:0px;text-align:left;text-decoration:none;text-indent:0px;text-transform:no=
ne;white-space:normal;word-spacing:0px"><font face=3D"courier new,monospace=
" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;borde=
r-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;b=
order-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:no=
ne;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:n=
one;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px=
;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;paddi=
ng-top:0px">template<Something S></font></span></div><div><span style=
=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);border-b=
ottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);bo=
rder-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34)=
;border-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,=
34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);display:=
inline;float:none;font-size:13px;font-style:normal;font-variant:normal;font=
-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-=
right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:=
0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px;te=
xt-transform:none;white-space:normal;word-spacing:0px"><font face=3D"courie=
r new,monospace" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-s=
tyle:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-le=
ft-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border=
-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bor=
der-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;m=
argin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-=
right:0px;padding-top:0px">auto func()</font></span></div><div><span style=
=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);border-b=
ottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);bo=
rder-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34)=
;border-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,=
34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);display:=
inline;float:none;font-size:13px;font-style:normal;font-variant:normal;font=
-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-=
right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:=
0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px;te=
xt-transform:none;white-space:normal;word-spacing:0px"><font face=3D"courie=
r new,monospace" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-s=
tyle:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-le=
ft-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border=
-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bor=
der-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;m=
argin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-=
right:0px;padding-top:0px">{</font></span></div><div><span style=3D"backgro=
und-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-style=
:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-s=
tyle:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-rig=
ht-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-=
top-style:none;border-top-width:0px;color:rgb(34,34,34);display:inline;floa=
t:none;font-size:13px;font-style:normal;font-variant:normal;font-weight:400=
;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;m=
argin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding=
-top:0px;text-align:left;text-decoration:none;text-indent:0px;text-transfor=
m:none;white-space:normal;word-spacing:0px"><font face=3D"courier new,monos=
pace" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;b=
order-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:no=
ne;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-styl=
e:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-sty=
le:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right=
:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;p=
adding-top:0px">=C2=A0 a::Num n =3D S.do();</font></span></div><div><span s=
tyle=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);bord=
er-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34=
);border-left-style:none;border-left-width:0px;border-right-color:rgb(34,34=
,34);border-right-style:none;border-right-width:0px;border-top-color:rgb(34=
,34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);disp=
lay:inline;float:none;font-size:13px;font-style:normal;font-variant:normal;=
font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;mar=
gin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-ri=
ght:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0p=
x;text-transform:none;white-space:normal;word-spacing:0px"><font face=3D"co=
urier new,monospace" style=3D"border-bottom-color:rgb(34,34,34);border-bott=
om-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);borde=
r-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);bo=
rder-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34)=
;border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0=
px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padd=
ing-right:0px;padding-top:0px"><br style=3D"border-bottom-color:rgb(34,34,3=
4);border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(3=
4,34,34);border-left-style:none;border-left-width:0px;border-right-color:rg=
b(34,34,34);border-right-style:none;border-right-width:0px;border-top-color=
:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px=
;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding=
-left:0px;padding-right:0px;padding-top:0px"></font></span></div><div><span=
style=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);bo=
rder-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,=
34);border-left-style:none;border-left-width:0px;border-right-color:rgb(34,=
34,34);border-right-style:none;border-right-width:0px;border-top-color:rgb(=
34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);di=
splay:inline;float:none;font-size:13px;font-style:normal;font-variant:norma=
l;font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;m=
argin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-=
right:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:=
0px;text-transform:none;white-space:normal;word-spacing:0px"><font face=3D"=
courier new,monospace" style=3D"border-bottom-color:rgb(34,34,34);border-bo=
ttom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);bor=
der-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);=
border-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,3=
4);border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left=
:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;pa=
dding-right:0px;padding-top:0px">=C2=A0 // a::Num will be short</font></spa=
n></div></font><div><font face=3D"courier new,monospace"><span style=3D"bac=
kground-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-s=
tyle:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-le=
ft-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border=
-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bor=
der-top-style:none;border-top-width:0px;color:rgb(34,34,34);display:inline;=
float:none;font-size:13px;font-style:normal;font-variant:normal;font-weight=
:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0=
px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;pad=
ding-top:0px;text-align:left;text-decoration:none;text-indent:0px;text-tran=
sform:none;white-space:normal;word-spacing:0px"><font face=3D"courier new,m=
onospace" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:no=
ne;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-styl=
e:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-=
style:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top=
-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-r=
ight:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0=
px;padding-top:0px">}</font></span></font></div><div><font face=3D"courier =
new,monospace"><br></font></div></div><div><font face=3D"courier new,monosp=
ace">}//< b</font></div><div><font face=3D"courier new,monospace"><br></=
font></div><div><font face=3D"arial,sans-serif">I don't think it is goo=
d idea, but I don't see much of a problem.</font></div><div><font face=
=3D"arial,sans-serif"><br></font></div></span></div><div><span style=3D"tex=
t-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter=
-spacing:normal;font-size:13px;font-style:normal;font-variant:normal;font-w=
eight:400;text-decoration:none;word-spacing:0px;display:inline!important;wh=
ite-space:normal;float:none;background-color:transparent">Now, if=C2=A0</sp=
an></div><div><span style=3D"text-align:left;color:rgb(34,34,34);text-trans=
form:none;text-indent:0px;letter-spacing:normal;font-size:13px;font-style:n=
ormal;font-variant:normal;font-weight:400;text-decoration:none;word-spacing=
:0px;display:inline!important;white-space:normal;float:none;background-colo=
r:transparent"><br></span></div><div><span style=3D"text-align:left;color:r=
gb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;font=
-size:13px;font-style:normal;font-variant:normal;font-weight:400;text-decor=
ation:none;word-spacing:0px;display:inline!important;white-space:normal;flo=
at:none;background-color:transparent"><font face=3D"courier new,monospace">=
namespace a {</font></span></div><div><span style=3D"text-align:left;color:=
rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;fon=
t-size:13px;font-style:normal;font-variant:normal;font-weight:400;text-deco=
ration:none;word-spacing:0px;display:inline!important;white-space:normal;fl=
oat:none;background-color:transparent"><font face=3D"courier new,monospace"=
><br></font></span></div><div><span style=3D"text-align:left;color:rgb(34,3=
4,34);text-transform:none;text-indent:0px;letter-spacing:normal;font-size:1=
3px;font-variant:normal;word-spacing:0px;display:inline!important;white-spa=
ce:normal;float:none;background-color:transparent"><font face=3D"courier ne=
w,monospace"><span style=3D"display:inline!important;float:none;background-=
color:transparent;color:rgb(34,34,34);font-family:courier new,monospace;fon=
t-size:13px;font-style:normal;font-variant:normal;font-weight:400;letter-sp=
acing:normal;text-align:left;text-decoration:none;text-indent:0px;text-tran=
sform:none;white-space:normal;word-spacing:0px">Number Num;</span><b></b><i=
></i><u></u><sub></sub><sup></sup><strike></strike></font></span></div><div=
><font face=3D"courier new,monospace">const N var =3D 1;</font></div><div><=
span style=3D"text-align:left;color:rgb(34,34,34);text-transform:none;text-=
indent:0px;letter-spacing:normal;font-size:13px;font-style:normal;font-vari=
ant:normal;font-weight:400;text-decoration:none;word-spacing:0px;display:in=
line!important;white-space:normal;float:none;background-color:transparent">=
<font face=3D"courier new,monospace"><b></b><i></i><u></u><sub></sub><sup><=
/sup><strike></strike><br></font></span></div><div><span style=3D"text-alig=
n:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spaci=
ng:normal;font-size:13px;font-style:normal;font-variant:normal;font-weight:=
400;text-decoration:none;word-spacing:0px;display:inline!important;white-sp=
ace:normal;float:none;background-color:transparent"><font face=3D"courier n=
ew,monospace">}//<a</font></span></div><div><span style=3D"text-align:le=
ft;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:n=
ormal;font-size:13px;font-style:normal;font-variant:normal;font-weight:400;=
text-decoration:none;word-spacing:0px;display:inline!important;white-space:=
normal;float:none;background-color:transparent"><font face=3D"courier new,m=
onospace"><br></font></span></div><div><span style=3D"text-align:left;color=
:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;fo=
nt-size:13px;font-style:normal;font-variant:normal;font-weight:400;text-dec=
oration:none;word-spacing:0px;display:inline!important;white-space:normal;f=
loat:none;background-color:transparent"><font face=3D"arial,sans-serif">and=
</font></span></div><div><span style=3D"text-align:left;color:rgb(34,34,34)=
;text-transform:none;text-indent:0px;letter-spacing:normal;font-size:13px;f=
ont-style:normal;font-variant:normal;font-weight:400;text-decoration:none;w=
ord-spacing:0px;display:inline!important;white-space:normal;float:none;back=
ground-color:transparent"><font face=3D"courier new,monospace"><font face=
=3D"arial,sans-serif"></font><br></font></span></div><div><span style=3D"te=
xt-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;lette=
r-spacing:normal;font-size:13px;font-style:normal;font-variant:normal;font-=
weight:400;text-decoration:none;word-spacing:0px;display:inline!important;w=
hite-space:normal;float:none;background-color:transparent"><font face=3D"co=
urier new,monospace">#include <a.h></font></span></div><div><span sty=
le=3D"text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0=
px;letter-spacing:normal;font-size:13px;font-style:normal;font-variant:norm=
al;font-weight:400;text-decoration:none;word-spacing:0px;display:inline!imp=
ortant;white-space:normal;float:none;background-color:transparent"><font fa=
ce=3D"courier new,monospace"><br></font></span></div><div><span style=3D"te=
xt-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;lette=
r-spacing:normal;font-size:13px;font-variant:normal;word-spacing:0px;displa=
y:inline!important;white-space:normal;float:none;background-color:transpare=
nt"><font face=3D"courier new,monospace"><span style=3D"display:inline!impo=
rtant;float:none;background-color:transparent;color:rgb(34,34,34);font-fami=
ly:courier new,monospace;font-size:13px;font-style:normal;font-variant:norm=
al;font-weight:400;letter-spacing:normal;text-align:left;text-decoration:no=
ne;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"=
>namespace a {</span></font></span></div><div><span style=3D"text-align:lef=
t;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:no=
rmal;font-size:13px;font-variant:normal;word-spacing:0px;display:inline!imp=
ortant;white-space:normal;float:none;background-color:transparent"><font fa=
ce=3D"courier new,monospace"><span style=3D"display:inline!important;float:=
none;background-color:transparent;color:rgb(34,34,34);font-family:courier n=
ew,monospace;font-size:13px;font-style:normal;font-variant:normal;font-weig=
ht:400;letter-spacing:normal;text-align:left;text-decoration:none;text-inde=
nt:0px;text-transform:none;white-space:normal;word-spacing:0px">const N var=
2 =3D "string";</span></font></span></div><div><span style=3D"tex=
t-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter=
-spacing:normal;font-size:13px;font-variant:normal;word-spacing:0px;display=
:inline!important;white-space:normal;float:none;background-color:transparen=
t"><font face=3D"courier new,monospace">}</font></span></div><div><span sty=
le=3D"text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0=
px;letter-spacing:normal;font-size:13px;font-style:normal;font-variant:norm=
al;font-weight:400;text-decoration:none;word-spacing:0px;display:inline!imp=
ortant;white-space:normal;float:none;background-color:transparent"><font fa=
ce=3D"courier new,monospace"><b></b><i></i><u></u><sub></sub><sup></sup><st=
rike></strike><br></font></span></div><div><span style=3D"text-align:left;c=
olor:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:norma=
l;font-size:13px;font-style:normal;font-variant:normal;font-weight:400;text=
-decoration:none;word-spacing:0px;display:inline!important;white-space:norm=
al;float:none;background-color:transparent"><font face=3D"arial,sans-serif"=
>or</font></span></div><div><span><font face=3D"courier new,monospace" styl=
e=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bott=
om-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-=
left-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;bor=
der-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;bo=
rder-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margi=
n-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top=
:0px"><br style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:no=
ne;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-styl=
e:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-=
style:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top=
-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-r=
ight:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0=
px;padding-top:0px"></font></span></div><div><div><span><font face=3D"couri=
er new,monospace" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-=
style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-l=
eft-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);borde=
r-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bo=
rder-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;=
margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding=
-right:0px;padding-top:0px"><span style=3D"background-color:transparent;bor=
der-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width=
:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-wid=
th:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-righ=
t-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top=
-width:0px;color:rgb(34,34,34);display:inline;float:none;font-family:courie=
r new,monospace;font-size:13px;font-style:normal;font-variant:normal;font-w=
eight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-ri=
ght:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0p=
x;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px;text=
-transform:none;white-space:normal;word-spacing:0px">namespace b {</span></=
font></span></div><div><span><font face=3D"courier new,monospace" style=3D"=
border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-wi=
dth:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-=
width:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-r=
ight-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-=
top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top=
:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px"=
><span style=3D"background-color:transparent;border-bottom-color:rgb(34,34,=
34);border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(=
34,34,34);border-left-style:none;border-left-width:0px;border-right-color:r=
gb(34,34,34);border-right-style:none;border-right-width:0px;border-top-colo=
r:rgb(34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,=
34);display:inline;float:none;font-family:courier new,monospace;font-size:1=
3px;font-style:normal;font-variant:normal;font-weight:400;letter-spacing:no=
rmal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padd=
ing-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-alig=
n:left;text-decoration:none;text-indent:0px;text-transform:none;white-space=
:normal;word-spacing:0px">const a::N var =3D "string";</span></fo=
nt></span></div><div><span><font face=3D"courier new,monospace" style=3D"bo=
rder-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-widt=
h:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-wi=
dth:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-rig=
ht-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-to=
p-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0=
px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px">}=
</font></span></div><b></b><i></i><u></u><sub></sub><sup></sup><strike></st=
rike><br></div><div>Will fail - N is an int.</div><div><br></div><div>The p=
oint is - the name can cross scopes, much like always, bounding (template i=
nstantiation) can't=C2=A0</div><div>That is the same as in the constexp=
r if case in local scope - same name different instantiations, different bo=
unding=C2=A0</div><div><br></div><div><br></div><div><br></div><div>Of cour=
se none of this is recommended practice, much like global variables are bad=
</div><div><br></div><div>For example</div><div><br></div><div><div><span><=
font face=3D"courier new,monospace" style=3D"border-bottom-color:rgb(34,34,=
34);border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(=
34,34,34);border-left-style:none;border-left-width:0px;border-right-color:r=
gb(34,34,34);border-right-style:none;border-right-width:0px;border-top-colo=
r:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0p=
x;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;paddin=
g-left:0px;padding-right:0px;padding-top:0px">namespace a {</font></span></=
div><div><span><font face=3D"courier new,monospace" style=3D"border-bottom-=
color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border=
-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;bord=
er-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0px=
;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;=
margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-b=
ottom:0px;padding-left:0px;padding-right:0px;padding-top:0px"><br style=3D"=
border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-wi=
dth:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-=
width:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-r=
ight-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-=
top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top=
:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px"=
></font></span></div><div><span><font face=3D"courier new,monospace" style=
=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-botto=
m-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-l=
eft-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;bord=
er-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;bor=
der-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin=
-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:=
0px"><span style=3D"background-color:transparent;border-bottom-color:rgb(34=
,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-color:=
rgb(34,34,34);border-left-style:none;border-left-width:0px;border-right-col=
or:rgb(34,34,34);border-right-style:none;border-right-width:0px;border-top-=
color:rgb(34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34=
,34,34);display:inline;float:none;font-family:courier new,monospace;font-si=
ze:13px;font-style:normal;font-variant:normal;font-weight:400;letter-spacin=
g:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;=
padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-=
align:left;text-decoration:none;text-indent:0px;text-transform:none;white-s=
pace:normal;word-spacing:0px">Number Num;</span></font></span><br></div><di=
v><span><font face=3D"courier new,monospace" style=3D"border-bottom-color:r=
gb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-c=
olor:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-righ=
t-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;border=
-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-=
bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0=
px;padding-left:0px;padding-right:0px;padding-top:0px"><b style=3D"border-b=
ottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;=
border-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0p=
x;border-right-color:rgb(34,34,34);border-right-style:none;border-right-wid=
th:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-widt=
h:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;pad=
ding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px"></b><i =
style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-=
bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;bor=
der-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:none=
;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:non=
e;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;m=
argin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding=
-top:0px"></i><u style=3D"border-bottom-color:rgb(34,34,34);border-bottom-s=
tyle:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-le=
ft-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border=
-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bor=
der-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;m=
argin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-=
right:0px;padding-top:0px"></u><sub style=3D"border-bottom-color:rgb(34,34,=
34);border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(=
34,34,34);border-left-style:none;border-left-width:0px;border-right-color:r=
gb(34,34,34);border-right-style:none;border-right-width:0px;border-top-colo=
r:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0p=
x;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;paddin=
g-left:0px;padding-right:0px;padding-top:0px"></sub><sup style=3D"border-bo=
ttom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;b=
order-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px=
;border-right-color:rgb(34,34,34);border-right-style:none;border-right-widt=
h:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width=
:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padd=
ing-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px"></sup><s=
trike style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;b=
order-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:no=
ne;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-styl=
e:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-sty=
le:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right=
:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;p=
adding-top:0px"></strike><br style=3D"border-bottom-color:rgb(34,34,34);bor=
der-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,3=
4);border-left-style:none;border-left-width:0px;border-right-color:rgb(34,3=
4,34);border-right-style:none;border-right-width:0px;border-top-color:rgb(3=
4,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;margi=
n-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:=
0px;padding-right:0px;padding-top:0px"></font></span></div><div><span><font=
face=3D"courier new,monospace" style=3D"border-bottom-color:rgb(34,34,34);=
border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,3=
4,34);border-left-style:none;border-left-width:0px;border-right-color:rgb(3=
4,34,34);border-right-style:none;border-right-width:0px;border-top-color:rg=
b(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;ma=
rgin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-le=
ft:0px;padding-right:0px;padding-top:0px">}//<a</font></span><br></div><=
/div><div>=C2=A0<div><span style=3D"background-color:transparent;border-bot=
tom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;bo=
rder-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;=
border-right-color:rgb(34,34,34);border-right-style:none;border-right-width=
:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:=
0px;color:rgb(34,34,34);display:inline;float:none;font-size:13px;font-style=
:normal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-bo=
ttom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px=
;padding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-de=
coration:none;text-indent:0px;text-transform:none;white-space:normal;word-s=
pacing:0px"><font face=3D"courier new,monospace" style=3D"border-bottom-col=
or:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-le=
ft-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-=
right-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;bo=
rder-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;mar=
gin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bott=
om:0px;padding-left:0px;padding-right:0px;padding-top:0px"><span style=3D"b=
ackground-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom=
-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-=
left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);bord=
er-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);b=
order-top-style:none;border-top-width:0px;color:rgb(34,34,34);display:inlin=
e;float:none;font-family:courier new,monospace;font-size:13px;font-style:no=
rmal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-botto=
m:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;pa=
dding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-decor=
ation:none;text-indent:0px;text-transform:none;white-space:normal;word-spac=
ing:0px">namespace b {</span></font></span></div><div><span style=3D"backgr=
ound-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-styl=
e:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-=
style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-ri=
ght-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);border=
-top-style:none;border-top-width:0px;color:rgb(34,34,34);display:inline;flo=
at:none;font-size:13px;font-style:normal;font-variant:normal;font-weight:40=
0;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;=
margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;paddin=
g-top:0px;text-align:left;text-decoration:none;text-indent:0px;text-transfo=
rm:none;white-space:normal;word-spacing:0px"><font face=3D"courier new,mono=
space" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;=
border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:n=
one;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-sty=
le:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-st=
yle:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-righ=
t:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;=
padding-top:0px"><span style=3D"background-color:transparent;border-bottom-=
color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border=
-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;bord=
er-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0px=
;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;=
color:rgb(34,34,34);display:inline;float:none;font-family:courier new,monos=
pace;font-size:13px;font-style:normal;font-variant:normal;font-weight:400;l=
etter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;mar=
gin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-t=
op:0px;text-align:left;text-decoration:none;text-indent:0px;text-transform:=
none;white-space:normal;word-spacing:0px">const a::N bvar =3D 1;</span></fo=
nt></span></div><div><span style=3D"background-color:transparent;border-bot=
tom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;bo=
rder-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;=
border-right-color:rgb(34,34,34);border-right-style:none;border-right-width=
:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:=
0px;color:rgb(34,34,34);display:inline;float:none;font-size:13px;font-style=
:normal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-bo=
ttom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px=
;padding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-de=
coration:none;text-indent:0px;text-transform:none;white-space:normal;word-s=
pacing:0px"><font face=3D"courier new,monospace" style=3D"border-bottom-col=
or:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-le=
ft-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-=
right-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;bo=
rder-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;mar=
gin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bott=
om:0px;padding-left:0px;padding-right:0px;padding-top:0px">}</font></span><=
/div><b></b><i></i><u></u><sub></sub><sup></sup><strike></strike><br></div>=
<div>now, if we include a file that</div><div><br></div><div><div><div styl=
e=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);border-=
bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);b=
order-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34=
);border-right-style:none;border-right-width:0px;border-top-color:rgb(34,34=
,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);font-si=
ze:13px;font-style:normal;font-variant:normal;font-weight:400;letter-spacin=
g:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;=
padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-=
align:left;text-decoration:none;text-indent:0px;text-transform:none;white-s=
pace:normal;word-spacing:0px"><span style=3D"background-color:transparent;b=
order-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-wid=
th:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-w=
idth:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-ri=
ght-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-t=
op-width:0px;color:rgb(34,34,34);display:inline;float:none;font-size:13px;f=
ont-style:normal;font-variant:normal;font-weight:400;letter-spacing:normal;=
margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-b=
ottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-align:lef=
t;text-decoration:none;text-indent:0px;text-transform:none;white-space:norm=
al;word-spacing:0px"><font face=3D"courier new,monospace" style=3D"border-b=
ottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;=
border-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0p=
x;border-right-color:rgb(34,34,34);border-right-style:none;border-right-wid=
th:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-widt=
h:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;pad=
ding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px">namespa=
ce a {</font></span></div><div style=3D"background-color:transparent;border=
-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0p=
x;border-left-color:rgb(34,34,34);border-left-style:none;border-left-width:=
0px;border-right-color:rgb(34,34,34);border-right-style:none;border-right-w=
idth:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-wi=
dth:0px;color:rgb(34,34,34);font-size:13px;font-style:normal;font-variant:n=
ormal;font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0=
px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padd=
ing-right:0px;padding-top:0px;text-align:left;text-decoration:none;text-ind=
ent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span styl=
e=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);border-=
bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);b=
order-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34=
);border-right-style:none;border-right-width:0px;border-top-color:rgb(34,34=
,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);display=
:inline;float:none;font-size:13px;font-style:normal;font-variant:normal;fon=
t-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin=
-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right=
:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px;t=
ext-transform:none;white-space:normal;word-spacing:0px"><font face=3D"couri=
er new,monospace" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-=
style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-l=
eft-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);borde=
r-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bo=
rder-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;=
margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding=
-right:0px;padding-top:0px"><br style=3D"border-bottom-color:rgb(34,34,34);=
border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,3=
4,34);border-left-style:none;border-left-width:0px;border-right-color:rgb(3=
4,34,34);border-right-style:none;border-right-width:0px;border-top-color:rg=
b(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;ma=
rgin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-le=
ft:0px;padding-right:0px;padding-top:0px"></font></span></div><div style=3D=
"margin:0px;padding:0px;border:0px rgb(34,34,34);text-align:left;color:rgb(=
34,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;font-si=
ze:13px;font-variant:normal;word-spacing:0px;white-space:normal;background-=
color:transparent"><span style=3D"margin:0px;padding:0px;border:0px rgb(34,=
34,34);text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:=
0px;letter-spacing:normal;font-size:13px;font-variant:normal;word-spacing:0=
px;display:inline;white-space:normal;float:none;background-color:transparen=
t"><font face=3D"courier new,monospace" style=3D"border-bottom-color:rgb(34=
,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-color:=
rgb(34,34,34);border-left-style:none;border-left-width:0px;border-right-col=
or:rgb(34,34,34);border-right-style:none;border-right-width:0px;border-top-=
color:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-botto=
m:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;pa=
dding-left:0px;padding-right:0px;padding-top:0px"><span style=3D"margin:0px=
;padding:0px;border:0px rgb(34,34,34);text-align:left;color:rgb(34,34,34);t=
ext-transform:none;text-indent:0px;letter-spacing:normal;font-family:courie=
r new,monospace;font-size:13px;font-variant:normal;word-spacing:0px;display=
:inline;white-space:normal;float:none;background-color:transparent"><span s=
tyle=3D"display:inline!important;float:none;background-color:transparent;co=
lor:rgb(34,34,34);font-family:courier new,monospace;font-size:13px;font-sty=
le:normal;font-variant:normal;font-weight:400;letter-spacing:normal;text-al=
ign:left;text-decoration:none;text-indent:0px;text-transform:none;white-spa=
ce:normal;word-spacing:0px">const a::N somevar =3D 1.f;</span></span></font=
></span><br style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:=
none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-st=
yle:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-righ=
t-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-t=
op-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin=
-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right=
:0px;padding-top:0px"></div><div style=3D"background-color:transparent;bord=
er-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:=
0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-widt=
h:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-right=
-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-=
width:0px;color:rgb(34,34,34);font-size:13px;font-style:normal;font-variant=
:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left=
:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;pa=
dding-right:0px;padding-top:0px;text-align:left;text-decoration:none;text-i=
ndent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span st=
yle=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);borde=
r-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34)=
;border-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,=
34);border-right-style:none;border-right-width:0px;border-top-color:rgb(34,=
34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);displ=
ay:inline;float:none;font-size:13px;font-style:normal;font-variant:normal;f=
ont-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;marg=
in-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-rig=
ht:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px=
;text-transform:none;white-space:normal;word-spacing:0px"><font face=3D"cou=
rier new,monospace" style=3D"border-bottom-color:rgb(34,34,34);border-botto=
m-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border=
-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);bor=
der-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);=
border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0p=
x;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;paddi=
ng-right:0px;padding-top:0px"><b style=3D"border-bottom-color:rgb(34,34,34)=
;border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,=
34,34);border-left-style:none;border-left-width:0px;border-right-color:rgb(=
34,34,34);border-right-style:none;border-right-width:0px;border-top-color:r=
gb(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;m=
argin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-l=
eft:0px;padding-right:0px;padding-top:0px"></b><i style=3D"border-bottom-co=
lor:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-l=
eft-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;border=
-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;b=
order-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;ma=
rgin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bot=
tom:0px;padding-left:0px;padding-right:0px;padding-top:0px"></i><u style=3D=
"border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-w=
idth:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left=
-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-=
right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border=
-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-to=
p:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px=
"></u><sub style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:n=
one;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-sty=
le:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-right=
-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-to=
p-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-=
right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:=
0px;padding-top:0px"></sub><sup style=3D"border-bottom-color:rgb(34,34,34);=
border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,3=
4,34);border-left-style:none;border-left-width:0px;border-right-color:rgb(3=
4,34,34);border-right-style:none;border-right-width:0px;border-top-color:rg=
b(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;ma=
rgin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-le=
ft:0px;padding-right:0px;padding-top:0px"></sup><strike style=3D"border-bot=
tom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;bo=
rder-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;=
border-right-color:rgb(34,34,34);border-right-style:none;border-right-width=
:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:=
0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;paddi=
ng-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px"></strike>=
<b></b><i></i><u></u><sub></sub><sup></sup><strike></strike><br style=3D"bo=
rder-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-widt=
h:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-wi=
dth:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-rig=
ht-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-to=
p-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0=
px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px"><=
/font></span></div><div style=3D"background-color:transparent;border-bottom=
-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;borde=
r-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;bor=
der-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0p=
x;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px=
;color:rgb(34,34,34);font-size:13px;font-style:normal;font-variant:normal;f=
ont-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;marg=
in-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-rig=
ht:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px=
;text-transform:none;white-space:normal;word-spacing:0px"><span style=3D"ba=
ckground-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-=
style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-l=
eft-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);borde=
r-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bo=
rder-top-style:none;border-top-width:0px;color:rgb(34,34,34);display:inline=
;float:none;font-size:13px;font-style:normal;font-variant:normal;font-weigh=
t:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:=
0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;pa=
dding-top:0px;text-align:left;text-decoration:none;text-indent:0px;text-tra=
nsform:none;white-space:normal;word-spacing:0px"><font face=3D"courier new,=
monospace" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:n=
one;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-sty=
le:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-right=
-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-to=
p-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-=
right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:=
0px;padding-top:0px">}//<a</font></span></div><div style=3D"background-c=
olor:transparent;border-bottom-color:rgb(34,34,34);border-bottom-style:none=
;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:=
none;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-st=
yle:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-s=
tyle:none;border-top-width:0px;color:rgb(34,34,34);font-size:13px;font-styl=
e:normal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-b=
ottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0p=
x;padding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-d=
ecoration:none;text-indent:0px;text-transform:none;white-space:normal;word-=
spacing:0px"><span style=3D"background-color:transparent;border-bottom-colo=
r:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-lef=
t-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-r=
ight-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;bor=
der-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;colo=
r:rgb(34,34,34);display:inline;float:none;font-size:13px;font-style:normal;=
font-variant:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px=
;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding=
-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-decoration=
:none;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0=
px"><font face=3D"courier new,monospace" style=3D"border-bottom-color:rgb(3=
4,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-color=
:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-right-co=
lor:rgb(34,34,34);border-right-style:none;border-right-width:0px;border-top=
-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-bott=
om:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;p=
adding-left:0px;padding-right:0px;padding-top:0px"><br></font></span></div>=
<div style=3D"background-color:transparent;border-bottom-color:rgb(34,34,34=
);border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34=
,34,34);border-left-style:none;border-left-width:0px;border-right-color:rgb=
(34,34,34);border-right-style:none;border-right-width:0px;border-top-color:=
rgb(34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34=
);font-size:13px;font-style:normal;font-variant:normal;font-weight:400;lett=
er-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin=
-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:=
0px;text-align:left;text-decoration:none;text-indent:0px;text-transform:non=
e;white-space:normal;word-spacing:0px"><span style=3D"background-color:tran=
sparent;border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-b=
ottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;bord=
er-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;=
border-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none=
;border-top-width:0px;color:rgb(34,34,34);display:inline;float:none;font-si=
ze:13px;font-style:normal;font-variant:normal;font-weight:400;letter-spacin=
g:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;=
padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-=
align:left;text-decoration:none;text-indent:0px;text-transform:none;white-s=
pace:normal;word-spacing:0px"><font face=3D"arial,sans-serif" style=3D"bord=
er-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:=
0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-widt=
h:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-right=
-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-=
width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px=
;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px">BEF=
ORE b, then we "silently" change bvar to </font><font face=3D"cou=
rier new,monospace" style=3D"border-bottom-color:rgb(34,34,34);border-botto=
m-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border=
-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);bor=
der-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);=
border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0p=
x;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;paddi=
ng-right:0px;padding-top:0px">float</font></span></div><div style=3D"backgr=
ound-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-styl=
e:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-=
style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-ri=
ght-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);border=
-top-style:none;border-top-width:0px;color:rgb(34,34,34);font-size:13px;fon=
t-style:normal;font-variant:normal;font-weight:400;letter-spacing:normal;ma=
rgin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bot=
tom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-align:left;=
text-decoration:none;text-indent:0px;text-transform:none;white-space:normal=
;word-spacing:0px"><span style=3D"background-color:transparent;border-botto=
m-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;bord=
er-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;bo=
rder-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0=
px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0p=
x;color:rgb(34,34,34);display:inline;float:none;font-size:13px;font-style:n=
ormal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-bott=
om:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;p=
adding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-deco=
ration:none;text-indent:0px;text-transform:none;white-space:normal;word-spa=
cing:0px"><font face=3D"arial,sans-serif" style=3D"border-bottom-color:rgb(=
34,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-colo=
r:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-right-c=
olor:rgb(34,34,34);border-right-style:none;border-right-width:0px;border-to=
p-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-bot=
tom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;=
padding-left:0px;padding-right:0px;padding-top:0px"><font face=3D"courier n=
ew,monospace"></font><br></font></span></div><div style=3D"background-color=
:transparent;border-bottom-color:rgb(34,34,34);border-bottom-style:none;bor=
der-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none=
;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:=
none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-style=
:none;border-top-width:0px;color:rgb(34,34,34);font-size:13px;font-style:no=
rmal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-botto=
m:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;pa=
dding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-decor=
ation:none;text-indent:0px;text-transform:none;white-space:normal;word-spac=
ing:0px"><span style=3D"background-color:transparent;border-bottom-color:rg=
b(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-co=
lor:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-right=
-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;border-=
top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;color:rg=
b(34,34,34);display:inline;float:none;font-size:13px;font-style:normal;font=
-variant:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;mar=
gin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-lef=
t:0px;padding-right:0px;padding-top:0px;text-align:left;text-decoration:non=
e;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">=
<font face=3D"arial,sans-serif" style=3D"border-bottom-color:rgb(34,34,34);=
border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,3=
4,34);border-left-style:none;border-left-width:0px;border-right-color:rgb(3=
4,34,34);border-right-style:none;border-right-width:0px;border-top-color:rg=
b(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;ma=
rgin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-le=
ft:0px;padding-right:0px;padding-top:0px"><br></font></span></div><div styl=
e=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);border-=
bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);b=
order-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34=
);border-right-style:none;border-right-width:0px;border-top-color:rgb(34,34=
,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);font-si=
ze:13px;font-style:normal;font-variant:normal;font-weight:400;letter-spacin=
g:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;=
padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-=
align:left;text-decoration:none;text-indent:0px;text-transform:none;white-s=
pace:normal;word-spacing:0px"><span style=3D"background-color:transparent;b=
order-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-wid=
th:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-w=
idth:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-ri=
ght-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-t=
op-width:0px;color:rgb(34,34,34);display:inline;float:none;font-size:13px;f=
ont-style:normal;font-variant:normal;font-weight:400;letter-spacing:normal;=
margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-b=
ottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-align:lef=
t;text-decoration:none;text-indent:0px;text-transform:none;white-space:norm=
al;word-spacing:0px"><font face=3D"arial,sans-serif" style=3D"border-bottom=
-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;borde=
r-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;bor=
der-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0p=
x;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px=
;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-=
bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px">This is one =
of the reasons I prefer to <i>not</i> let late bounding <i>just yet</i>.</f=
ont></span></div><div style=3D"background-color:transparent;border-bottom-c=
olor:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-=
left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;borde=
r-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;=
border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;c=
olor:rgb(34,34,34);font-size:13px;font-style:normal;font-variant:normal;fon=
t-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin=
-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right=
:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px;t=
ext-transform:none;white-space:normal;word-spacing:0px"><span style=3D"back=
ground-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-st=
yle:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-lef=
t-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-=
right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bord=
er-top-style:none;border-top-width:0px;color:rgb(34,34,34);display:inline;f=
loat:none;font-size:13px;font-style:normal;font-variant:normal;font-weight:=
400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0p=
x;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padd=
ing-top:0px;text-align:left;text-decoration:none;text-indent:0px;text-trans=
form:none;white-space:normal;word-spacing:0px"><font face=3D"arial,sans-ser=
if" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;bor=
der-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none=
;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:=
none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-style=
:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0=
px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;pad=
ding-top:0px"><br></font></span></div><div style=3D"background-color:transp=
arent;border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bot=
tom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;border=
-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;bo=
rder-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;b=
order-top-width:0px;color:rgb(34,34,34);font-size:13px;font-style:normal;fo=
nt-variant:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;m=
argin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-l=
eft:0px;padding-right:0px;padding-top:0px;text-align:left;text-decoration:n=
one;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px=
"><span style=3D"background-color:transparent;border-bottom-color:rgb(34,34=
,34);border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb=
(34,34,34);border-left-style:none;border-left-width:0px;border-right-color:=
rgb(34,34,34);border-right-style:none;border-right-width:0px;border-top-col=
or:rgb(34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34=
,34);display:inline;float:none;font-size:13px;font-style:normal;font-varian=
t:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-lef=
t:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;p=
adding-right:0px;padding-top:0px;text-align:left;text-decoration:none;text-=
indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><font f=
ace=3D"arial,sans-serif" style=3D"border-bottom-color:rgb(34,34,34);border-=
bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);b=
order-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34=
);border-right-style:none;border-right-width:0px;border-top-color:rgb(34,34=
,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-le=
ft:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;=
padding-right:0px;padding-top:0px">I see no material benefit, yet multiple =
issues.</font></span></div><div style=3D"background-color:transparent;borde=
r-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0=
px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-width=
:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-right-=
width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-w=
idth:0px;color:rgb(34,34,34);font-size:13px;font-style:normal;font-variant:=
normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:=
0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;pad=
ding-right:0px;padding-top:0px;text-align:left;text-decoration:none;text-in=
dent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span sty=
le=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);border=
-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);=
border-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,3=
4);border-right-style:none;border-right-width:0px;border-top-color:rgb(34,3=
4,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);displa=
y:inline;float:none;font-size:13px;font-style:normal;font-variant:normal;fo=
nt-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margi=
n-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-righ=
t:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px;=
text-transform:none;white-space:normal;word-spacing:0px"><font face=3D"aria=
l,sans-serif" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-styl=
e:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-=
style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-ri=
ght-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);border=
-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;marg=
in-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-rig=
ht:0px;padding-top:0px"><br></font></span></div><div style=3D"background-co=
lor:transparent;border-bottom-color:rgb(34,34,34);border-bottom-style:none;=
border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:n=
one;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-sty=
le:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-st=
yle:none;border-top-width:0px;color:rgb(34,34,34);font-size:13px;font-style=
:normal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-bo=
ttom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px=
;padding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-de=
coration:none;text-indent:0px;text-transform:none;white-space:normal;word-s=
pacing:0px"><span style=3D"background-color:transparent;border-bottom-color=
:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-left=
-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-ri=
ght-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;bord=
er-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;color=
:rgb(34,34,34);display:inline;float:none;font-size:13px;font-style:normal;f=
ont-variant:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;=
margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-=
left:0px;padding-right:0px;padding-top:0px;text-align:left;text-decoration:=
none;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0p=
x"><font face=3D"arial,sans-serif" style=3D"border-bottom-color:rgb(34,34,3=
4);border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(3=
4,34,34);border-left-style:none;border-left-width:0px;border-right-color:rg=
b(34,34,34);border-right-style:none;border-right-width:0px;border-top-color=
:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px=
;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding=
-left:0px;padding-right:0px;padding-top:0px">I am ok with </font><font face=
=3D"courier new,monospace" style=3D"border-bottom-color:rgb(34,34,34);borde=
r-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34)=
;border-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,=
34);border-right-style:none;border-right-width:0px;border-top-color:rgb(34,=
34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-=
left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0p=
x;padding-right:0px;padding-top:0px">Number auto</font></span></div><div st=
yle=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);borde=
r-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34)=
;border-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,=
34);border-right-style:none;border-right-width:0px;border-top-color:rgb(34,=
34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);font-=
size:13px;font-style:normal;font-variant:normal;font-weight:400;letter-spac=
ing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0p=
x;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;tex=
t-align:left;text-decoration:none;text-indent:0px;text-transform:none;white=
-space:normal;word-spacing:0px"><span style=3D"background-color:transparent=
;border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-w=
idth:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left=
-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-=
right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border=
-top-width:0px;color:rgb(34,34,34);display:inline;float:none;font-size:13px=
;font-style:normal;font-variant:normal;font-weight:400;letter-spacing:norma=
l;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding=
-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-align:l=
eft;text-decoration:none;text-indent:0px;text-transform:none;white-space:no=
rmal;word-spacing:0px"><font face=3D"arial,sans-serif" style=3D"border-bott=
om-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;bor=
der-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;b=
order-right-color:rgb(34,34,34);border-right-style:none;border-right-width:=
0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0=
px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;paddin=
g-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px"><font face=
=3D"courier new,monospace"></font><br></font></span></div><div style=3D"bac=
kground-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-s=
tyle:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-le=
ft-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border=
-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bor=
der-top-style:none;border-top-width:0px;color:rgb(34,34,34);font-size:13px;=
font-style:normal;font-variant:normal;font-weight:400;letter-spacing:normal=
;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-=
bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-align:le=
ft;text-decoration:none;text-indent:0px;text-transform:none;white-space:nor=
mal;word-spacing:0px"><span style=3D"background-color:transparent;border-bo=
ttom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;b=
order-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px=
;border-right-color:rgb(34,34,34);border-right-style:none;border-right-widt=
h:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width=
:0px;color:rgb(34,34,34);display:inline;float:none;font-size:13px;font-styl=
e:normal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-b=
ottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0p=
x;padding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-d=
ecoration:none;text-indent:0px;text-transform:none;white-space:normal;word-=
spacing:0px"><font face=3D"arial,sans-serif" style=3D"border-bottom-color:r=
gb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-c=
olor:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-righ=
t-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;border=
-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-=
bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0=
px;padding-left:0px;padding-right:0px;padding-top:0px">And I hope it will b=
e upgraded to <font face=3D"courier new,monospace">Number T </font>as it <i=
>dramatically</i> improves declarations as one sees a type like he always d=
id, granted not a concrete one</font></span></div><div style=3D"background-=
color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-style:non=
e;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style=
:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-s=
tyle:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-=
style:none;border-top-width:0px;color:rgb(34,34,34);font-size:13px;font-sty=
le:normal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-=
bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0=
px;padding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-=
decoration:none;text-indent:0px;text-transform:none;white-space:normal;word=
-spacing:0px"></div><div style=3D"background-color:transparent;border-botto=
m-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;bord=
er-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;bo=
rder-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0=
px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0p=
x;color:rgb(34,34,34);font-size:13px;font-style:normal;font-variant:normal;=
font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;mar=
gin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-ri=
ght:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0p=
x;text-transform:none;white-space:normal;word-spacing:0px"><span style=3D"b=
ackground-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom=
-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-=
left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);bord=
er-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);b=
order-top-style:none;border-top-width:0px;color:rgb(34,34,34);display:inlin=
e;float:none;font-size:13px;font-style:normal;font-variant:normal;font-weig=
ht:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right=
:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;p=
adding-top:0px;text-align:left;text-decoration:none;text-indent:0px;text-tr=
ansform:none;white-space:normal;word-spacing:0px"><font face=3D"arial,sans-=
serif" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;=
border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:n=
one;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-sty=
le:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-st=
yle:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-righ=
t:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;=
padding-top:0px"><br></font></span></div><div style=3D"background-color:tra=
nsparent;border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-=
bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;bor=
der-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:none=
;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:non=
e;border-top-width:0px;color:rgb(34,34,34);font-size:13px;font-style:normal=
;font-variant:normal;font-weight:400;letter-spacing:normal;margin-bottom:0p=
x;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;paddin=
g-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-decoratio=
n:none;text-indent:0px;text-transform:none;white-space:normal;word-spacing:=
0px"><span style=3D"background-color:transparent;border-bottom-color:rgb(34=
,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-color:=
rgb(34,34,34);border-left-style:none;border-left-width:0px;border-right-col=
or:rgb(34,34,34);border-right-style:none;border-right-width:0px;border-top-=
color:rgb(34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34=
,34,34);display:inline;float:none;font-size:13px;font-style:normal;font-var=
iant:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-=
left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0p=
x;padding-right:0px;padding-top:0px;text-align:left;text-decoration:none;te=
xt-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><fon=
t face=3D"courier new,monospace" style=3D"border-bottom-color:rgb(34,34,34)=
;border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,=
34,34);border-left-style:none;border-left-width:0px;border-right-color:rgb(=
34,34,34);border-right-style:none;border-right-width:0px;border-top-color:r=
gb(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;m=
argin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-l=
eft:0px;padding-right:0px;padding-top:0px">[](All Args&&... args) {=
f(std::forward<Args>(args)...)<wbr>; }</font></span></div><div style=
=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);border-b=
ottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);bo=
rder-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34)=
;border-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,=
34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);font-siz=
e:13px;font-style:normal;font-variant:normal;font-weight:400;letter-spacing=
:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;p=
adding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-a=
lign:left;text-decoration:none;text-indent:0px;text-transform:none;white-sp=
ace:normal;word-spacing:0px"><span style=3D"background-color:transparent;bo=
rder-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-widt=
h:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-wi=
dth:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-rig=
ht-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-to=
p-width:0px;color:rgb(34,34,34);display:inline;float:none;font-size:13px;fo=
nt-style:normal;font-variant:normal;font-weight:400;letter-spacing:normal;m=
argin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bo=
ttom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-align:left=
;text-decoration:none;text-indent:0px;text-transform:none;white-space:norma=
l;word-spacing:0px"><font face=3D"courier new,monospace" style=3D"border-bo=
ttom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;b=
order-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px=
;border-right-color:rgb(34,34,34);border-right-style:none;border-right-widt=
h:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width=
:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padd=
ing-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px"><br></fo=
nt></span></div><div style=3D"margin:0px;padding:0px;border:0px rgb(34,34,3=
4);text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;=
letter-spacing:normal;font-size:13px;font-variant:normal;font-weight:400;te=
xt-decoration:none;word-spacing:0px;white-space:normal;background-color:tra=
nsparent"><span style=3D"margin:0px;padding:0px;border:0px rgb(34,34,34);te=
xt-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;lette=
r-spacing:normal;font-size:13px;font-variant:normal;font-weight:400;text-de=
coration:none;word-spacing:0px;display:inline;white-space:normal;float:none=
;background-color:transparent"><font face=3D"arial,sans-serif" style=3D"bor=
der-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width=
:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-wid=
th:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-righ=
t-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top=
-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0p=
x;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px"><i=
>I will take that before <b>ANY</b> other form!</i></font></span></div><div=
style=3D"margin:0px;padding:0px;border:0px rgb(34,34,34);text-align:left;c=
olor:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:norma=
l;font-size:13px;font-variant:normal;font-weight:400;text-decoration:none;w=
ord-spacing:0px;white-space:normal;background-color:transparent"><br></div>=
<div style=3D"margin:0px;padding:0px;border:0px rgb(34,34,34);text-align:le=
ft;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:n=
ormal;font-size:13px;font-variant:normal;font-weight:400;text-decoration:no=
ne;word-spacing:0px;white-space:normal;background-color:transparent"><br></=
div></div></div></div></blockquote><div><br></div><div><br></div><div>Oh, b=
oy, <i>I just remembered</i>:</div><div><font face=3D"courier new,monospace=
"></font><br></div><div><font face=3D"courier new,monospace">using Randon_a=
ccess_iterator{Ran};=C2=A0</font></div><div><font face=3D"courier new,monos=
pace"><br></font></div><div><font face=3D"courier new,monospace">// ...=C2=
=A0</font></div><div><font face=3D"courier new,monospace"><br></font></div>=
<div><font face=3D"courier new,monospace">void sort(Ran p, Ran q);</font><b=
r></div><div><font face=3D"courier new,monospace"></font><br></div><div><fo=
nt face=3D"courier new,monospace">using Forward_iterator{For};</font></div>=
<div><font face=3D"courier new,monospace">using Forward_iterator{For2};=C2=
=A0</font></div><div><font face=3D"courier new,monospace">using Output_iter=
ator{Out};=C2=A0</font></div><div><font face=3D"courier new,monospace"><br>=
</font></div><div><font face=3D"courier new,monospace">// ...=C2=A0</font><=
/div><div><font face=3D"courier new,monospace"><br></font></div><div><font =
face=3D"courier new,monospace">void merge(For p, For q, For2 p2, For2 q2, O=
ut p);</font></div><div><font face=3D"arial,sans-serif"></font><br></div><d=
iv><font face=3D"arial,sans-serif">The syntax of this using-declaration is:=
<font face=3D"courier new,monospace">using name-of-concept { identifier-li=
st };=C2=A0</font></font></div><div><font face=3D"arial,sans-serif"><br></f=
ont></div><div><font face=3D"arial,sans-serif">So, we have a very terse syn=
tax that minimizes repetition and can distinguish between two uses of the s=
ame type of a concept and (potentially) two di=EF=AC=80erent type of a conc=
ept.=C2=A0</font></div><div><font face=3D"arial,sans-serif">In case, you lo=
st track of the reason for going in this direction: This terse syntax can b=
e used for lambdas, where the old (verbose) syntax is either impossible or =
so verbose that it would encourage the use of unconstrained lambdas.</font>=
</div><div><font face=3D"arial,sans-serif"><br></font></div><div><font face=
=3D"arial,sans-serif">For example:=C2=A0</font></div><div><font face=3D"cou=
rier new,monospace">[] (For p, For q, For2 p2, For2 q2, Out p) { /=E2=88=97=
do some merging ... =E2=88=97/ }<br></font></div><div><font face=3D"courie=
r new,monospace"><br></font></div><div><font face=3D"courier new,monospace"=
><br></font></div><div><b>It is from:</b> http://www.open-std.org/jtc1/sc22=
/wg21/docs/papers/2013/n3580.pdf</div><div><br></div><div><br style=3D"back=
ground-attachment: scroll; background-clip: border-box; background-color: t=
ransparent; background-image: none; background-origin: padding-box; backgro=
und-position-x: 0%; background-position-y: 0%; background-repeat: repeat; b=
ackground-size: auto; border-bottom-color: rgb(34, 34, 34); border-bottom-s=
tyle: none; border-bottom-width: 0px; border-image-outset: 0; border-image-=
repeat: stretch; border-image-slice: 100%; border-image-source: none; borde=
r-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: no=
ne; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-rig=
ht-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34);=
border-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); fon=
t-family: &quot;Arial&quot;,&quot;Helvetica&quot;,sans-seri=
f; font-size: 13px; height: auto; margin-bottom: 0px; margin-left: 0px; mar=
gin-right: 0px; margin-top: 0px; min-width: 0px; overflow: visible; overflo=
w-x: visible; overflow-y: visible; padding-bottom: 0px; padding-left: 0px; =
padding-right: 0px; padding-top: 0px;"></div><div><div style=3D"margin: 0px=
; padding: 0px; border: 0px rgb(34, 34, 34); border-image: none; text-align=
: left; color: rgb(34, 34, 34); text-transform: none; text-indent: 0px; let=
ter-spacing: normal; font-size: 13px; font-variant: normal; text-decoration=
: none; word-spacing: 0px; white-space: normal; orphans: 2; -webkit-text-st=
roke-width: 0px; background-color: transparent;"><b><i>Sound familiar? :)</=
i></b><br></div></div></div>
<p></p>
-- <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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/840eecc5-5aae-40d8-b965-7f74197a3970%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/840eecc5-5aae-40d8-b965-7f74197a3970=
%40isocpp.org</a>.<br />
------=_Part_129469_2119421183.1531552733062--
------=_Part_129468_57727616.1531552733060--
.
Author: mihailnajdenov@gmail.com
Date: Sat, 14 Jul 2018 00:20:46 -0700 (PDT)
Raw View
------=_Part_88309_819854804.1531552846663
Content-Type: multipart/alternative;
boundary="----=_Part_88310_815581913.1531552846664"
------=_Part_88310_815581913.1531552846664
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
On Friday, July 13, 2018 at 10:45:59 AM UTC+3, mihailn...@gmail.com wrote:
>
>
>
> On Friday, July 13, 2018 at 1:48:04 AM UTC+3, Zhihao Yuan wrote:
>>
>> From: mihailn...@gmail.com <mihailn...@gmail.com>=20
>> Sent: Thursday, July 12, 2018 4:06 PM=20
>> >>>=20
>> >>> namespace n {=20
>> >>>=20
>> >>> StandardLayoutType T; //< allowed?=20
>> >>>=20
>> >> That's the kind of bug that I'm looking for...=20
>> >> It shouldn't be allowed.=20
>> >=20
>> > Any reason why? Except confusion and probably impl difficulties.=20
>>
>> Let's say you have this declaration in a header and include=20
>> it in two different translation units, then essentially you=20
>> got a "poor man's namespace template." The outcome of=20
>> enforcing T to be deduced to the same type across=20
>> translation units isn't useful enough to justify its complexity.=20
>>
>> I think these declarations should appear only in block scopes,=20
>> and have no linkage, as same as constrained-parameters.=20
>>
>
> Hum, the way I see it the type must be the same only in a given template=
=20
> instantiation not across all instantiations
>
> namespace a {
>
> Number Num;
>
> template<Something S>
> auto func()
> {
> Num n =3D S.do();
>
> Num p =3D . . .;
>
> // Num will be the same for func, lets say an int
> }
>
> template<SomethingElse S>
> auto func()
> {
> Num n =3D S.do();
>
> // Num will be the same for func - a float=20
> }
> }//< a
>
> // other TU
>
> #include <a.h>
>
> namespace b {
>
> template<Something S>
> auto func()
> {
> a::Num n =3D S.do();
>
> // a::Num will be short
> }
>
> }//< b
>
> I don't think it is good idea, but I don't see much of a problem.
>
> Now, if=20
>
> namespace a {
>
> Number Num;
> const N var =3D 1;
>
> }//<a
>
> and
>
> #include <a.h>
>
> namespace a {
> const N var2 =3D "string";
> }
>
> or
>
> namespace b {
> const a::N var =3D "string";
> }
>
> Will fail - N is an int.
>
> The point is - the name can cross scopes, much like always, bounding=20
> (template instantiation) can't=20
> That is the same as in the constexpr if case in local scope - same name=
=20
> different instantiations, different bounding=20
>
>
>
> Of course none of this is recommended practice, much like global variable=
s=20
> are bad
>
> For example
>
> namespace a {
>
> Number Num;
>
> }//<a
> =20
> namespace b {
> const a::N bvar =3D 1;
> }
>
> now, if we include a file that
>
> namespace a {
>
> const a::N somevar =3D 1.f;
>
> }//<a
>
> BEFORE b, then we "silently" change bvar to float
>
>
> This is one of the reasons I prefer to *not* let late bounding *just yet*=
..
>
> I see no material benefit, yet multiple issues.
>
> I am ok with Number auto
>
> And I hope it will be upgraded to Number T as it *dramatically* improves=
=20
> declarations as one sees a type like he always did, granted not a concret=
e=20
> one
>
> [](All Args&&... args) { f(std::forward<Args>(args)...); }
>
> *I will take that before ANY other form!*
>
>
>
=20
Oh, boy, *I just remembered*:
using Randon_access_iterator{Ran};=20
// ...=20
void sort(Ran p, Ran q);
using Forward_iterator{For};
using Forward_iterator{For2};=20
using Output_iterator{Out};=20
// ...=20
void merge(For p, For q, For2 p2, For2 q2, Out p);
The syntax of this using-declaration is: using name-of-concept {=20
identifier-list };=20
So, we have a very terse syntax that minimizes repetition and can=20
distinguish between two uses of the same type of a concept and=20
(potentially) two di=EF=AC=80erent type of a concept.=20
In case, you lost track of the reason for going in this direction: This=20
terse syntax can be used for lambdas, where the old (verbose) syntax is=20
either impossible or so verbose that it would encourage the use of=20
unconstrained lambdas.
For example:=20
[] (For p, For q, For2 p2, For2 q2, Out p) { /=E2=88=97 do some merging ...=
=E2=88=97/ }
It is from:=20
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3580.pdf
*Sound familiar? :)*
--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/8049d704-c1ed-43a5-9625-0aaa63b1473d%40isocpp.or=
g.
------=_Part_88310_815581913.1531552846664
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><br><br>On Friday, July 13, 2018 at 10:45:59 AM UTC+3, mih=
ailn...@gmail.com wrote:<blockquote class=3D"gmail_quote" style=3D"margin: =
0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div d=
ir=3D"ltr"><br><br>On Friday, July 13, 2018 at 1:48:04 AM UTC+3, Zhihao Yua=
n wrote:<blockquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8=
ex;border-left:1px #ccc solid;padding-left:1ex">From: <a rel=3D"nofollow">m=
ihailn...@gmail.com</a> <<a rel=3D"nofollow">mihailn...@gmail.com</a>>=
;=20
<br>Sent: Thursday, July 12, 2018 4:06 PM
<br>>>>=20
<br>>>> namespace n {=20
<br>>>>=20
<br>>>> StandardLayoutType T; //< allowed?=20
<br>>>>=20
<br>>> That's the kind of bug that I'm looking for...=20
<br>>> It shouldn't be allowed.=20
<br>>=20
<br>> Any reason why? Except confusion and probably impl difficulties.
<br>
<br>Let's say you have this declaration in a header and include
<br>it in two different translation units, then essentially you
<br>got a "poor man's namespace template." The outcome of
<br>enforcing T to be deduced to the same type across
<br>translation units isn't useful enough to justify its complexity.
<br>
<br>I think these declarations should appear only in block scopes,
<br>and have no linkage, as same as constrained-parameters.
<br></blockquote><div><br></div><div>Hum, the way I see it the type must be=
the same only in a given template instantiation not across all=C2=A0=C2=A0=
<span style=3D"display:inline!important;float:none;background-color:transpa=
rent;color:rgb(34,34,34);font-family:"Arial","Helvetica"=
;,sans-serif;font-size:13px;font-style:normal;font-variant:normal;font-weig=
ht:400;letter-spacing:normal;text-align:left;text-decoration:none;text-inde=
nt:0px;text-transform:none;white-space:normal;word-spacing:0px">instantiati=
ons</span></div><div><span style=3D"text-align:left;color:rgb(34,34,34);tex=
t-transform:none;text-indent:0px;letter-spacing:normal;font-size:13px;font-=
style:normal;font-variant:normal;font-weight:400;text-decoration:none;word-=
spacing:0px;display:inline!important;white-space:normal;float:none;backgrou=
nd-color:transparent"><font face=3D"courier new,monospace"></font><br></spa=
n></div><div><span style=3D"text-align:left;color:rgb(34,34,34);text-transf=
orm:none;text-indent:0px;letter-spacing:normal;font-size:13px;font-style:no=
rmal;font-variant:normal;font-weight:400;text-decoration:none;word-spacing:=
0px;display:inline!important;white-space:normal;float:none;background-color=
:transparent"><font face=3D"courier new,monospace">namespace a {</font></sp=
an></div><div><span style=3D"text-align:left;color:rgb(34,34,34);text-trans=
form:none;text-indent:0px;letter-spacing:normal;font-size:13px;font-style:n=
ormal;font-variant:normal;font-weight:400;text-decoration:none;word-spacing=
:0px;display:inline!important;white-space:normal;float:none;background-colo=
r:transparent"><font face=3D"courier new,monospace"></font><br></span></div=
><div><span style=3D"text-align:left;color:rgb(34,34,34);text-transform:non=
e;text-indent:0px;letter-spacing:normal;font-size:13px;font-style:normal;fo=
nt-variant:normal;font-weight:400;text-decoration:none;word-spacing:0px;dis=
play:inline!important;white-space:normal;float:none;background-color:transp=
arent"><font face=3D"courier new,monospace">Number Num;</font></span></div>=
<div><span style=3D"text-align:left;color:rgb(34,34,34);text-transform:none=
;text-indent:0px;letter-spacing:normal;font-size:13px;font-style:normal;fon=
t-variant:normal;font-weight:400;text-decoration:none;word-spacing:0px;disp=
lay:inline!important;white-space:normal;float:none;background-color:transpa=
rent"><font face=3D"courier new,monospace"></font><br></span></div><div><sp=
an style=3D"text-align:left;color:rgb(34,34,34);text-transform:none;text-in=
dent:0px;letter-spacing:normal;font-size:13px;font-style:normal;font-varian=
t:normal;font-weight:400;text-decoration:none;word-spacing:0px;display:inli=
ne!important;white-space:normal;float:none;background-color:transparent"><f=
ont face=3D"courier new,monospace">template<Something S></font></span=
></div><div><span style=3D"text-align:left;color:rgb(34,34,34);text-transfo=
rm:none;text-indent:0px;letter-spacing:normal;font-size:13px;font-style:nor=
mal;font-variant:normal;font-weight:400;text-decoration:none;word-spacing:0=
px;display:inline!important;white-space:normal;float:none;background-color:=
transparent"><font face=3D"courier new,monospace">auto func()</font></span>=
</div><div><span style=3D"text-align:left;color:rgb(34,34,34);text-transfor=
m:none;text-indent:0px;letter-spacing:normal;font-size:13px;font-style:norm=
al;font-variant:normal;font-weight:400;text-decoration:none;word-spacing:0p=
x;display:inline!important;white-space:normal;float:none;background-color:t=
ransparent"><font face=3D"courier new,monospace">{</font></span></div><div>=
<span style=3D"text-align:left;color:rgb(34,34,34);text-transform:none;text=
-indent:0px;letter-spacing:normal;font-size:13px;font-style:normal;font-var=
iant:normal;font-weight:400;text-decoration:none;word-spacing:0px;display:i=
nline!important;white-space:normal;float:none;background-color:transparent"=
><font face=3D"courier new,monospace">=C2=A0 Num n =3D S.do();</font></span=
></div><div><span style=3D"text-align:left;color:rgb(34,34,34);text-transfo=
rm:none;text-indent:0px;letter-spacing:normal;font-size:13px;font-style:nor=
mal;font-variant:normal;font-weight:400;text-decoration:none;word-spacing:0=
px;display:inline!important;white-space:normal;float:none;background-color:=
transparent"><font face=3D"courier new,monospace"><br></font></span></div><=
div><span style=3D"text-align:left;color:rgb(34,34,34);text-transform:none;=
text-indent:0px;letter-spacing:normal;font-size:13px;font-style:normal;font=
-variant:normal;font-weight:400;text-decoration:none;word-spacing:0px;displ=
ay:inline!important;white-space:normal;float:none;background-color:transpar=
ent"><font face=3D"courier new,monospace">=C2=A0 Num p =3D . . .;</font></s=
pan></div><div><span style=3D"text-align:left;color:rgb(34,34,34);text-tran=
sform:none;text-indent:0px;letter-spacing:normal;font-size:13px;font-style:=
normal;font-variant:normal;font-weight:400;text-decoration:none;word-spacin=
g:0px;display:inline!important;white-space:normal;float:none;background-col=
or:transparent"><font face=3D"courier new,monospace"><br></font></span></di=
v><div><span style=3D"text-align:left;color:rgb(34,34,34);text-transform:no=
ne;text-indent:0px;letter-spacing:normal;font-size:13px;font-style:normal;f=
ont-variant:normal;font-weight:400;text-decoration:none;word-spacing:0px;di=
splay:inline!important;white-space:normal;float:none;background-color:trans=
parent"><font face=3D"courier new,monospace">=C2=A0 // Num will be the same=
for func, lets say an int</font></span></div><div><span style=3D"text-alig=
n:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spaci=
ng:normal;font-size:13px;font-style:normal;font-variant:normal;font-weight:=
400;text-decoration:none;word-spacing:0px;display:inline!important;white-sp=
ace:normal;float:none;background-color:transparent"><font face=3D"courier n=
ew,monospace">}</font></span></div><div><span style=3D"text-align:left;colo=
r:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;f=
ont-size:13px;font-style:normal;font-variant:normal;font-weight:400;text-de=
coration:none;word-spacing:0px;display:inline!important;white-space:normal;=
float:none;background-color:transparent"><font face=3D"courier new,monospac=
e"></font><br></span></div><div><span style=3D"text-align:left;color:rgb(34=
,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;font-size=
:13px;font-variant:normal;word-spacing:0px;display:inline!important;white-s=
pace:normal;float:none;background-color:transparent"><div><span><font face=
=3D"courier new,monospace" style=3D"border-bottom-color:rgb(34,34,34);borde=
r-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34)=
;border-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,=
34);border-right-style:none;border-right-width:0px;border-top-color:rgb(34,=
34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-=
left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0p=
x;padding-right:0px;padding-top:0px">template<SomethingElse S></font>=
</span></div><div><span><font face=3D"courier new,monospace" style=3D"borde=
r-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0=
px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-width=
:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-right-=
width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-w=
idth:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;=
padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px">auto=
func()</font></span></div><div><span><font face=3D"courier new,monospace" =
style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-=
bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;bor=
der-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:none=
;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:non=
e;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;m=
argin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding=
-top:0px">{</font></span></div><div><span><font face=3D"courier new,monospa=
ce" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;bor=
der-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none=
;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:=
none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-style=
:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0=
px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;pad=
ding-top:0px">=C2=A0 Num n =3D S.do();</font></span></div><div><span><font =
face=3D"courier new,monospace" style=3D"border-bottom-color:rgb(34,34,34);b=
order-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34=
,34);border-left-style:none;border-left-width:0px;border-right-color:rgb(34=
,34,34);border-right-style:none;border-right-width:0px;border-top-color:rgb=
(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;mar=
gin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-lef=
t:0px;padding-right:0px;padding-top:0px"><br></font></span></div><div><span=
><font face=3D"courier new,monospace" style=3D"border-bottom-color:rgb(34,3=
4,34);border-bottom-style:none;border-bottom-width:0px;border-left-color:rg=
b(34,34,34);border-left-style:none;border-left-width:0px;border-right-color=
:rgb(34,34,34);border-right-style:none;border-right-width:0px;border-top-co=
lor:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:=
0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padd=
ing-left:0px;padding-right:0px;padding-top:0px">=C2=A0 // Num will be the s=
ame for func - a float=C2=A0</font></span></div><div><span><font face=3D"co=
urier new,monospace" style=3D"border-bottom-color:rgb(34,34,34);border-bott=
om-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);borde=
r-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);bo=
rder-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34)=
;border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0=
px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padd=
ing-right:0px;padding-top:0px">}</font></span></div><div><span><font face=
=3D"courier new,monospace" style=3D"border-bottom-color:rgb(34,34,34);borde=
r-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34)=
;border-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,=
34);border-right-style:none;border-right-width:0px;border-top-color:rgb(34,=
34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-=
left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0p=
x;padding-right:0px;padding-top:0px">}//< a</font></span></div><div><b><=
/b><i></i><u></u><sub></sub><sup></sup><strike></strike><br></div><div><fon=
t face=3D"courier new,monospace">// other TU</font></div><div><font face=3D=
"courier new,monospace"><br></font></div><div><font face=3D"courier new,mon=
ospace">#include <a.h></font></div><div><font face=3D"courier new,mon=
ospace"><br></font></div><div><font face=3D"courier new,monospace">namespac=
e b {</font></div><div><font face=3D"courier new,monospace"><br></font></di=
v><div><font face=3D"courier new,monospace"><div><span style=3D"background-=
color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-style:non=
e;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style=
:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-s=
tyle:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-=
style:none;border-top-width:0px;color:rgb(34,34,34);display:inline;float:no=
ne;font-size:13px;font-style:normal;font-variant:normal;font-weight:400;let=
ter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margi=
n-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top=
:0px;text-align:left;text-decoration:none;text-indent:0px;text-transform:no=
ne;white-space:normal;word-spacing:0px"><font face=3D"courier new,monospace=
" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;borde=
r-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;b=
order-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:no=
ne;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:n=
one;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px=
;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;paddi=
ng-top:0px">template<Something S></font></span></div><div><span style=
=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);border-b=
ottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);bo=
rder-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34)=
;border-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,=
34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);display:=
inline;float:none;font-size:13px;font-style:normal;font-variant:normal;font=
-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-=
right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:=
0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px;te=
xt-transform:none;white-space:normal;word-spacing:0px"><font face=3D"courie=
r new,monospace" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-s=
tyle:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-le=
ft-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border=
-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bor=
der-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;m=
argin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-=
right:0px;padding-top:0px">auto func()</font></span></div><div><span style=
=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);border-b=
ottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);bo=
rder-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34)=
;border-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,=
34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);display:=
inline;float:none;font-size:13px;font-style:normal;font-variant:normal;font=
-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-=
right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:=
0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px;te=
xt-transform:none;white-space:normal;word-spacing:0px"><font face=3D"courie=
r new,monospace" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-s=
tyle:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-le=
ft-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border=
-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bor=
der-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;m=
argin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-=
right:0px;padding-top:0px">{</font></span></div><div><span style=3D"backgro=
und-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-style=
:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-s=
tyle:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-rig=
ht-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-=
top-style:none;border-top-width:0px;color:rgb(34,34,34);display:inline;floa=
t:none;font-size:13px;font-style:normal;font-variant:normal;font-weight:400=
;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;m=
argin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding=
-top:0px;text-align:left;text-decoration:none;text-indent:0px;text-transfor=
m:none;white-space:normal;word-spacing:0px"><font face=3D"courier new,monos=
pace" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;b=
order-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:no=
ne;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-styl=
e:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-sty=
le:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right=
:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;p=
adding-top:0px">=C2=A0 a::Num n =3D S.do();</font></span></div><div><span s=
tyle=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);bord=
er-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34=
);border-left-style:none;border-left-width:0px;border-right-color:rgb(34,34=
,34);border-right-style:none;border-right-width:0px;border-top-color:rgb(34=
,34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);disp=
lay:inline;float:none;font-size:13px;font-style:normal;font-variant:normal;=
font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;mar=
gin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-ri=
ght:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0p=
x;text-transform:none;white-space:normal;word-spacing:0px"><font face=3D"co=
urier new,monospace" style=3D"border-bottom-color:rgb(34,34,34);border-bott=
om-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);borde=
r-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);bo=
rder-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34)=
;border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0=
px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padd=
ing-right:0px;padding-top:0px"><br style=3D"border-bottom-color:rgb(34,34,3=
4);border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(3=
4,34,34);border-left-style:none;border-left-width:0px;border-right-color:rg=
b(34,34,34);border-right-style:none;border-right-width:0px;border-top-color=
:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px=
;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding=
-left:0px;padding-right:0px;padding-top:0px"></font></span></div><div><span=
style=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);bo=
rder-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,=
34);border-left-style:none;border-left-width:0px;border-right-color:rgb(34,=
34,34);border-right-style:none;border-right-width:0px;border-top-color:rgb(=
34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);di=
splay:inline;float:none;font-size:13px;font-style:normal;font-variant:norma=
l;font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;m=
argin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-=
right:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:=
0px;text-transform:none;white-space:normal;word-spacing:0px"><font face=3D"=
courier new,monospace" style=3D"border-bottom-color:rgb(34,34,34);border-bo=
ttom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);bor=
der-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);=
border-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,3=
4);border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left=
:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;pa=
dding-right:0px;padding-top:0px">=C2=A0 // a::Num will be short</font></spa=
n></div></font><div><font face=3D"courier new,monospace"><span style=3D"bac=
kground-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-s=
tyle:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-le=
ft-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border=
-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bor=
der-top-style:none;border-top-width:0px;color:rgb(34,34,34);display:inline;=
float:none;font-size:13px;font-style:normal;font-variant:normal;font-weight=
:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0=
px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;pad=
ding-top:0px;text-align:left;text-decoration:none;text-indent:0px;text-tran=
sform:none;white-space:normal;word-spacing:0px"><font face=3D"courier new,m=
onospace" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:no=
ne;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-styl=
e:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-=
style:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top=
-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-r=
ight:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0=
px;padding-top:0px">}</font></span></font></div><div><font face=3D"courier =
new,monospace"><br></font></div></div><div><font face=3D"courier new,monosp=
ace">}//< b</font></div><div><font face=3D"courier new,monospace"><br></=
font></div><div><font face=3D"arial,sans-serif">I don't think it is goo=
d idea, but I don't see much of a problem.</font></div><div><font face=
=3D"arial,sans-serif"><br></font></div></span></div><div><span style=3D"tex=
t-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter=
-spacing:normal;font-size:13px;font-style:normal;font-variant:normal;font-w=
eight:400;text-decoration:none;word-spacing:0px;display:inline!important;wh=
ite-space:normal;float:none;background-color:transparent">Now, if=C2=A0</sp=
an></div><div><span style=3D"text-align:left;color:rgb(34,34,34);text-trans=
form:none;text-indent:0px;letter-spacing:normal;font-size:13px;font-style:n=
ormal;font-variant:normal;font-weight:400;text-decoration:none;word-spacing=
:0px;display:inline!important;white-space:normal;float:none;background-colo=
r:transparent"><br></span></div><div><span style=3D"text-align:left;color:r=
gb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;font=
-size:13px;font-style:normal;font-variant:normal;font-weight:400;text-decor=
ation:none;word-spacing:0px;display:inline!important;white-space:normal;flo=
at:none;background-color:transparent"><font face=3D"courier new,monospace">=
namespace a {</font></span></div><div><span style=3D"text-align:left;color:=
rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;fon=
t-size:13px;font-style:normal;font-variant:normal;font-weight:400;text-deco=
ration:none;word-spacing:0px;display:inline!important;white-space:normal;fl=
oat:none;background-color:transparent"><font face=3D"courier new,monospace"=
><br></font></span></div><div><span style=3D"text-align:left;color:rgb(34,3=
4,34);text-transform:none;text-indent:0px;letter-spacing:normal;font-size:1=
3px;font-variant:normal;word-spacing:0px;display:inline!important;white-spa=
ce:normal;float:none;background-color:transparent"><font face=3D"courier ne=
w,monospace"><span style=3D"display:inline!important;float:none;background-=
color:transparent;color:rgb(34,34,34);font-family:courier new,monospace;fon=
t-size:13px;font-style:normal;font-variant:normal;font-weight:400;letter-sp=
acing:normal;text-align:left;text-decoration:none;text-indent:0px;text-tran=
sform:none;white-space:normal;word-spacing:0px">Number Num;</span><b></b><i=
></i><u></u><sub></sub><sup></sup><strike></strike></font></span></div><div=
><font face=3D"courier new,monospace">const N var =3D 1;</font></div><div><=
span style=3D"text-align:left;color:rgb(34,34,34);text-transform:none;text-=
indent:0px;letter-spacing:normal;font-size:13px;font-style:normal;font-vari=
ant:normal;font-weight:400;text-decoration:none;word-spacing:0px;display:in=
line!important;white-space:normal;float:none;background-color:transparent">=
<font face=3D"courier new,monospace"><b></b><i></i><u></u><sub></sub><sup><=
/sup><strike></strike><br></font></span></div><div><span style=3D"text-alig=
n:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spaci=
ng:normal;font-size:13px;font-style:normal;font-variant:normal;font-weight:=
400;text-decoration:none;word-spacing:0px;display:inline!important;white-sp=
ace:normal;float:none;background-color:transparent"><font face=3D"courier n=
ew,monospace">}//<a</font></span></div><div><span style=3D"text-align:le=
ft;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:n=
ormal;font-size:13px;font-style:normal;font-variant:normal;font-weight:400;=
text-decoration:none;word-spacing:0px;display:inline!important;white-space:=
normal;float:none;background-color:transparent"><font face=3D"courier new,m=
onospace"><br></font></span></div><div><span style=3D"text-align:left;color=
:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;fo=
nt-size:13px;font-style:normal;font-variant:normal;font-weight:400;text-dec=
oration:none;word-spacing:0px;display:inline!important;white-space:normal;f=
loat:none;background-color:transparent"><font face=3D"arial,sans-serif">and=
</font></span></div><div><span style=3D"text-align:left;color:rgb(34,34,34)=
;text-transform:none;text-indent:0px;letter-spacing:normal;font-size:13px;f=
ont-style:normal;font-variant:normal;font-weight:400;text-decoration:none;w=
ord-spacing:0px;display:inline!important;white-space:normal;float:none;back=
ground-color:transparent"><font face=3D"courier new,monospace"><font face=
=3D"arial,sans-serif"></font><br></font></span></div><div><span style=3D"te=
xt-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;lette=
r-spacing:normal;font-size:13px;font-style:normal;font-variant:normal;font-=
weight:400;text-decoration:none;word-spacing:0px;display:inline!important;w=
hite-space:normal;float:none;background-color:transparent"><font face=3D"co=
urier new,monospace">#include <a.h></font></span></div><div><span sty=
le=3D"text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0=
px;letter-spacing:normal;font-size:13px;font-style:normal;font-variant:norm=
al;font-weight:400;text-decoration:none;word-spacing:0px;display:inline!imp=
ortant;white-space:normal;float:none;background-color:transparent"><font fa=
ce=3D"courier new,monospace"><br></font></span></div><div><span style=3D"te=
xt-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;lette=
r-spacing:normal;font-size:13px;font-variant:normal;word-spacing:0px;displa=
y:inline!important;white-space:normal;float:none;background-color:transpare=
nt"><font face=3D"courier new,monospace"><span style=3D"display:inline!impo=
rtant;float:none;background-color:transparent;color:rgb(34,34,34);font-fami=
ly:courier new,monospace;font-size:13px;font-style:normal;font-variant:norm=
al;font-weight:400;letter-spacing:normal;text-align:left;text-decoration:no=
ne;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"=
>namespace a {</span></font></span></div><div><span style=3D"text-align:lef=
t;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:no=
rmal;font-size:13px;font-variant:normal;word-spacing:0px;display:inline!imp=
ortant;white-space:normal;float:none;background-color:transparent"><font fa=
ce=3D"courier new,monospace"><span style=3D"display:inline!important;float:=
none;background-color:transparent;color:rgb(34,34,34);font-family:courier n=
ew,monospace;font-size:13px;font-style:normal;font-variant:normal;font-weig=
ht:400;letter-spacing:normal;text-align:left;text-decoration:none;text-inde=
nt:0px;text-transform:none;white-space:normal;word-spacing:0px">const N var=
2 =3D "string";</span></font></span></div><div><span style=3D"tex=
t-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter=
-spacing:normal;font-size:13px;font-variant:normal;word-spacing:0px;display=
:inline!important;white-space:normal;float:none;background-color:transparen=
t"><font face=3D"courier new,monospace">}</font></span></div><div><span sty=
le=3D"text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0=
px;letter-spacing:normal;font-size:13px;font-style:normal;font-variant:norm=
al;font-weight:400;text-decoration:none;word-spacing:0px;display:inline!imp=
ortant;white-space:normal;float:none;background-color:transparent"><font fa=
ce=3D"courier new,monospace"><b></b><i></i><u></u><sub></sub><sup></sup><st=
rike></strike><br></font></span></div><div><span style=3D"text-align:left;c=
olor:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:norma=
l;font-size:13px;font-style:normal;font-variant:normal;font-weight:400;text=
-decoration:none;word-spacing:0px;display:inline!important;white-space:norm=
al;float:none;background-color:transparent"><font face=3D"arial,sans-serif"=
>or</font></span></div><div><span><font face=3D"courier new,monospace" styl=
e=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bott=
om-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-=
left-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;bor=
der-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;bo=
rder-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margi=
n-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top=
:0px"><br style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:no=
ne;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-styl=
e:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-=
style:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top=
-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-r=
ight:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0=
px;padding-top:0px"></font></span></div><div><div><span><font face=3D"couri=
er new,monospace" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-=
style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-l=
eft-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);borde=
r-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bo=
rder-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;=
margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding=
-right:0px;padding-top:0px"><span style=3D"background-color:transparent;bor=
der-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width=
:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-wid=
th:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-righ=
t-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top=
-width:0px;color:rgb(34,34,34);display:inline;float:none;font-family:courie=
r new,monospace;font-size:13px;font-style:normal;font-variant:normal;font-w=
eight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-ri=
ght:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0p=
x;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px;text=
-transform:none;white-space:normal;word-spacing:0px">namespace b {</span></=
font></span></div><div><span><font face=3D"courier new,monospace" style=3D"=
border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-wi=
dth:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-=
width:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-r=
ight-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-=
top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top=
:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px"=
><span style=3D"background-color:transparent;border-bottom-color:rgb(34,34,=
34);border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(=
34,34,34);border-left-style:none;border-left-width:0px;border-right-color:r=
gb(34,34,34);border-right-style:none;border-right-width:0px;border-top-colo=
r:rgb(34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,=
34);display:inline;float:none;font-family:courier new,monospace;font-size:1=
3px;font-style:normal;font-variant:normal;font-weight:400;letter-spacing:no=
rmal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padd=
ing-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-alig=
n:left;text-decoration:none;text-indent:0px;text-transform:none;white-space=
:normal;word-spacing:0px">const a::N var =3D "string";</span></fo=
nt></span></div><div><span><font face=3D"courier new,monospace" style=3D"bo=
rder-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-widt=
h:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-wi=
dth:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-rig=
ht-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-to=
p-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0=
px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px">}=
</font></span></div><b></b><i></i><u></u><sub></sub><sup></sup><strike></st=
rike><br></div><div>Will fail - N is an int.</div><div><br></div><div>The p=
oint is - the name can cross scopes, much like always, bounding (template i=
nstantiation) can't=C2=A0</div><div>That is the same as in the constexp=
r if case in local scope - same name different instantiations, different bo=
unding=C2=A0</div><div><br></div><div><br></div><div><br></div><div>Of cour=
se none of this is recommended practice, much like global variables are bad=
</div><div><br></div><div>For example</div><div><br></div><div><div><span><=
font face=3D"courier new,monospace" style=3D"border-bottom-color:rgb(34,34,=
34);border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(=
34,34,34);border-left-style:none;border-left-width:0px;border-right-color:r=
gb(34,34,34);border-right-style:none;border-right-width:0px;border-top-colo=
r:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0p=
x;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;paddin=
g-left:0px;padding-right:0px;padding-top:0px">namespace a {</font></span></=
div><div><span><font face=3D"courier new,monospace" style=3D"border-bottom-=
color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border=
-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;bord=
er-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0px=
;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;=
margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-b=
ottom:0px;padding-left:0px;padding-right:0px;padding-top:0px"><br style=3D"=
border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-wi=
dth:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-=
width:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-r=
ight-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-=
top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top=
:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px"=
></font></span></div><div><span><font face=3D"courier new,monospace" style=
=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-botto=
m-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-l=
eft-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;bord=
er-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;bor=
der-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin=
-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:=
0px"><span style=3D"background-color:transparent;border-bottom-color:rgb(34=
,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-color:=
rgb(34,34,34);border-left-style:none;border-left-width:0px;border-right-col=
or:rgb(34,34,34);border-right-style:none;border-right-width:0px;border-top-=
color:rgb(34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34=
,34,34);display:inline;float:none;font-family:courier new,monospace;font-si=
ze:13px;font-style:normal;font-variant:normal;font-weight:400;letter-spacin=
g:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;=
padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-=
align:left;text-decoration:none;text-indent:0px;text-transform:none;white-s=
pace:normal;word-spacing:0px">Number Num;</span></font></span><br></div><di=
v><span><font face=3D"courier new,monospace" style=3D"border-bottom-color:r=
gb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-c=
olor:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-righ=
t-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;border=
-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-=
bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0=
px;padding-left:0px;padding-right:0px;padding-top:0px"><b style=3D"border-b=
ottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;=
border-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0p=
x;border-right-color:rgb(34,34,34);border-right-style:none;border-right-wid=
th:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-widt=
h:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;pad=
ding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px"></b><i =
style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-=
bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;bor=
der-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:none=
;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:non=
e;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;m=
argin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding=
-top:0px"></i><u style=3D"border-bottom-color:rgb(34,34,34);border-bottom-s=
tyle:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-le=
ft-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border=
-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bor=
der-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;m=
argin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-=
right:0px;padding-top:0px"></u><sub style=3D"border-bottom-color:rgb(34,34,=
34);border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(=
34,34,34);border-left-style:none;border-left-width:0px;border-right-color:r=
gb(34,34,34);border-right-style:none;border-right-width:0px;border-top-colo=
r:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0p=
x;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;paddin=
g-left:0px;padding-right:0px;padding-top:0px"></sub><sup style=3D"border-bo=
ttom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;b=
order-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px=
;border-right-color:rgb(34,34,34);border-right-style:none;border-right-widt=
h:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width=
:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padd=
ing-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px"></sup><s=
trike style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;b=
order-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:no=
ne;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-styl=
e:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-sty=
le:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right=
:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;p=
adding-top:0px"></strike><br style=3D"border-bottom-color:rgb(34,34,34);bor=
der-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,3=
4);border-left-style:none;border-left-width:0px;border-right-color:rgb(34,3=
4,34);border-right-style:none;border-right-width:0px;border-top-color:rgb(3=
4,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;margi=
n-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:=
0px;padding-right:0px;padding-top:0px"></font></span></div><div><span><font=
face=3D"courier new,monospace" style=3D"border-bottom-color:rgb(34,34,34);=
border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,3=
4,34);border-left-style:none;border-left-width:0px;border-right-color:rgb(3=
4,34,34);border-right-style:none;border-right-width:0px;border-top-color:rg=
b(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;ma=
rgin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-le=
ft:0px;padding-right:0px;padding-top:0px">}//<a</font></span><br></div><=
/div><div>=C2=A0<div><span style=3D"background-color:transparent;border-bot=
tom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;bo=
rder-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;=
border-right-color:rgb(34,34,34);border-right-style:none;border-right-width=
:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:=
0px;color:rgb(34,34,34);display:inline;float:none;font-size:13px;font-style=
:normal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-bo=
ttom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px=
;padding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-de=
coration:none;text-indent:0px;text-transform:none;white-space:normal;word-s=
pacing:0px"><font face=3D"courier new,monospace" style=3D"border-bottom-col=
or:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-le=
ft-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-=
right-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;bo=
rder-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;mar=
gin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bott=
om:0px;padding-left:0px;padding-right:0px;padding-top:0px"><span style=3D"b=
ackground-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom=
-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-=
left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);bord=
er-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);b=
order-top-style:none;border-top-width:0px;color:rgb(34,34,34);display:inlin=
e;float:none;font-family:courier new,monospace;font-size:13px;font-style:no=
rmal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-botto=
m:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;pa=
dding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-decor=
ation:none;text-indent:0px;text-transform:none;white-space:normal;word-spac=
ing:0px">namespace b {</span></font></span></div><div><span style=3D"backgr=
ound-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-styl=
e:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-=
style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-ri=
ght-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);border=
-top-style:none;border-top-width:0px;color:rgb(34,34,34);display:inline;flo=
at:none;font-size:13px;font-style:normal;font-variant:normal;font-weight:40=
0;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;=
margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;paddin=
g-top:0px;text-align:left;text-decoration:none;text-indent:0px;text-transfo=
rm:none;white-space:normal;word-spacing:0px"><font face=3D"courier new,mono=
space" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;=
border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:n=
one;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-sty=
le:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-st=
yle:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-righ=
t:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;=
padding-top:0px"><span style=3D"background-color:transparent;border-bottom-=
color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border=
-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;bord=
er-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0px=
;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;=
color:rgb(34,34,34);display:inline;float:none;font-family:courier new,monos=
pace;font-size:13px;font-style:normal;font-variant:normal;font-weight:400;l=
etter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;mar=
gin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-t=
op:0px;text-align:left;text-decoration:none;text-indent:0px;text-transform:=
none;white-space:normal;word-spacing:0px">const a::N bvar =3D 1;</span></fo=
nt></span></div><div><span style=3D"background-color:transparent;border-bot=
tom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;bo=
rder-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;=
border-right-color:rgb(34,34,34);border-right-style:none;border-right-width=
:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:=
0px;color:rgb(34,34,34);display:inline;float:none;font-size:13px;font-style=
:normal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-bo=
ttom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px=
;padding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-de=
coration:none;text-indent:0px;text-transform:none;white-space:normal;word-s=
pacing:0px"><font face=3D"courier new,monospace" style=3D"border-bottom-col=
or:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-le=
ft-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-=
right-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;bo=
rder-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;mar=
gin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bott=
om:0px;padding-left:0px;padding-right:0px;padding-top:0px">}</font></span><=
/div><b></b><i></i><u></u><sub></sub><sup></sup><strike></strike><br></div>=
<div>now, if we include a file that</div><div><br></div><div><div><div styl=
e=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);border-=
bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);b=
order-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34=
);border-right-style:none;border-right-width:0px;border-top-color:rgb(34,34=
,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);font-si=
ze:13px;font-style:normal;font-variant:normal;font-weight:400;letter-spacin=
g:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;=
padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-=
align:left;text-decoration:none;text-indent:0px;text-transform:none;white-s=
pace:normal;word-spacing:0px"><span style=3D"background-color:transparent;b=
order-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-wid=
th:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-w=
idth:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-ri=
ght-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-t=
op-width:0px;color:rgb(34,34,34);display:inline;float:none;font-size:13px;f=
ont-style:normal;font-variant:normal;font-weight:400;letter-spacing:normal;=
margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-b=
ottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-align:lef=
t;text-decoration:none;text-indent:0px;text-transform:none;white-space:norm=
al;word-spacing:0px"><font face=3D"courier new,monospace" style=3D"border-b=
ottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;=
border-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0p=
x;border-right-color:rgb(34,34,34);border-right-style:none;border-right-wid=
th:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-widt=
h:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;pad=
ding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px">namespa=
ce a {</font></span></div><div style=3D"background-color:transparent;border=
-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0p=
x;border-left-color:rgb(34,34,34);border-left-style:none;border-left-width:=
0px;border-right-color:rgb(34,34,34);border-right-style:none;border-right-w=
idth:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-wi=
dth:0px;color:rgb(34,34,34);font-size:13px;font-style:normal;font-variant:n=
ormal;font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0=
px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padd=
ing-right:0px;padding-top:0px;text-align:left;text-decoration:none;text-ind=
ent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span styl=
e=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);border-=
bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);b=
order-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34=
);border-right-style:none;border-right-width:0px;border-top-color:rgb(34,34=
,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);display=
:inline;float:none;font-size:13px;font-style:normal;font-variant:normal;fon=
t-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin=
-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right=
:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px;t=
ext-transform:none;white-space:normal;word-spacing:0px"><font face=3D"couri=
er new,monospace" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-=
style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-l=
eft-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);borde=
r-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bo=
rder-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;=
margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding=
-right:0px;padding-top:0px"><br style=3D"border-bottom-color:rgb(34,34,34);=
border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,3=
4,34);border-left-style:none;border-left-width:0px;border-right-color:rgb(3=
4,34,34);border-right-style:none;border-right-width:0px;border-top-color:rg=
b(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;ma=
rgin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-le=
ft:0px;padding-right:0px;padding-top:0px"></font></span></div><div style=3D=
"margin:0px;padding:0px;border:0px rgb(34,34,34);text-align:left;color:rgb(=
34,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;font-si=
ze:13px;font-variant:normal;word-spacing:0px;white-space:normal;background-=
color:transparent"><span style=3D"margin:0px;padding:0px;border:0px rgb(34,=
34,34);text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:=
0px;letter-spacing:normal;font-size:13px;font-variant:normal;word-spacing:0=
px;display:inline;white-space:normal;float:none;background-color:transparen=
t"><font face=3D"courier new,monospace" style=3D"border-bottom-color:rgb(34=
,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-color:=
rgb(34,34,34);border-left-style:none;border-left-width:0px;border-right-col=
or:rgb(34,34,34);border-right-style:none;border-right-width:0px;border-top-=
color:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-botto=
m:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;pa=
dding-left:0px;padding-right:0px;padding-top:0px"><span style=3D"margin:0px=
;padding:0px;border:0px rgb(34,34,34);text-align:left;color:rgb(34,34,34);t=
ext-transform:none;text-indent:0px;letter-spacing:normal;font-family:courie=
r new,monospace;font-size:13px;font-variant:normal;word-spacing:0px;display=
:inline;white-space:normal;float:none;background-color:transparent"><span s=
tyle=3D"display:inline!important;float:none;background-color:transparent;co=
lor:rgb(34,34,34);font-family:courier new,monospace;font-size:13px;font-sty=
le:normal;font-variant:normal;font-weight:400;letter-spacing:normal;text-al=
ign:left;text-decoration:none;text-indent:0px;text-transform:none;white-spa=
ce:normal;word-spacing:0px">const a::N somevar =3D 1.f;</span></span></font=
></span><br style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:=
none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-st=
yle:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-righ=
t-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-t=
op-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin=
-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right=
:0px;padding-top:0px"></div><div style=3D"background-color:transparent;bord=
er-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:=
0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-widt=
h:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-right=
-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-=
width:0px;color:rgb(34,34,34);font-size:13px;font-style:normal;font-variant=
:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left=
:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;pa=
dding-right:0px;padding-top:0px;text-align:left;text-decoration:none;text-i=
ndent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span st=
yle=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);borde=
r-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34)=
;border-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,=
34);border-right-style:none;border-right-width:0px;border-top-color:rgb(34,=
34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);displ=
ay:inline;float:none;font-size:13px;font-style:normal;font-variant:normal;f=
ont-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;marg=
in-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-rig=
ht:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px=
;text-transform:none;white-space:normal;word-spacing:0px"><font face=3D"cou=
rier new,monospace" style=3D"border-bottom-color:rgb(34,34,34);border-botto=
m-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border=
-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);bor=
der-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);=
border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0p=
x;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;paddi=
ng-right:0px;padding-top:0px"><b style=3D"border-bottom-color:rgb(34,34,34)=
;border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,=
34,34);border-left-style:none;border-left-width:0px;border-right-color:rgb(=
34,34,34);border-right-style:none;border-right-width:0px;border-top-color:r=
gb(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;m=
argin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-l=
eft:0px;padding-right:0px;padding-top:0px"></b><i style=3D"border-bottom-co=
lor:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-l=
eft-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;border=
-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;b=
order-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;ma=
rgin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bot=
tom:0px;padding-left:0px;padding-right:0px;padding-top:0px"></i><u style=3D=
"border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-w=
idth:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left=
-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-=
right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border=
-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-to=
p:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px=
"></u><sub style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:n=
one;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-sty=
le:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-right=
-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-to=
p-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-=
right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:=
0px;padding-top:0px"></sub><sup style=3D"border-bottom-color:rgb(34,34,34);=
border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,3=
4,34);border-left-style:none;border-left-width:0px;border-right-color:rgb(3=
4,34,34);border-right-style:none;border-right-width:0px;border-top-color:rg=
b(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;ma=
rgin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-le=
ft:0px;padding-right:0px;padding-top:0px"></sup><strike style=3D"border-bot=
tom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;bo=
rder-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;=
border-right-color:rgb(34,34,34);border-right-style:none;border-right-width=
:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:=
0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;paddi=
ng-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px"></strike>=
<b></b><i></i><u></u><sub></sub><sup></sup><strike></strike><br style=3D"bo=
rder-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-widt=
h:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-wi=
dth:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-rig=
ht-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-to=
p-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0=
px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px"><=
/font></span></div><div style=3D"background-color:transparent;border-bottom=
-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;borde=
r-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;bor=
der-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0p=
x;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px=
;color:rgb(34,34,34);font-size:13px;font-style:normal;font-variant:normal;f=
ont-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;marg=
in-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-rig=
ht:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px=
;text-transform:none;white-space:normal;word-spacing:0px"><span style=3D"ba=
ckground-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-=
style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-l=
eft-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);borde=
r-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bo=
rder-top-style:none;border-top-width:0px;color:rgb(34,34,34);display:inline=
;float:none;font-size:13px;font-style:normal;font-variant:normal;font-weigh=
t:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:=
0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;pa=
dding-top:0px;text-align:left;text-decoration:none;text-indent:0px;text-tra=
nsform:none;white-space:normal;word-spacing:0px"><font face=3D"courier new,=
monospace" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:n=
one;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-sty=
le:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-right=
-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-to=
p-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-=
right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:=
0px;padding-top:0px">}//<a</font></span></div><div style=3D"background-c=
olor:transparent;border-bottom-color:rgb(34,34,34);border-bottom-style:none=
;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:=
none;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-st=
yle:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-s=
tyle:none;border-top-width:0px;color:rgb(34,34,34);font-size:13px;font-styl=
e:normal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-b=
ottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0p=
x;padding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-d=
ecoration:none;text-indent:0px;text-transform:none;white-space:normal;word-=
spacing:0px"><span style=3D"background-color:transparent;border-bottom-colo=
r:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-lef=
t-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-r=
ight-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;bor=
der-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;colo=
r:rgb(34,34,34);display:inline;float:none;font-size:13px;font-style:normal;=
font-variant:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px=
;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding=
-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-decoration=
:none;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0=
px"><font face=3D"courier new,monospace" style=3D"border-bottom-color:rgb(3=
4,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-color=
:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-right-co=
lor:rgb(34,34,34);border-right-style:none;border-right-width:0px;border-top=
-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-bott=
om:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;p=
adding-left:0px;padding-right:0px;padding-top:0px"><br></font></span></div>=
<div style=3D"background-color:transparent;border-bottom-color:rgb(34,34,34=
);border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34=
,34,34);border-left-style:none;border-left-width:0px;border-right-color:rgb=
(34,34,34);border-right-style:none;border-right-width:0px;border-top-color:=
rgb(34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34=
);font-size:13px;font-style:normal;font-variant:normal;font-weight:400;lett=
er-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin=
-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:=
0px;text-align:left;text-decoration:none;text-indent:0px;text-transform:non=
e;white-space:normal;word-spacing:0px"><span style=3D"background-color:tran=
sparent;border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-b=
ottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;bord=
er-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;=
border-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none=
;border-top-width:0px;color:rgb(34,34,34);display:inline;float:none;font-si=
ze:13px;font-style:normal;font-variant:normal;font-weight:400;letter-spacin=
g:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;=
padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-=
align:left;text-decoration:none;text-indent:0px;text-transform:none;white-s=
pace:normal;word-spacing:0px"><font face=3D"arial,sans-serif" style=3D"bord=
er-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:=
0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-widt=
h:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-right=
-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-=
width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px=
;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px">BEF=
ORE b, then we "silently" change bvar to </font><font face=3D"cou=
rier new,monospace" style=3D"border-bottom-color:rgb(34,34,34);border-botto=
m-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border=
-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);bor=
der-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);=
border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0p=
x;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;paddi=
ng-right:0px;padding-top:0px">float</font></span></div><div style=3D"backgr=
ound-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-styl=
e:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-=
style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-ri=
ght-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);border=
-top-style:none;border-top-width:0px;color:rgb(34,34,34);font-size:13px;fon=
t-style:normal;font-variant:normal;font-weight:400;letter-spacing:normal;ma=
rgin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bot=
tom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-align:left;=
text-decoration:none;text-indent:0px;text-transform:none;white-space:normal=
;word-spacing:0px"><span style=3D"background-color:transparent;border-botto=
m-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;bord=
er-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;bo=
rder-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0=
px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0p=
x;color:rgb(34,34,34);display:inline;float:none;font-size:13px;font-style:n=
ormal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-bott=
om:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;p=
adding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-deco=
ration:none;text-indent:0px;text-transform:none;white-space:normal;word-spa=
cing:0px"><font face=3D"arial,sans-serif" style=3D"border-bottom-color:rgb(=
34,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-colo=
r:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-right-c=
olor:rgb(34,34,34);border-right-style:none;border-right-width:0px;border-to=
p-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-bot=
tom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;=
padding-left:0px;padding-right:0px;padding-top:0px"><font face=3D"courier n=
ew,monospace"></font><br></font></span></div><div style=3D"background-color=
:transparent;border-bottom-color:rgb(34,34,34);border-bottom-style:none;bor=
der-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none=
;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:=
none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-style=
:none;border-top-width:0px;color:rgb(34,34,34);font-size:13px;font-style:no=
rmal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-botto=
m:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;pa=
dding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-decor=
ation:none;text-indent:0px;text-transform:none;white-space:normal;word-spac=
ing:0px"><span style=3D"background-color:transparent;border-bottom-color:rg=
b(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-co=
lor:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-right=
-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;border-=
top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;color:rg=
b(34,34,34);display:inline;float:none;font-size:13px;font-style:normal;font=
-variant:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;mar=
gin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-lef=
t:0px;padding-right:0px;padding-top:0px;text-align:left;text-decoration:non=
e;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">=
<font face=3D"arial,sans-serif" style=3D"border-bottom-color:rgb(34,34,34);=
border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,3=
4,34);border-left-style:none;border-left-width:0px;border-right-color:rgb(3=
4,34,34);border-right-style:none;border-right-width:0px;border-top-color:rg=
b(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;ma=
rgin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-le=
ft:0px;padding-right:0px;padding-top:0px"><br></font></span></div><div styl=
e=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);border-=
bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);b=
order-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34=
);border-right-style:none;border-right-width:0px;border-top-color:rgb(34,34=
,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);font-si=
ze:13px;font-style:normal;font-variant:normal;font-weight:400;letter-spacin=
g:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;=
padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-=
align:left;text-decoration:none;text-indent:0px;text-transform:none;white-s=
pace:normal;word-spacing:0px"><span style=3D"background-color:transparent;b=
order-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-wid=
th:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-w=
idth:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-ri=
ght-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-t=
op-width:0px;color:rgb(34,34,34);display:inline;float:none;font-size:13px;f=
ont-style:normal;font-variant:normal;font-weight:400;letter-spacing:normal;=
margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-b=
ottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-align:lef=
t;text-decoration:none;text-indent:0px;text-transform:none;white-space:norm=
al;word-spacing:0px"><font face=3D"arial,sans-serif" style=3D"border-bottom=
-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;borde=
r-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;bor=
der-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0p=
x;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px=
;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-=
bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px">This is one =
of the reasons I prefer to <i>not</i> let late bounding <i>just yet</i>.</f=
ont></span></div><div style=3D"background-color:transparent;border-bottom-c=
olor:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-=
left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;borde=
r-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;=
border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;c=
olor:rgb(34,34,34);font-size:13px;font-style:normal;font-variant:normal;fon=
t-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin=
-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right=
:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px;t=
ext-transform:none;white-space:normal;word-spacing:0px"><span style=3D"back=
ground-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-st=
yle:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-lef=
t-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-=
right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bord=
er-top-style:none;border-top-width:0px;color:rgb(34,34,34);display:inline;f=
loat:none;font-size:13px;font-style:normal;font-variant:normal;font-weight:=
400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0p=
x;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padd=
ing-top:0px;text-align:left;text-decoration:none;text-indent:0px;text-trans=
form:none;white-space:normal;word-spacing:0px"><font face=3D"arial,sans-ser=
if" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;bor=
der-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none=
;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:=
none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-style=
:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0=
px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;pad=
ding-top:0px"><br></font></span></div><div style=3D"background-color:transp=
arent;border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bot=
tom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;border=
-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;bo=
rder-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;b=
order-top-width:0px;color:rgb(34,34,34);font-size:13px;font-style:normal;fo=
nt-variant:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;m=
argin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-l=
eft:0px;padding-right:0px;padding-top:0px;text-align:left;text-decoration:n=
one;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px=
"><span style=3D"background-color:transparent;border-bottom-color:rgb(34,34=
,34);border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb=
(34,34,34);border-left-style:none;border-left-width:0px;border-right-color:=
rgb(34,34,34);border-right-style:none;border-right-width:0px;border-top-col=
or:rgb(34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34=
,34);display:inline;float:none;font-size:13px;font-style:normal;font-varian=
t:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-lef=
t:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;p=
adding-right:0px;padding-top:0px;text-align:left;text-decoration:none;text-=
indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><font f=
ace=3D"arial,sans-serif" style=3D"border-bottom-color:rgb(34,34,34);border-=
bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);b=
order-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34=
);border-right-style:none;border-right-width:0px;border-top-color:rgb(34,34=
,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-le=
ft:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;=
padding-right:0px;padding-top:0px">I see no material benefit, yet multiple =
issues.</font></span></div><div style=3D"background-color:transparent;borde=
r-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0=
px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-width=
:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-right-=
width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-w=
idth:0px;color:rgb(34,34,34);font-size:13px;font-style:normal;font-variant:=
normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:=
0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;pad=
ding-right:0px;padding-top:0px;text-align:left;text-decoration:none;text-in=
dent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span sty=
le=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);border=
-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);=
border-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,3=
4);border-right-style:none;border-right-width:0px;border-top-color:rgb(34,3=
4,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);displa=
y:inline;float:none;font-size:13px;font-style:normal;font-variant:normal;fo=
nt-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margi=
n-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-righ=
t:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px;=
text-transform:none;white-space:normal;word-spacing:0px"><font face=3D"aria=
l,sans-serif" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-styl=
e:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-=
style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-ri=
ght-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);border=
-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;marg=
in-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-rig=
ht:0px;padding-top:0px"><br></font></span></div><div style=3D"background-co=
lor:transparent;border-bottom-color:rgb(34,34,34);border-bottom-style:none;=
border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:n=
one;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-sty=
le:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-st=
yle:none;border-top-width:0px;color:rgb(34,34,34);font-size:13px;font-style=
:normal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-bo=
ttom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px=
;padding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-de=
coration:none;text-indent:0px;text-transform:none;white-space:normal;word-s=
pacing:0px"><span style=3D"background-color:transparent;border-bottom-color=
:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-left=
-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-ri=
ght-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;bord=
er-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;color=
:rgb(34,34,34);display:inline;float:none;font-size:13px;font-style:normal;f=
ont-variant:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;=
margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-=
left:0px;padding-right:0px;padding-top:0px;text-align:left;text-decoration:=
none;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0p=
x"><font face=3D"arial,sans-serif" style=3D"border-bottom-color:rgb(34,34,3=
4);border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(3=
4,34,34);border-left-style:none;border-left-width:0px;border-right-color:rg=
b(34,34,34);border-right-style:none;border-right-width:0px;border-top-color=
:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px=
;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding=
-left:0px;padding-right:0px;padding-top:0px">I am ok with </font><font face=
=3D"courier new,monospace" style=3D"border-bottom-color:rgb(34,34,34);borde=
r-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34)=
;border-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,=
34);border-right-style:none;border-right-width:0px;border-top-color:rgb(34,=
34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;margin-=
left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0p=
x;padding-right:0px;padding-top:0px">Number auto</font></span></div><div st=
yle=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);borde=
r-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34)=
;border-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,=
34);border-right-style:none;border-right-width:0px;border-top-color:rgb(34,=
34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);font-=
size:13px;font-style:normal;font-variant:normal;font-weight:400;letter-spac=
ing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0p=
x;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;tex=
t-align:left;text-decoration:none;text-indent:0px;text-transform:none;white=
-space:normal;word-spacing:0px"><span style=3D"background-color:transparent=
;border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-w=
idth:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left=
-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-=
right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border=
-top-width:0px;color:rgb(34,34,34);display:inline;float:none;font-size:13px=
;font-style:normal;font-variant:normal;font-weight:400;letter-spacing:norma=
l;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding=
-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-align:l=
eft;text-decoration:none;text-indent:0px;text-transform:none;white-space:no=
rmal;word-spacing:0px"><font face=3D"arial,sans-serif" style=3D"border-bott=
om-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;bor=
der-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;b=
order-right-color:rgb(34,34,34);border-right-style:none;border-right-width:=
0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0=
px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;paddin=
g-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px"><font face=
=3D"courier new,monospace"></font><br></font></span></div><div style=3D"bac=
kground-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-s=
tyle:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-le=
ft-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border=
-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bor=
der-top-style:none;border-top-width:0px;color:rgb(34,34,34);font-size:13px;=
font-style:normal;font-variant:normal;font-weight:400;letter-spacing:normal=
;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-=
bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-align:le=
ft;text-decoration:none;text-indent:0px;text-transform:none;white-space:nor=
mal;word-spacing:0px"><span style=3D"background-color:transparent;border-bo=
ttom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;b=
order-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px=
;border-right-color:rgb(34,34,34);border-right-style:none;border-right-widt=
h:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width=
:0px;color:rgb(34,34,34);display:inline;float:none;font-size:13px;font-styl=
e:normal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-b=
ottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0p=
x;padding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-d=
ecoration:none;text-indent:0px;text-transform:none;white-space:normal;word-=
spacing:0px"><font face=3D"arial,sans-serif" style=3D"border-bottom-color:r=
gb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-c=
olor:rgb(34,34,34);border-left-style:none;border-left-width:0px;border-righ=
t-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;border=
-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-=
bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0=
px;padding-left:0px;padding-right:0px;padding-top:0px">And I hope it will b=
e upgraded to <font face=3D"courier new,monospace">Number T </font>as it <i=
>dramatically</i> improves declarations as one sees a type like he always d=
id, granted not a concrete one</font></span></div><div style=3D"background-=
color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-style:non=
e;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style=
:none;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-s=
tyle:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-=
style:none;border-top-width:0px;color:rgb(34,34,34);font-size:13px;font-sty=
le:normal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-=
bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0=
px;padding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-=
decoration:none;text-indent:0px;text-transform:none;white-space:normal;word=
-spacing:0px"></div><div style=3D"background-color:transparent;border-botto=
m-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;bord=
er-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;bo=
rder-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0=
px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0p=
x;color:rgb(34,34,34);font-size:13px;font-style:normal;font-variant:normal;=
font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;mar=
gin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-ri=
ght:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0p=
x;text-transform:none;white-space:normal;word-spacing:0px"><span style=3D"b=
ackground-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom=
-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-=
left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);bord=
er-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);b=
order-top-style:none;border-top-width:0px;color:rgb(34,34,34);display:inlin=
e;float:none;font-size:13px;font-style:normal;font-variant:normal;font-weig=
ht:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right=
:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;p=
adding-top:0px;text-align:left;text-decoration:none;text-indent:0px;text-tr=
ansform:none;white-space:normal;word-spacing:0px"><font face=3D"arial,sans-=
serif" style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;=
border-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:n=
one;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-sty=
le:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-st=
yle:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-righ=
t:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;=
padding-top:0px"><br></font></span></div><div style=3D"background-color:tra=
nsparent;border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-=
bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;bor=
der-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:none=
;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:non=
e;border-top-width:0px;color:rgb(34,34,34);font-size:13px;font-style:normal=
;font-variant:normal;font-weight:400;letter-spacing:normal;margin-bottom:0p=
x;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;paddin=
g-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-decoratio=
n:none;text-indent:0px;text-transform:none;white-space:normal;word-spacing:=
0px"><span style=3D"background-color:transparent;border-bottom-color:rgb(34=
,34,34);border-bottom-style:none;border-bottom-width:0px;border-left-color:=
rgb(34,34,34);border-left-style:none;border-left-width:0px;border-right-col=
or:rgb(34,34,34);border-right-style:none;border-right-width:0px;border-top-=
color:rgb(34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34=
,34,34);display:inline;float:none;font-size:13px;font-style:normal;font-var=
iant:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-=
left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0p=
x;padding-right:0px;padding-top:0px;text-align:left;text-decoration:none;te=
xt-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><fon=
t face=3D"courier new,monospace" style=3D"border-bottom-color:rgb(34,34,34)=
;border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,=
34,34);border-left-style:none;border-left-width:0px;border-right-color:rgb(=
34,34,34);border-right-style:none;border-right-width:0px;border-top-color:r=
gb(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;m=
argin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-l=
eft:0px;padding-right:0px;padding-top:0px">[](All Args&&... args) {=
f(std::forward<Args>(args)...)<wbr>; }</font></span></div><div style=
=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);border-b=
ottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);bo=
rder-left-style:none;border-left-width:0px;border-right-color:rgb(34,34,34)=
;border-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,=
34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);font-siz=
e:13px;font-style:normal;font-variant:normal;font-weight:400;letter-spacing=
:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;p=
adding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-a=
lign:left;text-decoration:none;text-indent:0px;text-transform:none;white-sp=
ace:normal;word-spacing:0px"><span style=3D"background-color:transparent;bo=
rder-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-widt=
h:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-wi=
dth:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-rig=
ht-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-to=
p-width:0px;color:rgb(34,34,34);display:inline;float:none;font-size:13px;fo=
nt-style:normal;font-variant:normal;font-weight:400;letter-spacing:normal;m=
argin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bo=
ttom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-align:left=
;text-decoration:none;text-indent:0px;text-transform:none;white-space:norma=
l;word-spacing:0px"><font face=3D"courier new,monospace" style=3D"border-bo=
ttom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;b=
order-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px=
;border-right-color:rgb(34,34,34);border-right-style:none;border-right-widt=
h:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width=
:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padd=
ing-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px"><br></fo=
nt></span></div><div style=3D"margin:0px;padding:0px;border:0px rgb(34,34,3=
4);text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;=
letter-spacing:normal;font-size:13px;font-variant:normal;font-weight:400;te=
xt-decoration:none;word-spacing:0px;white-space:normal;background-color:tra=
nsparent"><span style=3D"margin:0px;padding:0px;border:0px rgb(34,34,34);te=
xt-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;lette=
r-spacing:normal;font-size:13px;font-variant:normal;font-weight:400;text-de=
coration:none;word-spacing:0px;display:inline;white-space:normal;float:none=
;background-color:transparent"><font face=3D"arial,sans-serif" style=3D"bor=
der-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width=
:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-wid=
th:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-righ=
t-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top=
-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0p=
x;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px"><i=
>I will take that before <b>ANY</b> other form!</i></font></span></div><div=
style=3D"margin:0px;padding:0px;border:0px rgb(34,34,34);text-align:left;c=
olor:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:norma=
l;font-size:13px;font-variant:normal;font-weight:400;text-decoration:none;w=
ord-spacing:0px;white-space:normal;background-color:transparent"><br></div>=
<div style=3D"margin:0px;padding:0px;border:0px rgb(34,34,34);text-align:le=
ft;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:n=
ormal;font-size:13px;font-variant:normal;font-weight:400;text-decoration:no=
ne;word-spacing:0px;white-space:normal;background-color:transparent"><br></=
div></div></div></div></blockquote><div><br></div><div>=C2=A0</div><div>Oh,=
boy, <i>I just remembered</i>:</div><div><br></div><div><font face=3D"cour=
ier new,monospace">using Randon_access_iterator{Ran};=C2=A0</font></div><di=
v><font face=3D"courier new,monospace"><br></font></div><div><font face=3D"=
courier new,monospace">// ...=C2=A0</font></div><div><font face=3D"courier =
new,monospace"><br></font></div><div><font face=3D"courier new,monospace">v=
oid sort(Ran p, Ran q);</font></div><div><font face=3D"courier new,monospac=
e"></font><br></div><div><font face=3D"courier new,monospace"><br></font></=
div><div><font face=3D"courier new,monospace">using Forward_iterator{For};<=
br>using Forward_iterator{For2}; <br>using Output_iterator{Out};=C2=A0</fon=
t></div><div><font face=3D"courier new,monospace"><br></font></div><div><fo=
nt face=3D"courier new,monospace">// ...=C2=A0</font></div><div><font face=
=3D"courier new,monospace"><br></font></div><div><font face=3D"courier new,=
monospace">void merge(For p, For q, For2 p2, For2 q2, Out p);</font></div><=
div><font face=3D"courier new,monospace"><br></font></div><div>The syntax o=
f this using-declaration is: <font face=3D"courier new,monospace">using nam=
e-of-concept { identifier-list };=C2=A0</font></div><div><font face=3D"cour=
ier new,monospace"><br></font></div><div>So, we have a very terse syntax th=
at minimizes repetition and can distinguish between two uses of the same ty=
pe of a concept and (potentially) two di=EF=AC=80erent type of a concept. <=
br>In case, you lost track of the reason for going in this direction: This =
terse syntax can be used for lambdas, where the old (verbose) syntax is eit=
her impossible or so verbose that it would encourage the use of unconstrain=
ed lambdas.</div><div><br></div><div>For example: <br><font face=3D"courier=
new,monospace">[] (For p, For q, For2 p2, For2 q2, Out p) { /=E2=88=97 do =
some merging ... =E2=88=97/ }</font></div><div><font face=3D"courier new,mo=
nospace"></font><br>It is from: http://www.open-std.org/jtc1/sc22/wg21/docs=
/papers/2013/n3580.pdf</div><div><br><b><i>Sound familiar? :)</i></b></div>=
</div>
<p></p>
-- <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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/8049d704-c1ed-43a5-9625-0aaa63b1473d%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/8049d704-c1ed-43a5-9625-0aaa63b1473d=
%40isocpp.org</a>.<br />
------=_Part_88310_815581913.1531552846664--
------=_Part_88309_819854804.1531552846663--
.
Author: mihailnajdenov@gmail.com
Date: Sat, 14 Jul 2018 00:22:21 -0700 (PDT)
Raw View
------=_Part_148107_687879549.1531552941054
Content-Type: multipart/alternative;
boundary="----=_Part_148108_1636505387.1531552941055"
------=_Part_148108_1636505387.1531552941055
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
On Friday, July 13, 2018 at 8:32:56 AM UTC+3, Zhihao Yuan wrote:
>
> From: hubert.rein...@gmail.com <javascript:> <hubert.rein...@gmail.com=20
> <javascript:>>=20
> Sent: Thursday, July 12, 2018 9:44 PM=20
> >=20
> > template <typename T> concept C0 =3D true;=20
> > template <typename ...Ts> concept C1 =3D true;=20
> >=20
> > template <C0 ...Ts> struct A0 { }; // (C0<Ts> && ...)=20
> > template <C1 ...Ts> struct A1 { }; // C1<Ts...>=20
> >=20
> > If you don't like it, then I think papers are welcome. [...]=20
>
> Oh dear, that's a crazy one, I wish P1141R0's wording=20
> can get rid of it (because that's essentially the 4th kind).=20
> If we have a multi-argument constrained-parameter like=20
> I suggested, we could make this orthogonal with a=20
> different syntax, like `Sortable Ts...,` where `Sortable`=20
> doesn't need to be a concept accepting a parameter pack.=20
>
> --=20
> Zhihao Yuan, ID lichray=20
> The best way to predict the future is to invent it.=20
> _______________________________________________=20
>
>
>
Oh, boy, *I just remembered:*
using Randon_access_iterator{Ran};=20
// ...=20
void sort(Ran p, Ran q);
using Forward_iterator{For};
using Forward_iterator{For2};=20
using Output_iterator{Out};=20
// ...=20
void merge(For p, For q, For2 p2, For2 q2, Out p);
The syntax of this using-declaration is: using name-of-concept {=20
identifier-list };=20
So, we have a very terse syntax that minimizes repetition and can=20
distinguish between two uses of the same type of a concept and=20
(potentially) two di=EF=AC=80erent type of a concept.=20
In case, you lost track of the reason for going in this direction: This=20
terse syntax can be used for lambdas, where the old (verbose) syntax is=20
either impossible or so verbose that it would encourage the use of=20
unconstrained lambdas.
For example:=20
[] (For p, For q, For2 p2, For2 q2, Out p) { /=E2=88=97 do some merging ...=
=E2=88=97/ }
This is from:=20
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3580.pdf
*Sound familiar? :) *
--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/2b48598f-05c6-44d8-a68c-4c5443ae121a%40isocpp.or=
g.
------=_Part_148108_1636505387.1531552941055
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><br><br>On Friday, July 13, 2018 at 8:32:56 AM UTC+3, Zhih=
ao Yuan wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-l=
eft: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">From: <a onmouse=
down=3D"this.href=3D'javascript:';return true;" onclick=3D"this.hre=
f=3D'javascript:';return true;" href=3D"javascript:" target=3D"_bla=
nk" rel=3D"nofollow" gdf-obfuscated-mailto=3D"nzqC8Us6CQAJ">hubert.rein...@=
gmail.<wbr>com</a> <<a onmousedown=3D"this.href=3D'javascript:';=
return true;" onclick=3D"this.href=3D'javascript:';return true;" hr=
ef=3D"javascript:" target=3D"_blank" rel=3D"nofollow" gdf-obfuscated-mailto=
=3D"nzqC8Us6CQAJ">hubert.rein...@gmail.<wbr>com</a>>=20
<br>Sent: Thursday, July 12, 2018 9:44 PM
<br>>=20
<br>> template <typename T> concept C0 =3D true;
<br>> template <typename ...Ts> concept C1 =3D true;
<br>>=20
<br>> template <C0 ...Ts> struct A0 { }; // (C0<Ts> &&am=
p; ...)
<br>> template <C1 ...Ts> struct A1 { }; // C1<Ts...>
<br>>=20
<br>> If you don't like it, then I think papers are welcome. [...]
<br>
<br>Oh dear, that's a crazy one, I wish P1141R0's wording
<br>can get rid of it (because that's essentially the 4th kind).
<br>If we have a multi-argument constrained-parameter like
<br>I suggested, we could make this orthogonal with a
<br>different syntax, like `Sortable Ts...,` where `Sortable`
<br>doesn't need to be a concept accepting a parameter pack.
<br>
<br>--
<br>Zhihao Yuan, ID lichray
<br>The best way to predict the future is to invent it.
<br>______________________________<wbr>_________________
<br>
<br>
<br></blockquote><div><br></div><div><br></div><div><br></div><div>Oh, boy,=
<font face=3D"courier new,monospace"> </font><font face=3D"arial,sans-serif=
"><i>I just remembered:</i></font></div><div><font face=3D"courier new,mono=
space"></font><font face=3D"arial,sans-serif"></font><i></i><br></div><div>=
<font face=3D"courier new,monospace">using Randon_access_iterator{Ran}; </f=
ont></div><div><font face=3D"courier new,monospace">// ... </font></div><di=
v><font face=3D"courier new,monospace">void sort(Ran p, Ran q);</font></div=
><div><font face=3D"courier new,monospace"><br></font></div><div><font face=
=3D"courier new,monospace">using Forward_iterator{For};<br>using Forward_it=
erator{For2}; <br>using Output_iterator{Out}; </font></div><div><font face=
=3D"courier new,monospace">// ... </font></div><div><font face=3D"courier n=
ew,monospace">void merge(For p, For q, For2 p2, For2 q2, Out p);</font></di=
v><div><font face=3D"courier new,monospace"><br></font></div><div>The synta=
x of this using-declaration is: <font face=3D"courier new,monospace">using =
name-of-concept { identifier-list };=C2=A0</font></div><div><font face=3D"c=
ourier new,monospace"><br></font></div><div>So, we have a very terse syntax=
that minimizes repetition and can distinguish between two uses of the same=
type of a concept and (potentially) two di=EF=AC=80erent type of a concept=
.. <br>In case, you lost track of the reason for going in this direction: Th=
is terse syntax can be used for lambdas, where the old (verbose) syntax is =
either impossible or so verbose that it would encourage the use of unconstr=
ained lambdas.</div><div><br></div><div>For example: <br><font face=3D"cour=
ier new,monospace">[] (For p, For q, For2 p2, For2 q2, Out p) { /=E2=88=97 =
do some merging ... =E2=88=97/ }</font></div><div><font face=3D"courier new=
,monospace"></font><br>This is from: http://www.open-std.org/jtc1/sc22/wg21=
/docs/papers/2013/n3580.pdf</div><div><i><br><b>Sound familiar? :)=C2=A0</b=
></i></div></div>
<p></p>
-- <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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/2b48598f-05c6-44d8-a68c-4c5443ae121a%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/2b48598f-05c6-44d8-a68c-4c5443ae121a=
%40isocpp.org</a>.<br />
------=_Part_148108_1636505387.1531552941055--
------=_Part_148107_687879549.1531552941054--
.