Topic: When C++ will support unconstrained generic
Author: =?UTF-8?Q?Aar=C3=B3n_Bueno_Villares?= <abv150ci@gmail.com>
Date: Tue, 9 May 2017 18:26:46 +0200
Raw View
--001a113adb08d36f30054f19d4a2
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
What=E2=80=99s wrong with
template<class T>
auto func(const T& i)
{
// ...
}
? Although I agree `auto` is more confortable, the feature already exists.
On 9 May 2017 at 18:08, Denis Kotov <redradist@gmail.com> wrote:
Hi everyone,
>
> I am interested in the following feature:
>
> // Unconstrained generic function
> auto func(const auto &i) {
> std::cout << "Type of object i is " << typeid(i).name() << std::endl;
> std::cout << "Value is " << i << std::endl;
> }
>
> int main() {
> func(1);
> func(std::string{"Hi Denis !"});
> return 0;
> }
>
>
> I knew that in C++14 we already have something like this:
>
> auto func =3D [](const auto &i) {
>
> std::cout << "Type of object i is " << typeid(i).name() << std::endl;
> std::cout << "Value is " << i << std::endl;
> }
>
>
> But when the same appear for simply functions either ?
>
> --
> 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/e59063c6-c646-4d7e-
> 965a-6e404f17886a%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/e59063c6-c6=
46-4d7e-965a-6e404f17886a%40isocpp.org?utm_medium=3Demail&utm_source=3Dfoot=
er>
> .
>
=E2=80=8B
--=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/CAMbYJhZUDf%3DV8RzbNzzoExFHidXwSeuxS3Lv92EsE1G%3=
DF5O3YA%40mail.gmail.com.
--001a113adb08d36f30054f19d4a2
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div class=3D"markdown-here-wrapper" style=3D""><p style=
=3D"margin:0px 0px 1.2em!important">What=E2=80=99s wrong with </p>
<pre style=3D"font-size:0.85em;font-family:Consolas,Inconsolata,Courier,mon=
ospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code style=3D"fon=
t-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px=
0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234=
,234);background-color:rgb(248,248,248);border-radius:3px;display:inline;wh=
ite-space:pre;overflow:auto;border-radius:3px;border:1px solid rgb(204,204,=
204);padding:0.5em 0.7em;display:block!important">template<class T>
auto func(const T& i)
{
// ...
}
</code></pre><p style=3D"margin:0px 0px 1.2em!important">? Although I agree=
`auto` is more confortable, the feature already exists.<br><br>On 9 May 20=
17 at 18:08, Denis Kotov <<a href=3D"mailto:redradist@gmail.com" target=
=3D"_blank">redradist@gmail.com</a>> wrote:</p>
<p style=3D"margin:0px 0px 1.2em!important"></p><div class=3D"markdown-here=
-exclude"><p></p><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">Hi everyon=
e,<br><br>I am interested in the following feature:<br><br><pre class=3D"m_=
-203686010978010516lang-cpp m_-203686010978010516prettyprint m_-20368601097=
8010516prettyprinted"><code><div style=3D"background-color:rgb(250,250,250)=
;border-color:rgb(187,187,187);border-style:solid;border-width:1px" class=
=3D"m_-203686010978010516prettyprint"><code class=3D"m_-203686010978010516p=
rettyprint"><div class=3D"m_-203686010978010516subprettyprint"><pre class=
=3D"m_-203686010978010516lang-cpp m_-203686010978010516prettyprint m_-20368=
6010978010516prettyprinted"><code><span style=3D"color:#800" class=3D"m_-20=
3686010978010516styled-by-prettify">// Unconstrained generic function</span=
><span style=3D"color:#000" class=3D"m_-203686010978010516styled-by-prettif=
y"><br></span><span style=3D"color:#008" class=3D"m_-203686010978010516styl=
ed-by-prettify">auto</span><span style=3D"color:#000" class=3D"m_-203686010=
978010516styled-by-prettify"> func</span><span style=3D"color:#660" class=
=3D"m_-203686010978010516styled-by-prettify">(</span><span style=3D"color:#=
008" class=3D"m_-203686010978010516styled-by-prettify">const</span><span st=
yle=3D"color:#000" class=3D"m_-203686010978010516styled-by-prettify"> </spa=
n><span style=3D"color:#008" class=3D"m_-203686010978010516styled-by-pretti=
fy">auto</span><span style=3D"color:#000" class=3D"m_-203686010978010516sty=
led-by-prettify"> </span><span style=3D"color:#660" class=3D"m_-20368601097=
8010516styled-by-prettify">&</span><span style=3D"color:#000" class=3D"=
m_-203686010978010516styled-by-prettify">i</span><span style=3D"color:#660"=
class=3D"m_-203686010978010516styled-by-prettify">)</span><span style=3D"c=
olor:#000" class=3D"m_-203686010978010516styled-by-prettify"> </span><span =
style=3D"color:#660" class=3D"m_-203686010978010516styled-by-prettify">{</s=
pan><span style=3D"color:#000" class=3D"m_-203686010978010516styled-by-pret=
tify"><br>=C2=A0 std</span><span style=3D"color:#660" class=3D"m_-203686010=
978010516styled-by-prettify">::</span><span style=3D"color:#000" class=3D"m=
_-203686010978010516styled-by-prettify">cout </span><span style=3D"color:#6=
60" class=3D"m_-203686010978010516styled-by-prettify"><<</span><span =
style=3D"color:#000" class=3D"m_-203686010978010516styled-by-prettify"> </s=
pan><span style=3D"color:#080" class=3D"m_-203686010978010516styled-by-pret=
tify">"Type of object i is "</span><span style=3D"color:#000" cla=
ss=3D"m_-203686010978010516styled-by-prettify"> </span><span style=3D"color=
:#660" class=3D"m_-203686010978010516styled-by-prettify"><<</span><sp=
an style=3D"color:#000" class=3D"m_-203686010978010516styled-by-prettify"> =
</span><span style=3D"color:#008" class=3D"m_-203686010978010516styled-by-p=
rettify">typeid</span><span style=3D"color:#660" class=3D"m_-20368601097801=
0516styled-by-prettify">(</span><span style=3D"color:#000" class=3D"m_-2036=
86010978010516styled-by-prettify">i</span><span style=3D"color:#660" class=
=3D"m_-203686010978010516styled-by-prettify">).</span><span style=3D"color:=
#000" class=3D"m_-203686010978010516styled-by-prettify">name</span><span st=
yle=3D"color:#660" class=3D"m_-203686010978010516styled-by-prettify">()</sp=
an><span style=3D"color:#000" class=3D"m_-203686010978010516styled-by-prett=
ify"> </span><span style=3D"color:#660" class=3D"m_-203686010978010516style=
d-by-prettify"><<</span><span style=3D"color:#000" class=3D"m_-203686=
010978010516styled-by-prettify"> std</span><span style=3D"color:#660" class=
=3D"m_-203686010978010516styled-by-prettify">::</span><span style=3D"color:=
#000" class=3D"m_-203686010978010516styled-by-prettify">endl</span><span st=
yle=3D"color:#660" class=3D"m_-203686010978010516styled-by-prettify">;</spa=
n><span style=3D"color:#000" class=3D"m_-203686010978010516styled-by-pretti=
fy"><br>=C2=A0 std</span><span style=3D"color:#660" class=3D"m_-20368601097=
8010516styled-by-prettify">::</span><span style=3D"color:#000" class=3D"m_-=
203686010978010516styled-by-prettify">cout </span><span style=3D"color:#660=
" class=3D"m_-203686010978010516styled-by-prettify"><<</span><span st=
yle=3D"color:#000" class=3D"m_-203686010978010516styled-by-prettify"> </spa=
n><span style=3D"color:#080" class=3D"m_-203686010978010516styled-by-pretti=
fy">"Value is "</span><span style=3D"color:#000" class=3D"m_-2036=
86010978010516styled-by-prettify"> </span><span style=3D"color:#660" class=
=3D"m_-203686010978010516styled-by-prettify"><<</span><span style=3D"=
color:#000" class=3D"m_-203686010978010516styled-by-prettify"> i </span><sp=
an style=3D"color:#660" class=3D"m_-203686010978010516styled-by-prettify">&=
lt;<</span><span style=3D"color:#000" class=3D"m_-203686010978010516styl=
ed-by-prettify"> std</span><span style=3D"color:#660" class=3D"m_-203686010=
978010516styled-by-prettify">::</span><span style=3D"color:#000" class=3D"m=
_-203686010978010516styled-by-prettify">endl</span><span style=3D"color:#66=
0" class=3D"m_-203686010978010516styled-by-prettify">;</span><span style=3D=
"color:#000" class=3D"m_-203686010978010516styled-by-prettify"><br></span><=
span style=3D"color:#660" class=3D"m_-203686010978010516styled-by-prettify"=
>}</span><span style=3D"color:#000" class=3D"m_-203686010978010516styled-by=
-prettify"><br><br></span><span style=3D"color:#008" class=3D"m_-2036860109=
78010516styled-by-prettify">int</span><span style=3D"color:#000" class=3D"m=
_-203686010978010516styled-by-prettify"> main</span><span style=3D"color:#6=
60" class=3D"m_-203686010978010516styled-by-prettify">()</span><span style=
=3D"color:#000" class=3D"m_-203686010978010516styled-by-prettify"> </span><=
span style=3D"color:#660" class=3D"m_-203686010978010516styled-by-prettify"=
>{</span><span style=3D"color:#000" class=3D"m_-203686010978010516styled-by=
-prettify"><br>=C2=A0 func</span><span style=3D"color:#660" class=3D"m_-203=
686010978010516styled-by-prettify">(</span><span style=3D"color:#066" class=
=3D"m_-203686010978010516styled-by-prettify">1</span><span style=3D"color:#=
660" class=3D"m_-203686010978010516styled-by-prettify">);</span><span style=
=3D"color:#000" class=3D"m_-203686010978010516styled-by-prettify"><br>=C2=
=A0 func</span><span style=3D"color:#660" class=3D"m_-203686010978010516sty=
led-by-prettify">(</span><span style=3D"color:#000" class=3D"m_-20368601097=
8010516styled-by-prettify">std</span><span style=3D"color:#660" class=3D"m_=
-203686010978010516styled-by-prettify">::</span><span style=3D"color:#008" =
class=3D"m_-203686010978010516styled-by-prettify">string</span><span style=
=3D"color:#660" class=3D"m_-203686010978010516styled-by-prettify">{</span><=
span style=3D"color:#080" class=3D"m_-203686010978010516styled-by-prettify"=
>"Hi Denis !"</span><span style=3D"color:#660" class=3D"m_-203686=
010978010516styled-by-prettify">});</span><span style=3D"color:#000" class=
=3D"m_-203686010978010516styled-by-prettify"><br>=C2=A0 </span><span style=
=3D"color:#008" class=3D"m_-203686010978010516styled-by-prettify">return</s=
pan><span style=3D"color:#000" class=3D"m_-203686010978010516styled-by-pret=
tify"> </span><span style=3D"color:#066" class=3D"m_-203686010978010516styl=
ed-by-prettify">0</span><span style=3D"color:#660" class=3D"m_-203686010978=
010516styled-by-prettify">;</span><span style=3D"color:#000" class=3D"m_-20=
3686010978010516styled-by-prettify"><br></span><span style=3D"color:#660" c=
lass=3D"m_-203686010978010516styled-by-prettify">}</span></code></pre></div=
></code></div><span class=3D"m_-203686010978010516pun"><br></span><span cla=
ss=3D"m_-203686010978010516pun">I knew that in C++14 we already have someth=
ing like this:<br><br></span></code><code><span style=3D"color:#008" class=
=3D"m_-203686010978010516styled-by-prettify">auto</span><span style=3D"colo=
r:#000" class=3D"m_-203686010978010516styled-by-prettify"> func </span><spa=
n style=3D"color:#660" class=3D"m_-203686010978010516styled-by-prettify">=
=3D</span><span style=3D"color:#000" class=3D"m_-203686010978010516styled-b=
y-prettify"> </span><span style=3D"color:#660" class=3D"m_-2036860109780105=
16styled-by-prettify">[](</span><span style=3D"color:#008" class=3D"m_-2036=
86010978010516styled-by-prettify">const</span><span style=3D"color:#000" cl=
ass=3D"m_-203686010978010516styled-by-prettify"> </span><span style=3D"colo=
r:#008" class=3D"m_-203686010978010516styled-by-prettify">auto</span><span =
style=3D"color:#000" class=3D"m_-203686010978010516styled-by-prettify"> </s=
pan><span style=3D"color:#660" class=3D"m_-203686010978010516styled-by-pret=
tify">&</span><span style=3D"color:#000" class=3D"m_-203686010978010516=
styled-by-prettify">i</span><span style=3D"color:#660" class=3D"m_-20368601=
0978010516styled-by-prettify">)</span><span style=3D"color:#000" class=3D"m=
_-203686010978010516styled-by-prettify"> </span><span style=3D"color:#660" =
class=3D"m_-203686010978010516styled-by-prettify">{</span></code><span styl=
e=3D"color:#000" class=3D"m_-203686010978010516styled-by-prettify"></span><=
br><span style=3D"color:#000" class=3D"m_-203686010978010516styled-by-prett=
ify"></span><code><span class=3D"m_-203686010978010516pun"><div style=3D"ba=
ckground-color:rgb(250,250,250);border-color:rgb(187,187,187);border-style:=
solid;border-width:1px" class=3D"m_-203686010978010516prettyprint"><code cl=
ass=3D"m_-203686010978010516prettyprint"><div class=3D"m_-20368601097801051=
6subprettyprint"><code></code><pre class=3D"m_-203686010978010516lang-cpp m=
_-203686010978010516prettyprint m_-203686010978010516prettyprinted"><code><=
span style=3D"color:#000" class=3D"m_-203686010978010516styled-by-prettify"=
>=C2=A0 std</span><span style=3D"color:#660" class=3D"m_-203686010978010516=
styled-by-prettify">::</span><span style=3D"color:#000" class=3D"m_-2036860=
10978010516styled-by-prettify">cout </span><span style=3D"color:#660" class=
=3D"m_-203686010978010516styled-by-prettify"><<</span><span style=3D"=
color:#000" class=3D"m_-203686010978010516styled-by-prettify"> </span><span=
style=3D"color:#080" class=3D"m_-203686010978010516styled-by-prettify">&qu=
ot;Type of object i is "</span><span style=3D"color:#000" class=3D"m_-=
203686010978010516styled-by-prettify"> </span><span style=3D"color:#660" cl=
ass=3D"m_-203686010978010516styled-by-prettify"><<</span><span style=
=3D"color:#000" class=3D"m_-203686010978010516styled-by-prettify"> </span><=
span style=3D"color:#008" class=3D"m_-203686010978010516styled-by-prettify"=
>typeid</span><span style=3D"color:#660" class=3D"m_-203686010978010516styl=
ed-by-prettify">(</span><span style=3D"color:#000" class=3D"m_-203686010978=
010516styled-by-prettify">i</span><span style=3D"color:#660" class=3D"m_-20=
3686010978010516styled-by-prettify">).</span><span style=3D"color:#000" cla=
ss=3D"m_-203686010978010516styled-by-prettify">name</span><span style=3D"co=
lor:#660" class=3D"m_-203686010978010516styled-by-prettify">()</span><span =
style=3D"color:#000" class=3D"m_-203686010978010516styled-by-prettify"> </s=
pan><span style=3D"color:#660" class=3D"m_-203686010978010516styled-by-pret=
tify"><<</span><span style=3D"color:#000" class=3D"m_-203686010978010=
516styled-by-prettify"> std</span><span style=3D"color:#660" class=3D"m_-20=
3686010978010516styled-by-prettify">::</span><span style=3D"color:#000" cla=
ss=3D"m_-203686010978010516styled-by-prettify">endl</span><span style=3D"co=
lor:#660" class=3D"m_-203686010978010516styled-by-prettify">;</span><span s=
tyle=3D"color:#000" class=3D"m_-203686010978010516styled-by-prettify"><br>=
=C2=A0 std</span><span style=3D"color:#660" class=3D"m_-203686010978010516s=
tyled-by-prettify">::</span><span style=3D"color:#000" class=3D"m_-20368601=
0978010516styled-by-prettify">cout </span><span style=3D"color:#660" class=
=3D"m_-203686010978010516styled-by-prettify"><<</span><span style=3D"=
color:#000" class=3D"m_-203686010978010516styled-by-prettify"> </span><span=
style=3D"color:#080" class=3D"m_-203686010978010516styled-by-prettify">&qu=
ot;Value is "</span><span style=3D"color:#000" class=3D"m_-20368601097=
8010516styled-by-prettify"> </span><span style=3D"color:#660" class=3D"m_-2=
03686010978010516styled-by-prettify"><<</span><span style=3D"color:#0=
00" class=3D"m_-203686010978010516styled-by-prettify"> i </span><span style=
=3D"color:#660" class=3D"m_-203686010978010516styled-by-prettify"><<<=
/span><span style=3D"color:#000" class=3D"m_-203686010978010516styled-by-pr=
ettify"> std</span><span style=3D"color:#660" class=3D"m_-20368601097801051=
6styled-by-prettify">::</span><span style=3D"color:#000" class=3D"m_-203686=
010978010516styled-by-prettify">endl</span><span style=3D"color:#660" class=
=3D"m_-203686010978010516styled-by-prettify">;</span><span style=3D"color:#=
000" class=3D"m_-203686010978010516styled-by-prettify"><br></span><span sty=
le=3D"color:#660" class=3D"m_-203686010978010516styled-by-prettify">}</span=
></code></pre></div></code></div><br>But when the same appear for simply fu=
nctions either ?<span class=3D"HOEnZb"><font color=3D"#888888"><br></font><=
/span></span></code></pre></div><span class=3D"HOEnZb"><font color=3D"#8888=
88">
<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" target=3D"_=
blank">std-proposals+unsubscribe@<wbr>isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org" target=3D"_blank">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/e59063c6-c646-4d7e-965a-6e404f17886a%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter" target=3D"_blank">=
https://groups.google.com/a/<wbr>isocpp.org/d/msgid/std-<wbr>proposals/e590=
63c6-c646-4d7e-<wbr>965a-6e404f17886a%40isocpp.org</a><wbr>.<br>
</font></span></blockquote><p></p></div><p style=3D"margin:0px 0px 1.2em!im=
portant"></p>
<div title=3D"MDH:V2hhdCdzIHdyb25nIHdpdGjCoDxicj48YnI+wqAgwqAgdGVtcGxhdGUmb=
HQ7Y2xhc3MgVCZndDs8
YnI+wqAgwqAgYXV0byBmdW5jKGNvbnN0IFQmYW1wOyBpKTxkaXY+Jm5ic3A7ICZuYnNwOyB7PGJ=
y
PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsvLyAuLi48YnI+Jm5ic3A7ICZuYnN=
w
OyB9PGJyPjxicj4/PGRpdiBjbGFzcz0iZ21haWxfZXh0cmEiPjxicj48ZGl2IGNsYXNzPSJnbWF=
p
bF9xdW90ZSI+T24gOSBNYXkgMjAxNyBhdCAxODowOCwgRGVuaXMgS290b3YgPHNwYW4gZGlyPSJ=
s
dHIiPiZsdDs8YSBocmVmPSJtYWlsdG86cmVkcmFkaXN0QGdtYWlsLmNvbSIgdGFyZ2V0PSJfYmx=
h
bmsiPnJlZHJhZGlzdEBnbWFpbC5jb208L2E+Jmd0Ozwvc3Bhbj4gd3JvdGU6PGJyPjxibG9ja3F=
1
b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowIDAgMCAuOGV4O2JvcmRlci1=
s
ZWZ0OjFweCAjY2NjIHNvbGlkO3BhZGRpbmctbGVmdDoxZXgiPjxkaXYgZGlyPSJsdHIiPkhpIGV=
2
ZXJ5b25lLDxicj48YnI+SSBhbSBpbnRlcmVzdGVkIGluIHRoZSBmb2xsb3dpbmcgZmVhdHVyZTo=
8
YnI+PGJyPjxwcmUgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNmxhbmctY3BwIG1fLTIwMzY=
4
NjAxMDk3ODAxMDUxNnByZXR0eXByaW50IG1fLTIwMzY4NjAxMDk3ODAxMDUxNnByZXR0eXByaW5=
0
ZWQiPjxjb2RlPjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6cmdiKDI1MCwyNTAsMjUwKTt=
i
b3JkZXItY29sb3I6cmdiKDE4NywxODcsMTg3KTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXd=
p
ZHRoOjFweCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnByZXR0eXByaW50Ij48Y29kZSB=
j
bGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2cHJldHR5cHJpbnQiPjxkaXYgY2xhc3M9Im1fLTI=
w
MzY4NjAxMDk3ODAxMDUxNnN1YnByZXR0eXByaW50Ij48cHJlIGNsYXNzPSJtXy0yMDM2ODYwMTA=
5
NzgwMTA1MTZsYW5nLWNwcCBtXy0yMDM2ODYwMTA5NzgwMTA1MTZwcmV0dHlwcmludCBtXy0yMDM=
2
ODYwMTA5NzgwMTA1MTZwcmV0dHlwcmludGVkIj48Y29kZT48c3BhbiBzdHlsZT0iY29sb3I6Izg=
w
MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+Ly8gVW5=
j
b25zdHJhaW5lZCBnZW5lcmljIGZ1bmN0aW9uPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDA=
w
IiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij48YnI+PC9=
z
cGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDA4IiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE=
2
c3R5bGVkLWJ5LXByZXR0aWZ5Ij5hdXRvPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDAwIiB=
j
bGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij4gZnVuYzwvc3B=
h
bj48c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN=
0
eWxlZC1ieS1wcmV0dGlmeSI+KDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzAwOCIgY2xhc3M=
9
Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+Y29uc3Q8L3NwYW4+PHN=
w
YW4gc3R5bGU9ImNvbG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQ=
t
YnktcHJldHRpZnkiPiA8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDgiIGNsYXNzPSJtXy0=
y
MDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPmF1dG88L3NwYW4+PHNwYW4gc3R=
5
bGU9ImNvbG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJ=
l
dHRpZnkiPiA8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2NjAiIGNsYXNzPSJtXy0yMDM2ODY=
w
MTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPiZhbXA7PC9zcGFuPjxzcGFuIHN0eWxlPSJ=
j
b2xvcjojMDAwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ=
5
Ij5pPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojNjYwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc=
4
MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij4pPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDA=
w
IiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij4gPC9zcGF=
u
PjxzcGFuIHN0eWxlPSJjb2xvcjojNjYwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R=
5
bGVkLWJ5LXByZXR0aWZ5Ij57PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDAwIiBjbGFzcz0=
i
bV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij48YnI+Jm5ic3A7IHN0ZDw=
v
c3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDU=
x
NnN0eWxlZC1ieS1wcmV0dGlmeSI+Ojo8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDAiIGN=
s
YXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPmNvdXQgPC9zcGF=
u
PjxzcGFuIHN0eWxlPSJjb2xvcjojNjYwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R=
5
bGVkLWJ5LXByZXR0aWZ5Ij4mbHQ7Jmx0Ozwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzAwMCI=
g
Y2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+IDwvc3Bhbj4=
8
c3BhbiBzdHlsZT0iY29sb3I6IzA4MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWx=
l
ZC1ieS1wcmV0dGlmeSI+IlR5cGUgb2Ygb2JqZWN0IGkgaXMgIjwvc3Bhbj48c3BhbiBzdHlsZT0=
i
Y29sb3I6IzAwMCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGl=
m
eSI+IDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk=
3
ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+Jmx0OyZsdDs8L3NwYW4+PHNwYW4gc3R5bGU9ImN=
v
bG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnk=
i
PiA8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDgiIGNsYXNzPSJtXy0yMDM2ODYwMTA5Nzg=
w
MTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPnR5cGVpZDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I=
6
IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+KDw=
v
c3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzAwMCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDU=
x
NnN0eWxlZC1ieS1wcmV0dGlmeSI+aTwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2x=
h
c3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+KS48L3NwYW4+PHN=
w
YW4gc3R5bGU9ImNvbG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQ=
t
YnktcHJldHRpZnkiPm5hbWU8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2NjAiIGNsYXNzPSJ=
t
Xy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPigpPC9zcGFuPjxzcGFuIHN=
0
eWxlPSJjb2xvcjojMDAwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXB=
y
ZXR0aWZ5Ij4gPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojNjYwIiBjbGFzcz0ibV8tMjAzNjg=
2
MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij4mbHQ7Jmx0Ozwvc3Bhbj48c3BhbiBzdHl=
s
ZT0iY29sb3I6IzAwMCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV=
0
dGlmeSI+IHN0ZDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY=
4
NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+Ojo8L3NwYW4+PHNwYW4gc3R5bGU9ImN=
v
bG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnk=
i
PmVuZGw8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2NjAiIGNsYXNzPSJtXy0yMDM2ODYwMTA=
5
NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPjs8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM=
w
MDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPjxicj4=
m
bmJzcDsgc3RkPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojNjYwIiBjbGFzcz0ibV8tMjAzNjg=
2
MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij46Ojwvc3Bhbj48c3BhbiBzdHlsZT0iY29=
s
b3I6IzAwMCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI=
+
Y291dCA8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2NjAiIGNsYXNzPSJtXy0yMDM2ODYwMTA=
5
NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPiZsdDsmbHQ7PC9zcGFuPjxzcGFuIHN0eWxlPSJ=
j
b2xvcjojMDAwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ=
5
Ij4gPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDgwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc=
4
MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij4iVmFsdWUgaXMgIjwvc3Bhbj48c3BhbiBzdHlsZT0=
i
Y29sb3I6IzAwMCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGl=
m
eSI+IDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk=
3
ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+Jmx0OyZsdDs8L3NwYW4+PHNwYW4gc3R5bGU9ImN=
v
bG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnk=
i
PiBpIDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk=
3
ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+Jmx0OyZsdDs8L3NwYW4+PHNwYW4gc3R5bGU9ImN=
v
bG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnk=
i
PiBzdGQ8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2NjAiIGNsYXNzPSJtXy0yMDM2ODYwMTA=
5
NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPjo6PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjo=
j
MDAwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij5lbmR=
s
PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojNjYwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDE=
w
NTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij47PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDAwIiB=
j
bGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij48YnI+PC9zcGF=
u
PjxzcGFuIHN0eWxlPSJjb2xvcjojNjYwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R=
5
bGVkLWJ5LXByZXR0aWZ5Ij59PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDAwIiBjbGFzcz0=
i
bV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij48YnI+PGJyPjwvc3Bhbj4=
8
c3BhbiBzdHlsZT0iY29sb3I6IzAwOCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWx=
l
ZC1ieS1wcmV0dGlmeSI+aW50PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDAwIiBjbGFzcz0=
i
bV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij4gbWFpbjwvc3Bhbj48c3B=
h
biBzdHlsZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1=
i
eS1wcmV0dGlmeSI+KCk8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDAiIGNsYXNzPSJtXy0=
y
MDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPiA8L3NwYW4+PHNwYW4gc3R5bGU=
9
ImNvbG9yOiM2NjAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHR=
p
ZnkiPns8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA=
5
NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPjxicj4mbmJzcDsgZnVuYzwvc3Bhbj48c3BhbiB=
z
dHlsZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1=
w
cmV0dGlmeSI+KDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzA2NiIgY2xhc3M9Im1fLTIwMzY=
4
NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+MTwvc3Bhbj48c3BhbiBzdHlsZT0iY29=
s
b3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI=
+
KTs8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5Nzg=
w
MTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPjxicj4mbmJzcDsgZnVuYzwvc3Bhbj48c3BhbiBzdHl=
s
ZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV=
0
dGlmeSI+KDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzAwMCIgY2xhc3M9Im1fLTIwMzY4NjA=
x
MDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+c3RkPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2x=
v
cjojNjYwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij4=
6
Ojwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzAwOCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODA=
x
MDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+c3RyaW5nPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjo=
j
NjYwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij57PC9=
z
cGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDgwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE=
2
c3R5bGVkLWJ5LXByZXR0aWZ5Ij4iSGkgRGVuaXMgISI8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9=
y
OiM2NjAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPn0=
p
Ozwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzAwMCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODA=
x
MDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+PGJyPiZuYnNwOyA8L3NwYW4+PHNwYW4gc3R5bGU9ImN=
v
bG9yOiMwMDgiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnk=
i
PnJldHVybjwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzAwMCIgY2xhc3M9Im1fLTIwMzY4NjA=
x
MDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+IDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I=
6
IzA2NiIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+MDw=
v
c3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDU=
x
NnN0eWxlZC1ieS1wcmV0dGlmeSI+Ozwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzAwMCIgY2x=
h
c3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+PGJyPjwvc3Bhbj4=
8
c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWx=
l
ZC1ieS1wcmV0dGlmeSI+fTwvc3Bhbj48L2NvZGU+PC9wcmU+PC9kaXY+PC9jb2RlPjwvZGl2Pjx=
z
cGFuIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZwdW4iPjxicj48L3NwYW4+PHNwYW4gY2x=
h
c3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnB1biI+SSBrbmV3IHRoYXQgaW4gQysrMTQgd2UgYWx=
y
ZWFkeSBoYXZlIHNvbWV0aGluZyBsaWtlIHRoaXM6PGJyPjxicj48L3NwYW4+PC9jb2RlPjxjb2R=
l
PjxzcGFuIHN0eWxlPSJjb2xvcjojMDA4IiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R=
5
bGVkLWJ5LXByZXR0aWZ5Ij5hdXRvPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDAwIiBjbGF=
z
cz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij4gZnVuYyA8L3NwYW4=
+
PHNwYW4gc3R5bGU9ImNvbG9yOiM2NjAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHl=
s
ZWQtYnktcHJldHRpZnkiPj08L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDAiIGNsYXNzPSJ=
t
Xy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPiA8L3NwYW4+PHNwYW4gc3R=
5
bGU9ImNvbG9yOiM2NjAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJ=
l
dHRpZnkiPltdKDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzAwOCIgY2xhc3M9Im1fLTIwMzY=
4
NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+Y29uc3Q8L3NwYW4+PHNwYW4gc3R5bGU=
9
ImNvbG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHR=
p
ZnkiPiA8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDgiIGNsYXNzPSJtXy0yMDM2ODYwMTA=
5
NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPmF1dG88L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9=
y
OiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPiA=
8
L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2NjAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA=
1
MTZzdHlsZWQtYnktcHJldHRpZnkiPiZhbXA7PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDA=
w
IiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij5pPC9zcGF=
u
PjxzcGFuIHN0eWxlPSJjb2xvcjojNjYwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R=
5
bGVkLWJ5LXByZXR0aWZ5Ij4pPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDAwIiBjbGFzcz0=
i
bV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij4gPC9zcGFuPjxzcGFuIHN=
0
eWxlPSJjb2xvcjojNjYwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXB=
y
ZXR0aWZ5Ij57PC9zcGFuPjwvY29kZT48c3BhbiBzdHlsZT0iY29sb3I6IzAwMCIgY2xhc3M9Im1=
f
LTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+PC9zcGFuPjxicj48c3BhbiB=
z
dHlsZT0iY29sb3I6IzAwMCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1=
w
cmV0dGlmeSI+PC9zcGFuPjxjb2RlPjxzcGFuIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZ=
w
dW4iPjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6cmdiKDI1MCwyNTAsMjUwKTtib3JkZXI=
t
Y29sb3I6cmdiKDE4NywxODcsMTg3KTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjF=
w
eCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnByZXR0eXByaW50Ij48Y29kZSBjbGFzcz0=
i
bV8tMjAzNjg2MDEwOTc4MDEwNTE2cHJldHR5cHJpbnQiPjxkaXYgY2xhc3M9Im1fLTIwMzY4NjA=
x
MDk3ODAxMDUxNnN1YnByZXR0eXByaW50Ij48Y29kZT48L2NvZGU+PHByZSBjbGFzcz0ibV8tMjA=
z
Njg2MDEwOTc4MDEwNTE2bGFuZy1jcHAgbV8tMjAzNjg2MDEwOTc4MDEwNTE2cHJldHR5cHJpbnQ=
g
bV8tMjAzNjg2MDEwOTc4MDEwNTE2cHJldHR5cHJpbnRlZCI+PGNvZGU+PHNwYW4gc3R5bGU9ImN=
v
bG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnk=
i
PiZuYnNwOyBzdGQ8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2NjAiIGNsYXNzPSJtXy0yMDM=
2
ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPjo6PC9zcGFuPjxzcGFuIHN0eWxlPSJ=
j
b2xvcjojMDAwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ=
5
Ij5jb3V0IDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjA=
x
MDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+Jmx0OyZsdDs8L3NwYW4+PHNwYW4gc3R5bGU=
9
ImNvbG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHR=
p
ZnkiPiA8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiMwODAiIGNsYXNzPSJtXy0yMDM2ODYwMTA=
5
NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPiJUeXBlIG9mIG9iamVjdCBpIGlzICI8L3NwYW4=
+
PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHl=
s
ZWQtYnktcHJldHRpZnkiPiA8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2NjAiIGNsYXNzPSJ=
t
Xy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPiZsdDsmbHQ7PC9zcGFuPjx=
z
cGFuIHN0eWxlPSJjb2xvcjojMDAwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGV=
k
LWJ5LXByZXR0aWZ5Ij4gPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDA4IiBjbGFzcz0ibV8=
t
MjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij50eXBlaWQ8L3NwYW4+PHNwYW4=
g
c3R5bGU9ImNvbG9yOiM2NjAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnk=
t
cHJldHRpZnkiPig8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM=
2
ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPmk8L3NwYW4+PHNwYW4gc3R5bGU9ImN=
v
bG9yOiM2NjAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnk=
i
PikuPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDAwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc=
4
MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij5uYW1lPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjo=
j
NjYwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij4oKTw=
v
c3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzAwMCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDU=
x
NnN0eWxlZC1ieS1wcmV0dGlmeSI+IDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2x=
h
c3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+Jmx0OyZsdDs8L3N=
w
YW4+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZ=
z
dHlsZWQtYnktcHJldHRpZnkiPiBzdGQ8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2NjAiIGN=
s
YXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPjo6PC9zcGFuPjx=
z
cGFuIHN0eWxlPSJjb2xvcjojMDAwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGV=
k
LWJ5LXByZXR0aWZ5Ij5lbmRsPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojNjYwIiBjbGFzcz0=
i
bV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij47PC9zcGFuPjxzcGFuIHN=
0
eWxlPSJjb2xvcjojMDAwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXB=
y
ZXR0aWZ5Ij48YnI+Jm5ic3A7IHN0ZDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2x=
h
c3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+Ojo8L3NwYW4+PHN=
w
YW4gc3R5bGU9ImNvbG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQ=
t
YnktcHJldHRpZnkiPmNvdXQgPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojNjYwIiBjbGFzcz0=
i
bV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij4mbHQ7Jmx0Ozwvc3Bhbj4=
8
c3BhbiBzdHlsZT0iY29sb3I6IzAwMCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWx=
l
ZC1ieS1wcmV0dGlmeSI+IDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzA4MCIgY2xhc3M9Im1=
f
LTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+IlZhbHVlIGlzICI8L3NwYW4=
+
PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHl=
s
ZWQtYnktcHJldHRpZnkiPiA8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2NjAiIGNsYXNzPSJ=
t
Xy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPiZsdDsmbHQ7PC9zcGFuPjx=
z
cGFuIHN0eWxlPSJjb2xvcjojMDAwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGV=
k
LWJ5LXByZXR0aWZ5Ij4gaSA8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2NjAiIGNsYXNzPSJ=
t
Xy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPiZsdDsmbHQ7PC9zcGFuPjx=
z
cGFuIHN0eWxlPSJjb2xvcjojMDAwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGV=
k
LWJ5LXByZXR0aWZ5Ij4gc3RkPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojNjYwIiBjbGFzcz0=
i
bV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij46Ojwvc3Bhbj48c3BhbiB=
z
dHlsZT0iY29sb3I6IzAwMCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1=
w
cmV0dGlmeSI+ZW5kbDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTI=
w
MzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+Ozwvc3Bhbj48c3BhbiBzdHlsZT0=
i
Y29sb3I6IzAwMCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGl=
m
eSI+PGJyPjwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjA=
x
MDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+fTwvc3Bhbj48L2NvZGU+PC9wcmU+PC9kaXY=
+
PC9jb2RlPjwvZGl2Pjxicj5CdXQgd2hlbiB0aGUgc2FtZSBhcHBlYXIgZm9yIHNpbXBseSBmdW5=
j
dGlvbnMgZWl0aGVyID88c3BhbiBjbGFzcz0iSE9FblpiIj48Zm9udCBjb2xvcj0iIzg4ODg4OCI=
+
PGJyPjwvZm9udD48L3NwYW4+PC9zcGFuPjwvY29kZT48L3ByZT48L2Rpdj48c3BhbiBjbGFzcz0=
i
SE9FblpiIj48Zm9udCBjb2xvcj0iIzg4ODg4OCI+Cgo8cD48L3A+CgotLSA8YnI+CllvdSByZWN=
l
aXZlZCB0aGlzIG1lc3NhZ2UgYmVjYXVzZSB5b3UgYXJlIHN1YnNjcmliZWQgdG8gdGhlIEdvb2d=
s
ZSBHcm91cHMgIklTTyBDKysgU3RhbmRhcmQgLSBGdXR1cmUgUHJvcG9zYWxzIiBncm91cC48YnI=
+
ClRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBncm91cCBhbmQgc3RvcCByZWNlaXZpbmcgZW1haWx=
z
IGZyb20gaXQsIHNlbmQgYW4gZW1haWwgdG8gPGEgaHJlZj0ibWFpbHRvOnN0ZC1wcm9wb3NhbHM=
r
dW5zdWJzY3JpYmVAaXNvY3BwLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPnN0ZC1wcm9wb3NhbHMrdW5=
z
dWJzY3JpYmVAPHdicj5pc29jcHAub3JnPC9hPi48YnI+ClRvIHBvc3QgdG8gdGhpcyBncm91cCw=
g
c2VuZCBlbWFpbCB0byA8YSBocmVmPSJtYWlsdG86c3RkLXByb3Bvc2Fsc0Bpc29jcHAub3JnIiB=
0
YXJnZXQ9Il9ibGFuayI+c3RkLXByb3Bvc2Fsc0Bpc29jcHAub3JnPC9hPi48YnI+ClRvIHZpZXc=
g
dGhpcyBkaXNjdXNzaW9uIG9uIHRoZSB3ZWIgdmlzaXQgPGEgaHJlZj0iaHR0cHM6Ly9ncm91cHM=
u
Z29vZ2xlLmNvbS9hL2lzb2NwcC5vcmcvZC9tc2dpZC9zdGQtcHJvcG9zYWxzL2U1OTA2M2M2LWM=
2
NDYtNGQ3ZS05NjVhLTZlNDA0ZjE3ODg2YSU0MGlzb2NwcC5vcmc/dXRtX21lZGl1bT1lbWFpbCZ=
h
bXA7dXRtX3NvdXJjZT1mb290ZXIiIHRhcmdldD0iX2JsYW5rIiBkYXRhLXNhZmVyZWRpcmVjdHV=
y
bD0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS91cmw/aGw9ZW4tR0ImYW1wO3E9aHR0cHM6Ly9ncm9=
1
cHMuZ29vZ2xlLmNvbS9hL2lzb2NwcC5vcmcvZC9tc2dpZC9zdGQtcHJvcG9zYWxzL2U1OTA2M2M=
2
LWM2NDYtNGQ3ZS05NjVhLTZlNDA0ZjE3ODg2YSUyNTQwaXNvY3BwLm9yZz91dG1fbWVkaXVtJTN=
E
ZW1haWwlMjZ1dG1fc291cmNlJTNEZm9vdGVyJmFtcDtzb3VyY2U9Z21haWwmYW1wO3VzdD0xNDk=
0
NDMyNTIxMjU2MDAwJmFtcDt1c2c9QUZRakNORnNBNFV4V05CbnpyUkVCZnhiSXo1LU5IR2gwdyI=
+
aHR0cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9hLzx3YnI+aXNvY3BwLm9yZy9kL21zZ2lkL3N0ZC0=
8
d2JyPnByb3Bvc2Fscy9lNTkwNjNjNi1jNjQ2LTRkN2UtPHdicj45NjVhLTZlNDA0ZjE3ODg2YSU=
0
MGlzb2NwcC5vcmc8L2E+PHdicj4uPGJyPgo8L2ZvbnQ+PC9zcGFuPjwvYmxvY2txdW90ZT48L2R=
p
dj48YnI+PC9kaXY+PC9kaXY+" style=3D"height:0;width:0;max-height:0;max-width:=
0;overflow:hidden;font-size:0em;padding:0;margin:0">=E2=80=8B</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/CAMbYJhZUDf%3DV8RzbNzzoExFHidXwSeuxS3=
Lv92EsE1G%3DF5O3YA%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter"=
>https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAMbYJhZUDf%3=
DV8RzbNzzoExFHidXwSeuxS3Lv92EsE1G%3DF5O3YA%40mail.gmail.com</a>.<br />
--001a113adb08d36f30054f19d4a2--
.
Author: Jakob Riedle <jakob.riedle@gmail.com>
Date: Tue, 9 May 2017 09:27:54 -0700 (PDT)
Raw View
------=_Part_2534_2134042202.1494347274493
Content-Type: multipart/alternative;
boundary="----=_Part_2535_323232277.1494347274493"
------=_Part_2535_323232277.1494347274493
Content-Type: text/plain; charset="UTF-8"
This has already been fixed :D
See here:
https://godbolt.org/g/dOp1H1
Yours cincerely,
Jakob
--
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/fc374c5a-5851-4415-a33d-790a048104e4%40isocpp.org.
------=_Part_2535_323232277.1494347274493
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><pre><code><span>This has already been fixed :D</span></co=
de></pre><pre><code><span><br></span></code></pre><pre><code><span>See here=
:</span></code></pre><pre><code><span><a href=3D"https://godbolt.org/g/dOp1=
H1">https://godbolt.org/g/dOp1H1</a></span></code></pre><pre><code><br></co=
de></pre><pre><code>Yours cincerely,</code></pre><pre><code>Jakob</code></p=
re></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/fc374c5a-5851-4415-a33d-790a048104e4%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/fc374c5a-5851-4415-a33d-790a048104e4=
%40isocpp.org</a>.<br />
------=_Part_2535_323232277.1494347274493--
------=_Part_2534_2134042202.1494347274493--
.
Author: Denis Kotov <redradist@gmail.com>
Date: Tue, 9 May 2017 10:40:25 -0700 (PDT)
Raw View
------=_Part_2615_1007314205.1494351625603
Content-Type: multipart/alternative;
boundary="----=_Part_2616_130851877.1494351625603"
------=_Part_2616_130851877.1494351625603
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Hi Jakob Riedle,
I know that it works in *GCC*, but it is not part of the *standard* yet
=D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=B8=D0=BA, 9 =D0=BC=D0=B0=D1=8F 2017 =D0=
=B3., 19:27:54 UTC+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=
=D0=B5=D0=BB=D1=8C Jakob Riedle =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>
> This has already been fixed :D
>
>
> See here:
>
> https://godbolt.org/g/dOp1H1
>
>
> Yours cincerely,
>
> Jakob
>
>
--=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/13c627cb-3ac4-499a-8069-e0f6336a1f7f%40isocpp.or=
g.
------=_Part_2616_130851877.1494351625603
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">Hi <span class=3D"_username"><span class=3D"IVILX2C-D-a" s=
tyle=3D"color: rgb(34, 34, 34);">Jakob Riedle,<br><br><span style=3D"font-w=
eight: normal;">I know that it works in <b>GCC</b>, but it is not part of t=
he <b>standard</b> yet</span><br></span></span><br>=D0=B2=D1=82=D0=BE=D1=80=
=D0=BD=D0=B8=D0=BA, 9 =D0=BC=D0=B0=D1=8F 2017 =D0=B3., 19:27:54 UTC+3 =D0=
=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Jakob=
Riedle =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:<blockquote class=3D"gma=
il_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid=
;padding-left: 1ex;"><div dir=3D"ltr"><pre><code><span>This has already bee=
n fixed :D</span></code></pre><pre><code><span><br></span></code></pre><pre=
><code><span>See here:</span></code></pre><pre><code><span><a href=3D"https=
://godbolt.org/g/dOp1H1" target=3D"_blank" rel=3D"nofollow" onmousedown=3D"=
this.href=3D'https://www.google.com/url?q\x3dhttps%3A%2F%2Fgodbolt.org%=
2Fg%2FdOp1H1\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNEZJhxeG_d7YopIbC7Bnekf=
nUgJEg';return true;" onclick=3D"this.href=3D'https://www.google.co=
m/url?q\x3dhttps%3A%2F%2Fgodbolt.org%2Fg%2FdOp1H1\x26sa\x3dD\x26sntz\x3d1\x=
26usg\x3dAFQjCNEZJhxeG_d7YopIbC7BnekfnUgJEg';return true;">https://godb=
olt.org/g/dOp1H1</a></span></code></pre><pre><code><br></code></pre><pre><c=
ode>Yours cincerely,</code></pre><pre><code>Jakob</code></pre></div></block=
quote></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/13c627cb-3ac4-499a-8069-e0f6336a1f7f%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/13c627cb-3ac4-499a-8069-e0f6336a1f7f=
%40isocpp.org</a>.<br />
------=_Part_2616_130851877.1494351625603--
------=_Part_2615_1007314205.1494351625603--
.
Author: Denis Kotov <redradist@gmail.com>
Date: Tue, 9 May 2017 10:43:26 -0700 (PDT)
Raw View
------=_Part_3603_1248396006.1494351806534
Content-Type: multipart/alternative;
boundary="----=_Part_3604_1197879615.1494351806534"
------=_Part_3604_1197879615.1494351806534
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Hi Aar=C3=B3n Bueno Villares,
Because it is more *comfortable* as you mentioned and essentially it is=20
already exists for lambda expressions, so why not to extend it on general=
=20
functions ?
=D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=B8=D0=BA, 9 =D0=BC=D0=B0=D1=8F 2017 =D0=
=B3., 19:27:29 UTC+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=
=D0=B5=D0=BB=D1=8C Aar=C3=B3n Bueno Villares=20
=D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>
> What=E2=80=99s wrong with=20
>
> template<class T>
> auto func(const T& i)
> {
> // ...
> }
>
> ? Although I agree `auto` is more confortable, the feature already exists=
..
>
> On 9 May 2017 at 18:08, Denis Kotov <redr...@gmail.com <javascript:>>=20
> wrote:
>
> Hi everyone,
>>
>> I am interested in the following feature:
>>
>> // Unconstrained generic function
>> auto func(const auto &i) {
>> std::cout << "Type of object i is " << typeid(i).name() << std::endl;
>> std::cout << "Value is " << i << std::endl;
>> }
>>
>> int main() {
>> func(1);
>> func(std::string{"Hi Denis !"});
>> return 0;
>> }
>>
>>
>> I knew that in C++14 we already have something like this:
>>
>> auto func =3D [](const auto &i) {
>>
>> std::cout << "Type of object i is " << typeid(i).name() << std::endl;
>> std::cout << "Value is " << i << std::endl;
>> }
>>
>>
>> But when the same appear for simply functions either ?
>>
>> --=20
>> You received this message because you are subscribed to the Google Group=
s=20
>> "ISO C++ Standard - Future Proposals" group.
>> To unsubscribe from this group and stop receiving emails from it, send a=
n=20
>> email to std-proposal...@isocpp.org <javascript:>.
>> To post to this group, send email to std-pr...@isocpp.org <javascript:>.
>> To view this discussion on the web visit=20
>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/e59063c6-c6=
46-4d7e-965a-6e404f17886a%40isocpp.org=20
>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/e59063c6-c=
646-4d7e-965a-6e404f17886a%40isocpp.org?utm_medium=3Demail&utm_source=3Dfoo=
ter>
>> .
>>
> =E2=80=8B
>
--=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/384df08a-b442-4c14-a7ab-aaa063dfc5bf%40isocpp.or=
g.
------=_Part_3604_1197879615.1494351806534
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">Hi <span class=3D"_username"><span class=3D"IVILX2C-D-a g-=
hovercard" style=3D"color: rgb(34, 34, 34);" data-userid=3D"114426772978839=
422109" data-name=3D"Aar=C3=B3n Bueno Villares">Aar=C3=B3n Bueno Villares,<=
br><br><span style=3D"font-weight: normal;">Because it</span> <span style=
=3D"font-weight: normal;">is</span> <span style=3D"font-weight: normal;">mo=
re</span> </span></span><b>comfortable</b> as you mentioned and essentially=
it is already exists for lambda expressions, so why not to extend it on ge=
neral functions ?<br><br>=D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=B8=D0=BA, 9 =D0=
=BC=D0=B0=D1=8F 2017 =D0=B3., 19:27:29 UTC+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=
=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Aar=C3=B3n Bueno Villares =D0=BD=
=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:<blockquote class=3D"gmail_quote" styl=
e=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left:=
1ex;"><div dir=3D"ltr"><div><p style=3D"margin:0px 0px 1.2em!important">Wh=
at=E2=80=99s wrong with </p>
<pre style=3D"font-size:0.85em;font-family:Consolas,Inconsolata,Courier,mon=
ospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code style=3D"fon=
t-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px=
0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234=
,234);background-color:rgb(248,248,248);border-radius:3px;display:inline;wh=
ite-space:pre;overflow:auto;border-radius:3px;border:1px solid rgb(204,204,=
204);padding:0.5em 0.7em;display:block!important">template<class T>
auto func(const T& i)
{
// ...
}
</code></pre><p style=3D"margin:0px 0px 1.2em!important">? Although I agree=
`auto` is more confortable, the feature already exists.<br><br>On 9 May 20=
17 at 18:08, Denis Kotov <<a href=3D"javascript:" target=3D"_blank" gdf-=
obfuscated-mailto=3D"OG78n03HCAAJ" rel=3D"nofollow" onmousedown=3D"this.hre=
f=3D'javascript:';return true;" onclick=3D"this.href=3D'javascr=
ipt:';return true;">redr...@gmail.com</a>> wrote:</p>
<p style=3D"margin:0px 0px 1.2em!important"></p><div><p></p><blockquote cla=
ss=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;pa=
dding-left:1ex"><div dir=3D"ltr">Hi everyone,<br><br>I am interested in the=
following feature:<br><br><pre><code><div style=3D"background-color:rgb(25=
0,250,250);border-color:rgb(187,187,187);border-style:solid;border-width:1p=
x"><code><div><pre><code><span style=3D"color:#800">// Unconstrained generi=
c function</span><span style=3D"color:#000"><br></span><span style=3D"color=
:#008">auto</span><span style=3D"color:#000"> func</span><span style=3D"col=
or:#660">(</span><span style=3D"color:#008">const</span><span style=3D"colo=
r:#000"> </span><span style=3D"color:#008">auto</span><span style=3D"color:=
#000"> </span><span style=3D"color:#660">&</span><span style=3D"color:#=
000">i</span><span style=3D"color:#660">)</span><span style=3D"color:#000">=
</span><span style=3D"color:#660">{</span><span style=3D"color:#000"><br>=
=C2=A0 std</span><span style=3D"color:#660">::</span><span style=3D"color:#=
000">cout </span><span style=3D"color:#660"><<</span><span style=3D"c=
olor:#000"> </span><span style=3D"color:#080">"Type of object i is &qu=
ot;</span><span style=3D"color:#000"> </span><span style=3D"color:#660"><=
;<</span><span style=3D"color:#000"> </span><span style=3D"color:#008">t=
ypeid</span><span style=3D"color:#660">(</span><span style=3D"color:#000">i=
</span><span style=3D"color:#660">).</span><span style=3D"color:#000">name<=
/span><span style=3D"color:#660">()</span><span style=3D"color:#000"> </spa=
n><span style=3D"color:#660"><<</span><span style=3D"color:#000"> std=
</span><span style=3D"color:#660">::</span><span style=3D"color:#000">endl<=
/span><span style=3D"color:#660">;</span><span style=3D"color:#000"><br>=C2=
=A0 std</span><span style=3D"color:#660">::</span><span style=3D"color:#000=
">cout </span><span style=3D"color:#660"><<</span><span style=3D"colo=
r:#000"> </span><span style=3D"color:#080">"Value is "</span><spa=
n style=3D"color:#000"> </span><span style=3D"color:#660"><<</span><s=
pan style=3D"color:#000"> i </span><span style=3D"color:#660"><<</spa=
n><span style=3D"color:#000"> std</span><span style=3D"color:#660">::</span=
><span style=3D"color:#000">endl</span><span style=3D"color:#660">;</span><=
span style=3D"color:#000"><br></span><span style=3D"color:#660">}</span><sp=
an style=3D"color:#000"><br><br></span><span style=3D"color:#008">int</span=
><span style=3D"color:#000"> main</span><span style=3D"color:#660">()</span=
><span style=3D"color:#000"> </span><span style=3D"color:#660">{</span><spa=
n style=3D"color:#000"><br>=C2=A0 func</span><span style=3D"color:#660">(</=
span><span style=3D"color:#066">1</span><span style=3D"color:#660">);</span=
><span style=3D"color:#000"><br>=C2=A0 func</span><span style=3D"color:#660=
">(</span><span style=3D"color:#000">std</span><span style=3D"color:#660">:=
:</span><span style=3D"color:#008">string</span><span style=3D"color:#660">=
{</span><span style=3D"color:#080">"Hi Denis !"</span><span style=
=3D"color:#660">});</span><span style=3D"color:#000"><br>=C2=A0 </span><spa=
n style=3D"color:#008">return</span><span style=3D"color:#000"> </span><spa=
n style=3D"color:#066">0</span><span style=3D"color:#660">;</span><span sty=
le=3D"color:#000"><br></span><span style=3D"color:#660">}</span></code></pr=
e></div></code></div><span><br></span><span>I knew that in C++14 we already=
have something like this:<br><br></span></code><code><span style=3D"color:=
#008">auto</span><span style=3D"color:#000"> func </span><span style=3D"col=
or:#660">=3D</span><span style=3D"color:#000"> </span><span style=3D"color:=
#660">[](</span><span style=3D"color:#008">const</span><span style=3D"color=
:#000"> </span><span style=3D"color:#008">auto</span><span style=3D"color:#=
000"> </span><span style=3D"color:#660">&</span><span style=3D"color:#0=
00">i</span><span style=3D"color:#660">)</span><span style=3D"color:#000"> =
</span><span style=3D"color:#660">{</span></code><span style=3D"color:#000"=
></span><br><span style=3D"color:#000"></span><code><span><div style=3D"bac=
kground-color:rgb(250,250,250);border-color:rgb(187,187,187);border-style:s=
olid;border-width:1px"><code><div><code></code><pre><code><span style=3D"co=
lor:#000">=C2=A0 std</span><span style=3D"color:#660">::</span><span style=
=3D"color:#000">cout </span><span style=3D"color:#660"><<</span><span=
style=3D"color:#000"> </span><span style=3D"color:#080">"Type of obje=
ct i is "</span><span style=3D"color:#000"> </span><span style=3D"colo=
r:#660"><<</span><span style=3D"color:#000"> </span><span style=3D"co=
lor:#008">typeid</span><span style=3D"color:#660">(</span><span style=3D"co=
lor:#000">i</span><span style=3D"color:#660">).</span><span style=3D"color:=
#000">name</span><span style=3D"color:#660">()</span><span style=3D"color:#=
000"> </span><span style=3D"color:#660"><<</span><span style=3D"color=
:#000"> std</span><span style=3D"color:#660">::</span><span style=3D"color:=
#000">endl</span><span style=3D"color:#660">;</span><span style=3D"color:#0=
00"><br>=C2=A0 std</span><span style=3D"color:#660">::</span><span style=3D=
"color:#000">cout </span><span style=3D"color:#660"><<</span><span st=
yle=3D"color:#000"> </span><span style=3D"color:#080">"Value is "=
</span><span style=3D"color:#000"> </span><span style=3D"color:#660"><&l=
t;</span><span style=3D"color:#000"> i </span><span style=3D"color:#660">&l=
t;<</span><span style=3D"color:#000"> std</span><span style=3D"color:#66=
0">::</span><span style=3D"color:#000">endl</span><span style=3D"color:#660=
">;</span><span style=3D"color:#000"><br></span><span style=3D"color:#660">=
}</span></code></pre></div></code></div><br>But when the same appear for si=
mply functions either ?<span><font color=3D"#888888"><br></font></span></sp=
an></code></pre></div><span><font color=3D"#888888">
<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"javascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"=
OG78n03HCAAJ" rel=3D"nofollow" onmousedown=3D"this.href=3D'javascript:&=
#39;;return true;" onclick=3D"this.href=3D'javascript:';return true=
;">std-proposal...@<wbr>isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"javascript:" target=3D"_bla=
nk" gdf-obfuscated-mailto=3D"OG78n03HCAAJ" rel=3D"nofollow" onmousedown=3D"=
this.href=3D'javascript:';return true;" onclick=3D"this.href=3D'=
;javascript:';return true;">std-pr...@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/e59063c6-c646-4d7e-965a-6e404f17886a%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter" target=3D"_blank" =
rel=3D"nofollow" onmousedown=3D"this.href=3D'https://groups.google.com/=
a/isocpp.org/d/msgid/std-proposals/e59063c6-c646-4d7e-965a-6e404f17886a%40i=
socpp.org?utm_medium\x3demail\x26utm_source\x3dfooter';return true;" on=
click=3D"this.href=3D'https://groups.google.com/a/isocpp.org/d/msgid/st=
d-proposals/e59063c6-c646-4d7e-965a-6e404f17886a%40isocpp.org?utm_medium\x3=
demail\x26utm_source\x3dfooter';return true;">https://groups.google.com=
/a/<wbr>isocpp.org/d/msgid/std-<wbr>proposals/e59063c6-c646-4d7e-<wbr>965a-=
6e404f17886a%40isocpp.org</a><wbr>.<br>
</font></span></blockquote><p></p></div><p style=3D"margin:0px 0px 1.2em!im=
portant"></p>
<div title=3D"MDH:V2hhdCdzIHdyb25nIHdpdGjCoDxicj48YnI+wqAgwqAgdGVtcGxhdGUmb=
HQ7Y2xhc3MgVCZndDs8
YnI+wqAgwqAgYXV0byBmdW5jKGNvbnN0IFQmYW1wOyBpKTxkaXY+Jm5ic3A7ICZuYnNwOyB7PGJ=
y
PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsvLyAuLi48YnI+Jm5ic3A7ICZuYnN=
w
OyB9PGJyPjxicj4/PGRpdiBjbGFzcz0iZ21haWxfZXh0cmEiPjxicj48ZGl2IGNsYXNzPSJnbWF=
p
bF9xdW90ZSI+T24gOSBNYXkgMjAxNyBhdCAxODowOCwgRGVuaXMgS290b3YgPHNwYW4gZGlyPSJ=
s
dHIiPiZsdDs8YSBocmVmPSJtYWlsdG86cmVkcmFkaXN0QGdtYWlsLmNvbSIgdGFyZ2V0PSJfYmx=
h
bmsiPnJlZHJhZGlzdEBnbWFpbC5jb208L2E+Jmd0Ozwvc3Bhbj4gd3JvdGU6PGJyPjxibG9ja3F=
1
b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowIDAgMCAuOGV4O2JvcmRlci1=
s
ZWZ0OjFweCAjY2NjIHNvbGlkO3BhZGRpbmctbGVmdDoxZXgiPjxkaXYgZGlyPSJsdHIiPkhpIGV=
2
ZXJ5b25lLDxicj48YnI+SSBhbSBpbnRlcmVzdGVkIGluIHRoZSBmb2xsb3dpbmcgZmVhdHVyZTo=
8
YnI+PGJyPjxwcmUgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNmxhbmctY3BwIG1fLTIwMzY=
4
NjAxMDk3ODAxMDUxNnByZXR0eXByaW50IG1fLTIwMzY4NjAxMDk3ODAxMDUxNnByZXR0eXByaW5=
0
ZWQiPjxjb2RlPjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6cmdiKDI1MCwyNTAsMjUwKTt=
i
b3JkZXItY29sb3I6cmdiKDE4NywxODcsMTg3KTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXd=
p
ZHRoOjFweCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnByZXR0eXByaW50Ij48Y29kZSB=
j
bGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2cHJldHR5cHJpbnQiPjxkaXYgY2xhc3M9Im1fLTI=
w
MzY4NjAxMDk3ODAxMDUxNnN1YnByZXR0eXByaW50Ij48cHJlIGNsYXNzPSJtXy0yMDM2ODYwMTA=
5
NzgwMTA1MTZsYW5nLWNwcCBtXy0yMDM2ODYwMTA5NzgwMTA1MTZwcmV0dHlwcmludCBtXy0yMDM=
2
ODYwMTA5NzgwMTA1MTZwcmV0dHlwcmludGVkIj48Y29kZT48c3BhbiBzdHlsZT0iY29sb3I6Izg=
w
MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+Ly8gVW5=
j
b25zdHJhaW5lZCBnZW5lcmljIGZ1bmN0aW9uPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDA=
w
IiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij48YnI+PC9=
z
cGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDA4IiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE=
2
c3R5bGVkLWJ5LXByZXR0aWZ5Ij5hdXRvPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDAwIiB=
j
bGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij4gZnVuYzwvc3B=
h
bj48c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN=
0
eWxlZC1ieS1wcmV0dGlmeSI+KDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzAwOCIgY2xhc3M=
9
Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+Y29uc3Q8L3NwYW4+PHN=
w
YW4gc3R5bGU9ImNvbG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQ=
t
YnktcHJldHRpZnkiPiA8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDgiIGNsYXNzPSJtXy0=
y
MDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPmF1dG88L3NwYW4+PHNwYW4gc3R=
5
bGU9ImNvbG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJ=
l
dHRpZnkiPiA8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2NjAiIGNsYXNzPSJtXy0yMDM2ODY=
w
MTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPiZhbXA7PC9zcGFuPjxzcGFuIHN0eWxlPSJ=
j
b2xvcjojMDAwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ=
5
Ij5pPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojNjYwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc=
4
MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij4pPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDA=
w
IiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij4gPC9zcGF=
u
PjxzcGFuIHN0eWxlPSJjb2xvcjojNjYwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R=
5
bGVkLWJ5LXByZXR0aWZ5Ij57PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDAwIiBjbGFzcz0=
i
bV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij48YnI+Jm5ic3A7IHN0ZDw=
v
c3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDU=
x
NnN0eWxlZC1ieS1wcmV0dGlmeSI+Ojo8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDAiIGN=
s
YXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPmNvdXQgPC9zcGF=
u
PjxzcGFuIHN0eWxlPSJjb2xvcjojNjYwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R=
5
bGVkLWJ5LXByZXR0aWZ5Ij4mbHQ7Jmx0Ozwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzAwMCI=
g
Y2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+IDwvc3Bhbj4=
8
c3BhbiBzdHlsZT0iY29sb3I6IzA4MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWx=
l
ZC1ieS1wcmV0dGlmeSI+IlR5cGUgb2Ygb2JqZWN0IGkgaXMgIjwvc3Bhbj48c3BhbiBzdHlsZT0=
i
Y29sb3I6IzAwMCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGl=
m
eSI+IDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk=
3
ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+Jmx0OyZsdDs8L3NwYW4+PHNwYW4gc3R5bGU9ImN=
v
bG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnk=
i
PiA8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDgiIGNsYXNzPSJtXy0yMDM2ODYwMTA5Nzg=
w
MTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPnR5cGVpZDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I=
6
IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+KDw=
v
c3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzAwMCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDU=
x
NnN0eWxlZC1ieS1wcmV0dGlmeSI+aTwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2x=
h
c3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+KS48L3NwYW4+PHN=
w
YW4gc3R5bGU9ImNvbG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQ=
t
YnktcHJldHRpZnkiPm5hbWU8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2NjAiIGNsYXNzPSJ=
t
Xy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPigpPC9zcGFuPjxzcGFuIHN=
0
eWxlPSJjb2xvcjojMDAwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXB=
y
ZXR0aWZ5Ij4gPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojNjYwIiBjbGFzcz0ibV8tMjAzNjg=
2
MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij4mbHQ7Jmx0Ozwvc3Bhbj48c3BhbiBzdHl=
s
ZT0iY29sb3I6IzAwMCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV=
0
dGlmeSI+IHN0ZDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY=
4
NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+Ojo8L3NwYW4+PHNwYW4gc3R5bGU9ImN=
v
bG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnk=
i
PmVuZGw8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2NjAiIGNsYXNzPSJtXy0yMDM2ODYwMTA=
5
NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPjs8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM=
w
MDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPjxicj4=
m
bmJzcDsgc3RkPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojNjYwIiBjbGFzcz0ibV8tMjAzNjg=
2
MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij46Ojwvc3Bhbj48c3BhbiBzdHlsZT0iY29=
s
b3I6IzAwMCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI=
+
Y291dCA8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2NjAiIGNsYXNzPSJtXy0yMDM2ODYwMTA=
5
NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPiZsdDsmbHQ7PC9zcGFuPjxzcGFuIHN0eWxlPSJ=
j
b2xvcjojMDAwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ=
5
Ij4gPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDgwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc=
4
MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij4iVmFsdWUgaXMgIjwvc3Bhbj48c3BhbiBzdHlsZT0=
i
Y29sb3I6IzAwMCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGl=
m
eSI+IDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk=
3
ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+Jmx0OyZsdDs8L3NwYW4+PHNwYW4gc3R5bGU9ImN=
v
bG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnk=
i
PiBpIDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk=
3
ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+Jmx0OyZsdDs8L3NwYW4+PHNwYW4gc3R5bGU9ImN=
v
bG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnk=
i
PiBzdGQ8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2NjAiIGNsYXNzPSJtXy0yMDM2ODYwMTA=
5
NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPjo6PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjo=
j
MDAwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij5lbmR=
s
PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojNjYwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDE=
w
NTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij47PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDAwIiB=
j
bGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij48YnI+PC9zcGF=
u
PjxzcGFuIHN0eWxlPSJjb2xvcjojNjYwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R=
5
bGVkLWJ5LXByZXR0aWZ5Ij59PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDAwIiBjbGFzcz0=
i
bV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij48YnI+PGJyPjwvc3Bhbj4=
8
c3BhbiBzdHlsZT0iY29sb3I6IzAwOCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWx=
l
ZC1ieS1wcmV0dGlmeSI+aW50PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDAwIiBjbGFzcz0=
i
bV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij4gbWFpbjwvc3Bhbj48c3B=
h
biBzdHlsZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1=
i
eS1wcmV0dGlmeSI+KCk8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDAiIGNsYXNzPSJtXy0=
y
MDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPiA8L3NwYW4+PHNwYW4gc3R5bGU=
9
ImNvbG9yOiM2NjAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHR=
p
ZnkiPns8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA=
5
NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPjxicj4mbmJzcDsgZnVuYzwvc3Bhbj48c3BhbiB=
z
dHlsZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1=
w
cmV0dGlmeSI+KDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzA2NiIgY2xhc3M9Im1fLTIwMzY=
4
NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+MTwvc3Bhbj48c3BhbiBzdHlsZT0iY29=
s
b3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI=
+
KTs8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5Nzg=
w
MTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPjxicj4mbmJzcDsgZnVuYzwvc3Bhbj48c3BhbiBzdHl=
s
ZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV=
0
dGlmeSI+KDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzAwMCIgY2xhc3M9Im1fLTIwMzY4NjA=
x
MDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+c3RkPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2x=
v
cjojNjYwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij4=
6
Ojwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzAwOCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODA=
x
MDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+c3RyaW5nPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjo=
j
NjYwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij57PC9=
z
cGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDgwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE=
2
c3R5bGVkLWJ5LXByZXR0aWZ5Ij4iSGkgRGVuaXMgISI8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9=
y
OiM2NjAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPn0=
p
Ozwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzAwMCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODA=
x
MDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+PGJyPiZuYnNwOyA8L3NwYW4+PHNwYW4gc3R5bGU9ImN=
v
bG9yOiMwMDgiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnk=
i
PnJldHVybjwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzAwMCIgY2xhc3M9Im1fLTIwMzY4NjA=
x
MDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+IDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I=
6
IzA2NiIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+MDw=
v
c3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDU=
x
NnN0eWxlZC1ieS1wcmV0dGlmeSI+Ozwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzAwMCIgY2x=
h
c3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+PGJyPjwvc3Bhbj4=
8
c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWx=
l
ZC1ieS1wcmV0dGlmeSI+fTwvc3Bhbj48L2NvZGU+PC9wcmU+PC9kaXY+PC9jb2RlPjwvZGl2Pjx=
z
cGFuIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZwdW4iPjxicj48L3NwYW4+PHNwYW4gY2x=
h
c3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnB1biI+SSBrbmV3IHRoYXQgaW4gQysrMTQgd2UgYWx=
y
ZWFkeSBoYXZlIHNvbWV0aGluZyBsaWtlIHRoaXM6PGJyPjxicj48L3NwYW4+PC9jb2RlPjxjb2R=
l
PjxzcGFuIHN0eWxlPSJjb2xvcjojMDA4IiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R=
5
bGVkLWJ5LXByZXR0aWZ5Ij5hdXRvPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDAwIiBjbGF=
z
cz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij4gZnVuYyA8L3NwYW4=
+
PHNwYW4gc3R5bGU9ImNvbG9yOiM2NjAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHl=
s
ZWQtYnktcHJldHRpZnkiPj08L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDAiIGNsYXNzPSJ=
t
Xy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPiA8L3NwYW4+PHNwYW4gc3R=
5
bGU9ImNvbG9yOiM2NjAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJ=
l
dHRpZnkiPltdKDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzAwOCIgY2xhc3M9Im1fLTIwMzY=
4
NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+Y29uc3Q8L3NwYW4+PHNwYW4gc3R5bGU=
9
ImNvbG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHR=
p
ZnkiPiA8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDgiIGNsYXNzPSJtXy0yMDM2ODYwMTA=
5
NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPmF1dG88L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9=
y
OiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPiA=
8
L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2NjAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA=
1
MTZzdHlsZWQtYnktcHJldHRpZnkiPiZhbXA7PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDA=
w
IiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij5pPC9zcGF=
u
PjxzcGFuIHN0eWxlPSJjb2xvcjojNjYwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R=
5
bGVkLWJ5LXByZXR0aWZ5Ij4pPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDAwIiBjbGFzcz0=
i
bV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij4gPC9zcGFuPjxzcGFuIHN=
0
eWxlPSJjb2xvcjojNjYwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXB=
y
ZXR0aWZ5Ij57PC9zcGFuPjwvY29kZT48c3BhbiBzdHlsZT0iY29sb3I6IzAwMCIgY2xhc3M9Im1=
f
LTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+PC9zcGFuPjxicj48c3BhbiB=
z
dHlsZT0iY29sb3I6IzAwMCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1=
w
cmV0dGlmeSI+PC9zcGFuPjxjb2RlPjxzcGFuIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZ=
w
dW4iPjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6cmdiKDI1MCwyNTAsMjUwKTtib3JkZXI=
t
Y29sb3I6cmdiKDE4NywxODcsMTg3KTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjF=
w
eCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnByZXR0eXByaW50Ij48Y29kZSBjbGFzcz0=
i
bV8tMjAzNjg2MDEwOTc4MDEwNTE2cHJldHR5cHJpbnQiPjxkaXYgY2xhc3M9Im1fLTIwMzY4NjA=
x
MDk3ODAxMDUxNnN1YnByZXR0eXByaW50Ij48Y29kZT48L2NvZGU+PHByZSBjbGFzcz0ibV8tMjA=
z
Njg2MDEwOTc4MDEwNTE2bGFuZy1jcHAgbV8tMjAzNjg2MDEwOTc4MDEwNTE2cHJldHR5cHJpbnQ=
g
bV8tMjAzNjg2MDEwOTc4MDEwNTE2cHJldHR5cHJpbnRlZCI+PGNvZGU+PHNwYW4gc3R5bGU9ImN=
v
bG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnk=
i
PiZuYnNwOyBzdGQ8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2NjAiIGNsYXNzPSJtXy0yMDM=
2
ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPjo6PC9zcGFuPjxzcGFuIHN0eWxlPSJ=
j
b2xvcjojMDAwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ=
5
Ij5jb3V0IDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjA=
x
MDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+Jmx0OyZsdDs8L3NwYW4+PHNwYW4gc3R5bGU=
9
ImNvbG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHR=
p
ZnkiPiA8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiMwODAiIGNsYXNzPSJtXy0yMDM2ODYwMTA=
5
NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPiJUeXBlIG9mIG9iamVjdCBpIGlzICI8L3NwYW4=
+
PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHl=
s
ZWQtYnktcHJldHRpZnkiPiA8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2NjAiIGNsYXNzPSJ=
t
Xy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPiZsdDsmbHQ7PC9zcGFuPjx=
z
cGFuIHN0eWxlPSJjb2xvcjojMDAwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGV=
k
LWJ5LXByZXR0aWZ5Ij4gPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDA4IiBjbGFzcz0ibV8=
t
MjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij50eXBlaWQ8L3NwYW4+PHNwYW4=
g
c3R5bGU9ImNvbG9yOiM2NjAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnk=
t
cHJldHRpZnkiPig8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM=
2
ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPmk8L3NwYW4+PHNwYW4gc3R5bGU9ImN=
v
bG9yOiM2NjAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnk=
i
PikuPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDAwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc=
4
MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij5uYW1lPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjo=
j
NjYwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij4oKTw=
v
c3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzAwMCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDU=
x
NnN0eWxlZC1ieS1wcmV0dGlmeSI+IDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2x=
h
c3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+Jmx0OyZsdDs8L3N=
w
YW4+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZ=
z
dHlsZWQtYnktcHJldHRpZnkiPiBzdGQ8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2NjAiIGN=
s
YXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPjo6PC9zcGFuPjx=
z
cGFuIHN0eWxlPSJjb2xvcjojMDAwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGV=
k
LWJ5LXByZXR0aWZ5Ij5lbmRsPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojNjYwIiBjbGFzcz0=
i
bV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij47PC9zcGFuPjxzcGFuIHN=
0
eWxlPSJjb2xvcjojMDAwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXB=
y
ZXR0aWZ5Ij48YnI+Jm5ic3A7IHN0ZDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2x=
h
c3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+Ojo8L3NwYW4+PHN=
w
YW4gc3R5bGU9ImNvbG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQ=
t
YnktcHJldHRpZnkiPmNvdXQgPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojNjYwIiBjbGFzcz0=
i
bV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij4mbHQ7Jmx0Ozwvc3Bhbj4=
8
c3BhbiBzdHlsZT0iY29sb3I6IzAwMCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWx=
l
ZC1ieS1wcmV0dGlmeSI+IDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzA4MCIgY2xhc3M9Im1=
f
LTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+IlZhbHVlIGlzICI8L3NwYW4=
+
PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDAiIGNsYXNzPSJtXy0yMDM2ODYwMTA5NzgwMTA1MTZzdHl=
s
ZWQtYnktcHJldHRpZnkiPiA8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2NjAiIGNsYXNzPSJ=
t
Xy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPiZsdDsmbHQ7PC9zcGFuPjx=
z
cGFuIHN0eWxlPSJjb2xvcjojMDAwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGV=
k
LWJ5LXByZXR0aWZ5Ij4gaSA8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2NjAiIGNsYXNzPSJ=
t
Xy0yMDM2ODYwMTA5NzgwMTA1MTZzdHlsZWQtYnktcHJldHRpZnkiPiZsdDsmbHQ7PC9zcGFuPjx=
z
cGFuIHN0eWxlPSJjb2xvcjojMDAwIiBjbGFzcz0ibV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGV=
k
LWJ5LXByZXR0aWZ5Ij4gc3RkPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojNjYwIiBjbGFzcz0=
i
bV8tMjAzNjg2MDEwOTc4MDEwNTE2c3R5bGVkLWJ5LXByZXR0aWZ5Ij46Ojwvc3Bhbj48c3BhbiB=
z
dHlsZT0iY29sb3I6IzAwMCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1=
w
cmV0dGlmeSI+ZW5kbDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTI=
w
MzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+Ozwvc3Bhbj48c3BhbiBzdHlsZT0=
i
Y29sb3I6IzAwMCIgY2xhc3M9Im1fLTIwMzY4NjAxMDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGl=
m
eSI+PGJyPjwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzY2MCIgY2xhc3M9Im1fLTIwMzY4NjA=
x
MDk3ODAxMDUxNnN0eWxlZC1ieS1wcmV0dGlmeSI+fTwvc3Bhbj48L2NvZGU+PC9wcmU+PC9kaXY=
+
PC9jb2RlPjwvZGl2Pjxicj5CdXQgd2hlbiB0aGUgc2FtZSBhcHBlYXIgZm9yIHNpbXBseSBmdW5=
j
dGlvbnMgZWl0aGVyID88c3BhbiBjbGFzcz0iSE9FblpiIj48Zm9udCBjb2xvcj0iIzg4ODg4OCI=
+
PGJyPjwvZm9udD48L3NwYW4+PC9zcGFuPjwvY29kZT48L3ByZT48L2Rpdj48c3BhbiBjbGFzcz0=
i
SE9FblpiIj48Zm9udCBjb2xvcj0iIzg4ODg4OCI+Cgo8cD48L3A+CgotLSA8YnI+CllvdSByZWN=
l
aXZlZCB0aGlzIG1lc3NhZ2UgYmVjYXVzZSB5b3UgYXJlIHN1YnNjcmliZWQgdG8gdGhlIEdvb2d=
s
ZSBHcm91cHMgIklTTyBDKysgU3RhbmRhcmQgLSBGdXR1cmUgUHJvcG9zYWxzIiBncm91cC48YnI=
+
ClRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBncm91cCBhbmQgc3RvcCByZWNlaXZpbmcgZW1haWx=
z
IGZyb20gaXQsIHNlbmQgYW4gZW1haWwgdG8gPGEgaHJlZj0ibWFpbHRvOnN0ZC1wcm9wb3NhbHM=
r
dW5zdWJzY3JpYmVAaXNvY3BwLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPnN0ZC1wcm9wb3NhbHMrdW5=
z
dWJzY3JpYmVAPHdicj5pc29jcHAub3JnPC9hPi48YnI+ClRvIHBvc3QgdG8gdGhpcyBncm91cCw=
g
c2VuZCBlbWFpbCB0byA8YSBocmVmPSJtYWlsdG86c3RkLXByb3Bvc2Fsc0Bpc29jcHAub3JnIiB=
0
YXJnZXQ9Il9ibGFuayI+c3RkLXByb3Bvc2Fsc0Bpc29jcHAub3JnPC9hPi48YnI+ClRvIHZpZXc=
g
dGhpcyBkaXNjdXNzaW9uIG9uIHRoZSB3ZWIgdmlzaXQgPGEgaHJlZj0iaHR0cHM6Ly9ncm91cHM=
u
Z29vZ2xlLmNvbS9hL2lzb2NwcC5vcmcvZC9tc2dpZC9zdGQtcHJvcG9zYWxzL2U1OTA2M2M2LWM=
2
NDYtNGQ3ZS05NjVhLTZlNDA0ZjE3ODg2YSU0MGlzb2NwcC5vcmc/dXRtX21lZGl1bT1lbWFpbCZ=
h
bXA7dXRtX3NvdXJjZT1mb290ZXIiIHRhcmdldD0iX2JsYW5rIiBkYXRhLXNhZmVyZWRpcmVjdHV=
y
bD0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS91cmw/aGw9ZW4tR0ImYW1wO3E9aHR0cHM6Ly9ncm9=
1
cHMuZ29vZ2xlLmNvbS9hL2lzb2NwcC5vcmcvZC9tc2dpZC9zdGQtcHJvcG9zYWxzL2U1OTA2M2M=
2
LWM2NDYtNGQ3ZS05NjVhLTZlNDA0ZjE3ODg2YSUyNTQwaXNvY3BwLm9yZz91dG1fbWVkaXVtJTN=
E
ZW1haWwlMjZ1dG1fc291cmNlJTNEZm9vdGVyJmFtcDtzb3VyY2U9Z21haWwmYW1wO3VzdD0xNDk=
0
NDMyNTIxMjU2MDAwJmFtcDt1c2c9QUZRakNORnNBNFV4V05CbnpyUkVCZnhiSXo1LU5IR2gwdyI=
+
aHR0cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9hLzx3YnI+aXNvY3BwLm9yZy9kL21zZ2lkL3N0ZC0=
8
d2JyPnByb3Bvc2Fscy9lNTkwNjNjNi1jNjQ2LTRkN2UtPHdicj45NjVhLTZlNDA0ZjE3ODg2YSU=
0
MGlzb2NwcC5vcmc8L2E+PHdicj4uPGJyPgo8L2ZvbnQ+PC9zcGFuPjwvYmxvY2txdW90ZT48L2R=
p
dj48YnI+PC9kaXY+PC9kaXY+" style=3D"min-height:0;width:0;max-height:0;max-wi=
dth:0;overflow:hidden;font-size:0em;padding:0;margin:0">=E2=80=8B</div></di=
v></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/384df08a-b442-4c14-a7ab-aaa063dfc5bf%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/384df08a-b442-4c14-a7ab-aaa063dfc5bf=
%40isocpp.org</a>.<br />
------=_Part_3604_1197879615.1494351806534--
------=_Part_3603_1248396006.1494351806534--
.
Author: Nicol Bolas <jmckesson@gmail.com>
Date: Tue, 9 May 2017 10:56:02 -0700 (PDT)
Raw View
------=_Part_4291_352435503.1494352562243
Content-Type: multipart/alternative;
boundary="----=_Part_4292_348107016.1494352562243"
------=_Part_4292_348107016.1494352562243
Content-Type: text/plain; charset="UTF-8"
This sort of thing is part of Concepts TS. Whether it will be incorporated
into C++20 exactly as is remains a matter for the committee to decide.
There is a lot of uncertainty about how much of Concepts TS's "terse"
syntax we really want in the language. And `auto` parameters are defined in
terms of the "concept that accepts all types" concept.
So if concept-constrained parameters aren't allowed, then nor will `auto`
parameters.
--
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/c9b3d990-d3c3-4a26-b927-460e0c9c7461%40isocpp.org.
------=_Part_4292_348107016.1494352562243
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><code>This sort of thing is part of Concepts TS. Whether i=
t will be incorporated into C++20 exactly as is remains a matter for the co=
mmittee to decide. There is a lot of uncertainty about how much of Concepts=
TS's "terse" syntax we really want in the language. And `aut=
o` parameters are defined in terms of the "concept that accepts all ty=
pes" concept.<br><br>So if concept-constrained parameters aren't a=
llowed, then nor will `auto` parameters.<br></code></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/c9b3d990-d3c3-4a26-b927-460e0c9c7461%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/c9b3d990-d3c3-4a26-b927-460e0c9c7461=
%40isocpp.org</a>.<br />
------=_Part_4292_348107016.1494352562243--
------=_Part_4291_352435503.1494352562243--
.
Author: Denis Kotov <redradist@gmail.com>
Date: Tue, 9 May 2017 11:17:45 -0700 (PDT)
Raw View
------=_Part_1456_1711952669.1494353865179
Content-Type: multipart/alternative;
boundary="----=_Part_1457_121529600.1494353865179"
------=_Part_1457_121529600.1494353865179
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Hi Nicol,
It is very strange why it is a part of concept, for me it seems like=20
extension for templates
=D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=B8=D0=BA, 9 =D0=BC=D0=B0=D1=8F 2017 =D0=
=B3., 20:56:02 UTC+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=
=D0=B5=D0=BB=D1=8C Nicol Bolas =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>
> This sort of thing is part of Concepts TS. Whether it will be incorporate=
d=20
> into C++20 exactly as is remains a matter for the committee to decide.=20
> There is a lot of uncertainty about how much of Concepts TS's "terse"=20
> syntax we really want in the language. And `auto` parameters are defined =
in=20
> terms of the "concept that accepts all types" concept.
>
> So if concept-constrained parameters aren't allowed, then nor will `auto`=
=20
> parameters.
>
--=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/2b6b016d-3463-416b-afd5-d10bac62a334%40isocpp.or=
g.
------=_Part_1457_121529600.1494353865179
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">Hi Nicol,<br><br>It is very strange why it is a part of co=
ncept, for me it seems like extension for templates<br><br>=D0=B2=D1=82=D0=
=BE=D1=80=D0=BD=D0=B8=D0=BA, 9 =D0=BC=D0=B0=D1=8F 2017 =D0=B3., 20:56:02 UT=
C+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=
=8C Nicol Bolas =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:<blockquote clas=
s=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #c=
cc solid;padding-left: 1ex;"><div dir=3D"ltr"><code>This sort of thing is p=
art of Concepts TS. Whether it will be incorporated into C++20 exactly as i=
s remains a matter for the committee to decide. There is a lot of uncertain=
ty about how much of Concepts TS's "terse" syntax we really w=
ant in the language. And `auto` parameters are defined in terms of the &quo=
t;concept that accepts all types" concept.<br><br>So if concept-constr=
ained parameters aren't allowed, then nor will `auto` parameters.<br></=
code></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/2b6b016d-3463-416b-afd5-d10bac62a334%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/2b6b016d-3463-416b-afd5-d10bac62a334=
%40isocpp.org</a>.<br />
------=_Part_1457_121529600.1494353865179--
------=_Part_1456_1711952669.1494353865179--
.
Author: Thiago Macieira <thiago@macieira.org>
Date: Tue, 09 May 2017 11:26:44 -0700
Raw View
Em ter=C3=A7a-feira, 9 de maio de 2017, =C3=A0s 10:40:25 PDT, Denis Kotov e=
screveu:
> Hi Jakob Riedle,
>=20
> I know that it works in *GCC*, but it is not part of the *standard* yet
Yes, at least as part of Concepts TS.
--=20
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
Software Architect - Intel Open Source Technology Center
--=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/2561240.nqGuPfe0NH%40tjmaciei-mobl1.
.
Author: Thiago Macieira <thiago@macieira.org>
Date: Tue, 09 May 2017 11:27:19 -0700
Raw View
Em ter=C3=A7a-feira, 9 de maio de 2017, =C3=A0s 11:17:45 PDT, Denis Kotov e=
screveu:
> Hi Nicol,
>=20
> It is very strange why it is a part of concept, for me it seems like
> extension for templates
And what are concepts besides constraining templates?
--=20
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
Software Architect - Intel Open Source Technology Center
--=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/1731990.fxACPPRqpe%40tjmaciei-mobl1.
.
Author: Nicol Bolas <jmckesson@gmail.com>
Date: Tue, 9 May 2017 11:30:47 -0700 (PDT)
Raw View
------=_Part_3672_28380956.1494354647618
Content-Type: multipart/alternative;
boundary="----=_Part_3673_61053338.1494354647618"
------=_Part_3673_61053338.1494354647618
Content-Type: text/plain; charset="UTF-8"
On Tuesday, May 9, 2017 at 2:17:45 PM UTC-4, Denis Kotov wrote:
>
> Hi Nicol,
>
> It is very strange why it is a part of concept, for me it seems like
> extension for templates
>
Because the Concepts TS defines the ability to constraint function
parameters transparently:
void Func(ConceptName t);
is equivalent to:
template<ConceptName T>
void Func(T t);
`auto` is thus redefined as simply an unconstrained context.
It's not strange at all. It's a natural thing for Concepts TS to do. And
besides, once you have concepts, you'll be using them far more than `auto`
for function parameters. There aren't that many functions that can truly
take *any* type. Even forwarding functions like `emplace` should constrain
their parameters to those types which can actually be used to construct the
object they're supposed to.
--
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/3657aeea-1787-40ee-9320-9b6e6466f061%40isocpp.org.
------=_Part_3673_61053338.1494354647618
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">On Tuesday, May 9, 2017 at 2:17:45 PM UTC-4, Denis Kotov w=
rote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8e=
x;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr">Hi Nicol=
,<br><br>It is very strange why it is a part of concept, for me it seems li=
ke extension for templates</div></blockquote><div><br>Because the Concepts =
TS defines the ability to constraint function parameters transparently:<br>=
<br><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: #008;" class=3D"styled-by-prettify">void=
</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><s=
pan style=3D"color: #606;" class=3D"styled-by-prettify">Func</span><span st=
yle=3D"color: #660;" class=3D"styled-by-prettify">(</span><span style=3D"co=
lor: #606;" class=3D"styled-by-prettify">ConceptName</span><span style=3D"c=
olor: #000;" class=3D"styled-by-prettify"> t</span><span style=3D"color: #6=
60;" class=3D"styled-by-prettify">);</span></div></code></div><br>is equiva=
lent to:<br><br><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: #008;" class=3D"styled-by-pr=
ettify">template</span><span style=3D"color: #660;" class=3D"styled-by-pret=
tify"><</span><span style=3D"color: #606;" class=3D"styled-by-prettify">=
ConceptName</span><span style=3D"color: #000;" class=3D"styled-by-prettify"=
> T</span><span style=3D"color: #660;" class=3D"styled-by-prettify">></s=
pan><span style=3D"color: #000;" class=3D"styled-by-prettify"><br></span><s=
pan style=3D"color: #008;" class=3D"styled-by-prettify">void</span><span st=
yle=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"co=
lor: #606;" class=3D"styled-by-prettify">Func</span><span style=3D"color: #=
660;" class=3D"styled-by-prettify">(</span><span style=3D"color: #000;" cla=
ss=3D"styled-by-prettify">T t</span><span style=3D"color: #660;" class=3D"s=
tyled-by-prettify">);</span><span style=3D"color: #000;" class=3D"styled-by=
-prettify"><br></span></div></code></div><br>`auto` is thus redefined as si=
mply an unconstrained context.<br><br>It's not strange at all. It's=
a natural thing for Concepts TS to do. And besides, once you have concepts=
, you'll be using them far more than `auto` for function parameters. Th=
ere aren't that many functions that can truly take <i>any</i> type. Eve=
n forwarding functions like `emplace` should constrain their parameters to =
those types which can actually be used to construct the object they're =
supposed to.<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/3657aeea-1787-40ee-9320-9b6e6466f061%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/3657aeea-1787-40ee-9320-9b6e6466f061=
%40isocpp.org</a>.<br />
------=_Part_3673_61053338.1494354647618--
------=_Part_3672_28380956.1494354647618--
.
Author: Arthur O'Dwyer <arthur.j.odwyer@gmail.com>
Date: Tue, 9 May 2017 15:37:59 -0700 (PDT)
Raw View
------=_Part_6500_287696894.1494369480042
Content-Type: multipart/alternative;
boundary="----=_Part_6501_308362923.1494369480043"
------=_Part_6501_308362923.1494369480043
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
On Tuesday, May 9, 2017 at 11:30:47 AM UTC-7, Nicol Bolas wrote:
>
> On Tuesday, May 9, 2017 at 2:17:45 PM UTC-4, Denis Kotov wrote:
>>
>> Hi Nicol,
>>
>> It is very strange why it is a part of concept, for me it seems like=20
>> extension for templates
>>
>
> Because the Concepts TS defines the ability to constraint function=20
> parameters transparently:
>
> void Func(ConceptName t);
>
> is equivalent to:
>
> template<ConceptName T>
> void Func(T t);
>
> `auto` is thus redefined as simply an unconstrained context.
>
> It's not strange at all. It's a natural thing for Concepts TS to do. And=
=20
> besides, once you have concepts, you'll be using them far more than `auto=
`=20
> for function parameters. There aren't that many functions that can truly=
=20
> take *any* type. Even forwarding functions like `emplace` should=20
> constrain their parameters to those types which can actually be used to=
=20
> construct the object they're supposed to.
>
As Nicol also wrote:
> There is a lot of uncertainty about how much of Concepts TS's "terse"=20
syntax we really want in the language.
The fact that Andrew Sutton (or whoever it was =E2=80=94 apologies if I'm w=
rong =E2=80=94=20
but my impression is that it was him) bundled "terse syntax" straight into=
=20
the Concepts proposal, instead of splitting up the functional "Concepts"=20
proposal from the purely syntactic-sugar "terse syntax" proposal, is one of=
=20
the (many) reasons that "Concepts" has taken so long to get into the=20
language.
My impression is that a significant fraction of the Committee share Nicol's=
=20
"uncertainty" about terse syntax =E2=80=94 i.e., "I'd be more amenable to t=
his=20
proposal if it didn't come with terse syntax."
My further impression is that a vocal minority are unhappy at a higher=20
level with how Sutton has handled the level-1 complaints =E2=80=94 i.e., "I=
'd=20
actually be in favor of all of these features separately, but after the=20
aforementioned response, continuing to bundle them together is so=20
disingenuous that I oppose the bundled proposal on moral grounds."
http://honermann.net/blog/2016/03/06/why-concepts-didnt-make-cxx17/
Anyway, @Denis, you probably don't want 'auto' parameters on your functions=
=20
anyway, because then you still have to deal with the messiness of overload=
=20
sets, and having to define all your functions in header files, and so on.=
=20
If you really find yourself doing a lot of template functions, maybe=20
consider
// Unconstrained generic function (as inline variable of closure type)
inline auto func =3D [](const auto &i) {
std::cout << "Type of object i is " << typeid(i).name() << std::endl;
std::cout << "Value is " << i << std::endl;
};
int main() {
func(1);
func(std::string{"Hi Denis !"});
return 0;
}
and let us know how it goes? (Probably a bad idea, but I'm not joking that=
=20
it *might* be worth a try.)
my $.02,
Arthur
--=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/872d1f11-6ded-4398-9117-1c3871f364b4%40isocpp.or=
g.
------=_Part_6501_308362923.1494369480043
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">On Tuesday, May 9, 2017 at 11:30:47 AM UTC-7, Nicol Bolas =
wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8=
ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr">On Tues=
day, May 9, 2017 at 2:17:45 PM UTC-4, Denis Kotov wrote:<blockquote class=
=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc s=
olid;padding-left:1ex"><div dir=3D"ltr">Hi Nicol,<br><br>It is very strange=
why it is a part of concept, for me it seems like extension for templates<=
/div></blockquote><div><br>Because the Concepts TS defines the ability to c=
onstraint function parameters transparently:<br><br><div style=3D"backgroun=
d-color:rgb(250,250,250);border-color:rgb(187,187,187);border-style:solid;b=
order-width:1px"><code><div><span style=3D"color:#008">void</span><span sty=
le=3D"color:#000"> </span><span style=3D"color:#606">Func</span><span style=
=3D"color:#660">(</span><span style=3D"color:#606">ConceptName</span><span =
style=3D"color:#000"> t</span><span style=3D"color:#660">);</span></div></c=
ode></div><br>is equivalent to:<br><br><div style=3D"background-color:rgb(2=
50,250,250);border-color:rgb(187,187,187);border-style:solid;border-width:1=
px"><code><div><span style=3D"color:#008">template</span><span style=3D"col=
or:#660"><</span><span style=3D"color:#606">ConceptName</span><span styl=
e=3D"color:#000"> T</span><span style=3D"color:#660">></span><span style=
=3D"color:#000"><br></span><span style=3D"color:#008">void</span><span styl=
e=3D"color:#000"> </span><span style=3D"color:#606">Func</span><span style=
=3D"color:#660">(</span><span style=3D"color:#000">T t</span><span style=3D=
"color:#660">);</span><span style=3D"color:#000"><br></span></div></code></=
div><br>`auto` is thus redefined as simply an unconstrained context.<br><br=
>It's not strange at all. It's a natural thing for Concepts TS to d=
o. And besides, once you have concepts, you'll be using them far more t=
han `auto` for function parameters. There aren't that many functions th=
at can truly take <i>any</i> type. Even forwarding functions like `emplace`=
should constrain their parameters to those types which can actually be use=
d to construct the object they're supposed to.<br></div></div></blockqu=
ote><div><br></div>As Nicol also wrote:<div><span style=3D"font-family: mon=
ospace;">>=C2=A0</span><span style=3D"font-family: monospace;">There is =
a lot of uncertainty about how much of Concepts TS's "terse" =
syntax we really want in the language.</span></div><br>The fact that Andrew=
Sutton (or whoever it was =E2=80=94 apologies if I'm wrong =E2=80=94 b=
ut my impression is that it was him) bundled "terse syntax" strai=
ght into the Concepts proposal, instead of splitting up the functional &quo=
t;Concepts" proposal from the purely syntactic-sugar "terse synta=
x" proposal, is one of the (many) reasons that "Concepts" ha=
s taken so long to get into the language.<br><br>My impression is that a si=
gnificant fraction of the Committee share Nicol's "uncertainty&quo=
t; about terse syntax =E2=80=94 i.e., "I'd be more amenable to thi=
s proposal if it didn't come with terse syntax."<br>My further imp=
ression is that a vocal minority are unhappy at a higher level with how Sut=
ton has handled the level-1 complaints =E2=80=94 i.e., "I'd actual=
ly be in favor of all of these features separately, but=C2=A0after the afor=
ementioned response, continuing to bundle them together is so disingenuous =
that I oppose the bundled proposal on moral grounds."<div><span style=
=3D"font-family: monospace;"><br></span></div><div><a href=3D"http://honerm=
ann.net/blog/2016/03/06/why-concepts-didnt-make-cxx17/">http://honermann.ne=
t/blog/2016/03/06/why-concepts-didnt-make-cxx17/</a><span style=3D"font-fam=
ily: monospace;"><br></span></div><div><br></div><div>Anyway, @Denis, you p=
robably don't want 'auto' parameters on your functions anyway, =
because then you still have to deal with the messiness of overload sets, an=
d having to define all your functions in header files, and so on. If you re=
ally find yourself doing a lot of template functions, maybe consider</div><=
div><br></div><div><pre><code><span style=3D"color: rgb(136, 0, 0);">// Unc=
onstrained generic function (as inline variable of closure type)</span><spa=
n style=3D"color: rgb(0, 0, 0);"><br></span><span style=3D"color: rgb(0, 0,=
136);">inline auto</span><span style=3D"color: rgb(0, 0, 0);"> func =3D []=
</span><span style=3D"color: rgb(102, 102, 0);">(</span><span style=3D"colo=
r: rgb(0, 0, 136);">const</span><span style=3D"color: rgb(0, 0, 0);"> </spa=
n><span style=3D"color: rgb(0, 0, 136);">auto</span><span style=3D"color: r=
gb(0, 0, 0);"> </span><span style=3D"color: rgb(102, 102, 0);">&</span>=
<span style=3D"color: rgb(0, 0, 0);">i</span><span style=3D"color: rgb(102,=
102, 0);">)</span><span style=3D"color: rgb(0, 0, 0);"> </span><span style=
=3D"color: rgb(102, 102, 0);">{</span><span style=3D"color: rgb(0, 0, 0);">=
<br>=C2=A0 std</span><span style=3D"color: rgb(102, 102, 0);">::</span><spa=
n style=3D"color: rgb(0, 0, 0);">cout </span><span style=3D"color: rgb(102,=
102, 0);"><<</span><span style=3D"color: rgb(0, 0, 0);"> </span><spa=
n style=3D"color: rgb(0, 136, 0);">"Type of object i is "</span><=
span style=3D"color: rgb(0, 0, 0);"> </span><span style=3D"color: rgb(102, =
102, 0);"><<</span><span style=3D"color: rgb(0, 0, 0);"> </span><span=
style=3D"color: rgb(0, 0, 136);">typeid</span><span style=3D"color: rgb(10=
2, 102, 0);">(</span><span style=3D"color: rgb(0, 0, 0);">i</span><span sty=
le=3D"color: rgb(102, 102, 0);">).</span><span style=3D"color: rgb(0, 0, 0)=
;">name</span><span style=3D"color: rgb(102, 102, 0);">()</span><span style=
=3D"color: rgb(0, 0, 0);"> </span><span style=3D"color: rgb(102, 102, 0);">=
<<</span><span style=3D"color: rgb(0, 0, 0);"> std</span><span style=
=3D"color: rgb(102, 102, 0);">::</span><span style=3D"color: rgb(0, 0, 0);"=
>endl</span><span style=3D"color: rgb(102, 102, 0);">;</span><span style=3D=
"color: rgb(0, 0, 0);"><br>=C2=A0 std</span><span style=3D"color: rgb(102, =
102, 0);">::</span><span style=3D"color: rgb(0, 0, 0);">cout </span><span s=
tyle=3D"color: rgb(102, 102, 0);"><<</span><span style=3D"color: rgb(=
0, 0, 0);"> </span><span style=3D"color: rgb(0, 136, 0);">"Value is &q=
uot;</span><span style=3D"color: rgb(0, 0, 0);"> </span><span style=3D"colo=
r: rgb(102, 102, 0);"><<</span><span style=3D"color: rgb(0, 0, 0);"> =
i </span><span style=3D"color: rgb(102, 102, 0);"><<</span><span styl=
e=3D"color: rgb(0, 0, 0);"> std</span><span style=3D"color: rgb(102, 102, 0=
);">::</span><span style=3D"color: rgb(0, 0, 0);">endl</span><span style=3D=
"color: rgb(102, 102, 0);">;</span><span style=3D"color: rgb(0, 0, 0);"><br=
></span><span style=3D"color: rgb(102, 102, 0);">};</span><span style=3D"co=
lor: rgb(0, 0, 0);"><br><br></span><span style=3D"color: rgb(0, 0, 136);">i=
nt</span><span style=3D"color: rgb(0, 0, 0);"> main</span><span style=3D"co=
lor: rgb(102, 102, 0);">()</span><span style=3D"color: rgb(0, 0, 0);"> </sp=
an><span style=3D"color: rgb(102, 102, 0);">{</span><span style=3D"color: r=
gb(0, 0, 0);"><br>=C2=A0 func</span><span style=3D"color: rgb(102, 102, 0);=
">(</span><span style=3D"color: rgb(0, 102, 102);">1</span><span style=3D"c=
olor: rgb(102, 102, 0);">);</span><span style=3D"color: rgb(0, 0, 0);"><br>=
=C2=A0 func</span><span style=3D"color: rgb(102, 102, 0);">(</span><span st=
yle=3D"color: rgb(0, 0, 0);">std</span><span style=3D"color: rgb(102, 102, =
0);">::</span><span style=3D"color: rgb(0, 0, 136);">string</span><span sty=
le=3D"color: rgb(102, 102, 0);">{</span><span style=3D"color: rgb(0, 136, 0=
);">"Hi Denis !"</span><span style=3D"color: rgb(102, 102, 0);">}=
);</span><span style=3D"color: rgb(0, 0, 0);"><br>=C2=A0 </span><span style=
=3D"color: rgb(0, 0, 136);">return</span><span style=3D"color: rgb(0, 0, 0)=
;"> </span><span style=3D"color: rgb(0, 102, 102);">0</span><span style=3D"=
color: rgb(102, 102, 0);">;</span><span style=3D"color: rgb(0, 0, 0);"><br>=
</span><span style=3D"color: rgb(102, 102, 0);">}</span></code></pre><br>an=
d let us know how it goes? (Probably a bad idea, but I'm not joking tha=
t it <i>might</i> be worth a try.)<br><br></div><div>my $.02,</div><div>Art=
hur</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/872d1f11-6ded-4398-9117-1c3871f364b4%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/872d1f11-6ded-4398-9117-1c3871f364b4=
%40isocpp.org</a>.<br />
------=_Part_6501_308362923.1494369480043--
------=_Part_6500_287696894.1494369480042--
.
Author: Anthony Hall <anthrond@gmail.com>
Date: Tue, 9 May 2017 21:15:25 -0700 (PDT)
Raw View
------=_Part_3529_1164153390.1494389725289
Content-Type: multipart/alternative;
boundary="----=_Part_3530_305225308.1494389725289"
------=_Part_3530_305225308.1494389725289
Content-Type: text/plain; charset="UTF-8"
It is my impression that the Modules TS will obviate some of the need to
write function templates only inside of header files -- something akin to
what had been intended with export templates, but that the related
technical issues are actually soluble. Is that impression correct? Is
that too simplistic and naive a view of it?
If that impression *is* correct, would the concerns about terse function
template syntax be resolved, specifically, it not being immediately clear
from the form of the declaration itself whether the function is a template
or not, and should therefore be implemented in a header rather than a cpp
file?
-Andy
--
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/e801c200-b1a1-4c82-9ff5-4632011360b4%40isocpp.org.
------=_Part_3530_305225308.1494389725289
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">It is my impression that the Modules TS will obviate some =
of the need to write function templates only inside of header files -- some=
thing akin to what had been intended with export templates, but that the re=
lated technical issues are actually soluble. =C2=A0Is that impression corre=
ct? =C2=A0Is that too simplistic and naive a view of it?<br><br>If that imp=
ression <i>is</i>=C2=A0correct, would the concerns about terse function tem=
plate syntax be resolved, specifically, it not being immediately clear from=
the form of the declaration itself whether the function is a template or n=
ot, and should therefore be implemented in a header rather than a cpp file?=
<div><br></div><div>-Andy</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/e801c200-b1a1-4c82-9ff5-4632011360b4%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/e801c200-b1a1-4c82-9ff5-4632011360b4=
%40isocpp.org</a>.<br />
------=_Part_3530_305225308.1494389725289--
------=_Part_3529_1164153390.1494389725289--
.
Author: Nicol Bolas <jmckesson@gmail.com>
Date: Wed, 10 May 2017 07:38:50 -0700 (PDT)
Raw View
------=_Part_5354_433557662.1494427131152
Content-Type: multipart/alternative;
boundary="----=_Part_5355_1182279934.1494427131152"
------=_Part_5355_1182279934.1494427131152
Content-Type: text/plain; charset="UTF-8"
On Wednesday, May 10, 2017 at 12:15:25 AM UTC-4, Anthony Hall wrote:
>
> It is my impression that the Modules TS will obviate some of the need to
> write function templates only inside of header files -- something akin to
> what had been intended with export templates, but that the related
> technical issues are actually soluble. Is that impression correct? Is
> that too simplistic and naive a view of it?
>
> If that impression *is* correct, would the concerns about terse function
> template syntax be resolved, specifically, it not being immediately clear
> from the form of the declaration itself whether the function is a template
> or not, and should therefore be implemented in a header rather than a cpp
> file?
>
You assume this is the only difference between a template function and a
non-template function. You can't get function pointers to template
functions (unless you explicitly provide all template parameters, which
means you have to know what they are). If we had so-called "lifting
lambdas" (the ability to easily create a lambda that calls a function by
name), this wouldn't be much of an issue. But since we don't, it remains an
issue.
--
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/b6a2673a-ebfa-4b8d-88fd-2f2a48f06526%40isocpp.org.
------=_Part_5355_1182279934.1494427131152
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><br><br>On Wednesday, May 10, 2017 at 12:15:25 AM UTC-4, A=
nthony Hall wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;marg=
in-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"=
ltr">It is my impression that the Modules TS will obviate some of the need =
to write function templates only inside of header files -- something akin t=
o what had been intended with export templates, but that the related techni=
cal issues are actually soluble. =C2=A0Is that impression correct? =C2=A0Is=
that too simplistic and naive a view of it?<br><br>If that impression <i>i=
s</i>=C2=A0correct, would the concerns about terse function template syntax=
be resolved, specifically, it not being immediately clear from the form of=
the declaration itself whether the function is a template or not, and shou=
ld therefore be implemented in a header rather than a cpp file?</div></bloc=
kquote><div><br>You assume this is the only difference between a template f=
unction and a non-template function. You can't get function pointers to=
template functions (unless you explicitly provide all template parameters,=
which means you have to know what they are). If we had so-called "lif=
ting lambdas" (the ability to easily create a lambda that calls a func=
tion by name), this wouldn't be much of an issue. But since we don'=
t, it remains an issue.</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/b6a2673a-ebfa-4b8d-88fd-2f2a48f06526%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/b6a2673a-ebfa-4b8d-88fd-2f2a48f06526=
%40isocpp.org</a>.<br />
------=_Part_5355_1182279934.1494427131152--
------=_Part_5354_433557662.1494427131152--
.
Author: Denis Kotov <redradist@gmail.com>
Date: Thu, 11 May 2017 13:34:28 -0700 (PDT)
Raw View
------=_Part_5377_176465285.1494534868848
Content-Type: multipart/alternative;
boundary="----=_Part_5378_1446275676.1494534868849"
------=_Part_5378_1446275676.1494534868849
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Arthur O'Dwyer
*>> Anyway, @Denis, you probably don't want 'auto' parameters on your=20
functions anyway, because then you still have to deal with the messiness of=
=20
overload sets, and having to define all your functions in header files, and=
=20
so on. If you really find yourself doing a lot of template functions, maybe=
=20
consider*
I would say that I would prefer writing in such way, because for me it=20
seems like pure polymorphic programming ... It is like Python programming=
=20
but with ability to compile your Python program and find all issues at=20
compile time instead of runtime.
It is so awesome !!
=D1=81=D1=80=D0=B5=D0=B4=D0=B0, 10 =D0=BC=D0=B0=D1=8F 2017 =D0=B3., 1:38:00=
UTC+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=
=D1=8C Arthur O'Dwyer =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>
> On Tuesday, May 9, 2017 at 11:30:47 AM UTC-7, Nicol Bolas wrote:
>>
>> On Tuesday, May 9, 2017 at 2:17:45 PM UTC-4, Denis Kotov wrote:
>>>
>>> Hi Nicol,
>>>
>>> It is very strange why it is a part of concept, for me it seems like=20
>>> extension for templates
>>>
>>
>> Because the Concepts TS defines the ability to constraint function=20
>> parameters transparently:
>>
>> void Func(ConceptName t);
>>
>> is equivalent to:
>>
>> template<ConceptName T>
>> void Func(T t);
>>
>> `auto` is thus redefined as simply an unconstrained context.
>>
>> It's not strange at all. It's a natural thing for Concepts TS to do. And=
=20
>> besides, once you have concepts, you'll be using them far more than `aut=
o`=20
>> for function parameters. There aren't that many functions that can truly=
=20
>> take *any* type. Even forwarding functions like `emplace` should=20
>> constrain their parameters to those types which can actually be used to=
=20
>> construct the object they're supposed to.
>>
>
> As Nicol also wrote:
> > There is a lot of uncertainty about how much of Concepts TS's "terse"=
=20
> syntax we really want in the language.
>
> The fact that Andrew Sutton (or whoever it was =E2=80=94 apologies if I'm=
wrong =E2=80=94=20
> but my impression is that it was him) bundled "terse syntax" straight int=
o=20
> the Concepts proposal, instead of splitting up the functional "Concepts"=
=20
> proposal from the purely syntactic-sugar "terse syntax" proposal, is one =
of=20
> the (many) reasons that "Concepts" has taken so long to get into the=20
> language.
>
> My impression is that a significant fraction of the Committee share=20
> Nicol's "uncertainty" about terse syntax =E2=80=94 i.e., "I'd be more ame=
nable to=20
> this proposal if it didn't come with terse syntax."
> My further impression is that a vocal minority are unhappy at a higher=20
> level with how Sutton has handled the level-1 complaints =E2=80=94 i.e., =
"I'd=20
> actually be in favor of all of these features separately, but after the=
=20
> aforementioned response, continuing to bundle them together is so=20
> disingenuous that I oppose the bundled proposal on moral grounds."
>
> http://honermann.net/blog/2016/03/06/why-concepts-didnt-make-cxx17/
>
> Anyway, @Denis, you probably don't want 'auto' parameters on your=20
> functions anyway, because then you still have to deal with the messiness =
of=20
> overload sets, and having to define all your functions in header files, a=
nd=20
> so on. If you really find yourself doing a lot of template functions, may=
be=20
> consider
>
> // Unconstrained generic function (as inline variable of closure type)
> inline auto func =3D [](const auto &i) {
> std::cout << "Type of object i is " << typeid(i).name() << std::endl;
> std::cout << "Value is " << i << std::endl;
> };
>
> int main() {
> func(1);
> func(std::string{"Hi Denis !"});
> return 0;
> }
>
>
> and let us know how it goes? (Probably a bad idea, but I'm not joking tha=
t=20
> it *might* be worth a try.)
>
> my $.02,
> Arthur
>
--=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/c67567e3-2086-4f43-9859-6e2a58ba51b7%40isocpp.or=
g.
------=_Part_5378_1446275676.1494534868849
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><span class=3D"_username"><span class=3D"IVILX2C-D-a g-hov=
ercard" style=3D"color: rgb(34, 34, 34);" data-userid=3D"114256375634250461=
400" data-name=3D"Arthur O'Dwyer">Arthur O'Dwyer</span></span><br><=
b>>> Anyway, @Denis, you probably don't want 'auto' param=
eters on your=20
functions anyway, because then you still have to deal with the messiness
of overload sets, and having to define all your functions in header=20
files, and so on. If you really find yourself doing a lot of template=20
functions, maybe consider</b><br><br>I would say that I would prefer writin=
g in such way, because for me it seems like pure polymorphic programming ..=
.. It is like Python programming but with ability to compile your Python pro=
gram and find all issues at compile time instead of runtime.<br>It is so aw=
esome !!<br><br>=D1=81=D1=80=D0=B5=D0=B4=D0=B0, 10 =D0=BC=D0=B0=D1=8F 2017 =
=D0=B3., 1:38:00 UTC+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=
=82=D0=B5=D0=BB=D1=8C Arthur O'Dwyer =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=
=B0=D0=BB:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left:=
0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr">On =
Tuesday, May 9, 2017 at 11:30:47 AM UTC-7, Nicol Bolas wrote:<blockquote cl=
ass=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #cc=
c solid;padding-left:1ex"><div dir=3D"ltr">On Tuesday, May 9, 2017 at 2:17:=
45 PM UTC-4, Denis Kotov wrote:<blockquote class=3D"gmail_quote" style=3D"m=
argin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><div=
dir=3D"ltr">Hi Nicol,<br><br>It is very strange why it is a part of concep=
t, for me it seems like extension for templates</div></blockquote><div><br>=
Because the Concepts TS defines the ability to constraint function paramete=
rs transparently:<br><br><div style=3D"background-color:rgb(250,250,250);bo=
rder-color:rgb(187,187,187);border-style:solid;border-width:1px"><code><div=
><span style=3D"color:#008">void</span><span style=3D"color:#000"> </span><=
span style=3D"color:#606">Func</span><span style=3D"color:#660">(</span><sp=
an style=3D"color:#606">ConceptName</span><span style=3D"color:#000"> t</sp=
an><span style=3D"color:#660">);</span></div></code></div><br>is equivalent=
to:<br><br><div style=3D"background-color:rgb(250,250,250);border-color:rg=
b(187,187,187);border-style:solid;border-width:1px"><code><div><span style=
=3D"color:#008">template</span><span style=3D"color:#660"><</span><span =
style=3D"color:#606">ConceptName</span><span style=3D"color:#000"> T</span>=
<span style=3D"color:#660">></span><span style=3D"color:#000"><br></span=
><span style=3D"color:#008">void</span><span style=3D"color:#000"> </span><=
span style=3D"color:#606">Func</span><span style=3D"color:#660">(</span><sp=
an style=3D"color:#000">T t</span><span style=3D"color:#660">);</span><span=
style=3D"color:#000"><br></span></div></code></div><br>`auto` is thus rede=
fined as simply an unconstrained context.<br><br>It's not strange at al=
l. It's a natural thing for Concepts TS to do. And besides, once you ha=
ve concepts, you'll be using them far more than `auto` for function par=
ameters. There aren't that many functions that can truly take <i>any</i=
> type. Even forwarding functions like `emplace` should constrain their par=
ameters to those types which can actually be used to construct the object t=
hey're supposed to.<br></div></div></blockquote><div><br></div>As Nicol=
also wrote:<div><span style=3D"font-family:monospace">>=C2=A0</span><sp=
an style=3D"font-family:monospace">There is a lot of uncertainty about how =
much of Concepts TS's "terse" syntax we really want in the la=
nguage.</span></div><br>The fact that Andrew Sutton (or whoever it was =E2=
=80=94 apologies if I'm wrong =E2=80=94 but my impression is that it wa=
s him) bundled "terse syntax" straight into the Concepts proposal=
, instead of splitting up the functional "Concepts" proposal from=
the purely syntactic-sugar "terse syntax" proposal, is one of th=
e (many) reasons that "Concepts" has taken so long to get into th=
e language.<br><br>My impression is that a significant fraction of the Comm=
ittee share Nicol's "uncertainty" about terse syntax =E2=80=
=94 i.e., "I'd be more amenable to this proposal if it didn't =
come with terse syntax."<br>My further impression is that a vocal mino=
rity are unhappy at a higher level with how Sutton has handled the level-1 =
complaints =E2=80=94 i.e., "I'd actually be in favor of all of the=
se features separately, but=C2=A0after the aforementioned response, continu=
ing to bundle them together is so disingenuous that I oppose the bundled pr=
oposal on moral grounds."<div><span style=3D"font-family:monospace"><b=
r></span></div><div><a href=3D"http://honermann.net/blog/2016/03/06/why-con=
cepts-didnt-make-cxx17/" target=3D"_blank" rel=3D"nofollow" onmousedown=3D"=
this.href=3D'http://www.google.com/url?q\x3dhttp%3A%2F%2Fhonermann.net%=
2Fblog%2F2016%2F03%2F06%2Fwhy-concepts-didnt-make-cxx17%2F\x26sa\x3dD\x26sn=
tz\x3d1\x26usg\x3dAFQjCNGPmwtRMZdVAzIRrRNRliDDAktG9A';return true;" onc=
lick=3D"this.href=3D'http://www.google.com/url?q\x3dhttp%3A%2F%2Fhonerm=
ann.net%2Fblog%2F2016%2F03%2F06%2Fwhy-concepts-didnt-make-cxx17%2F\x26sa\x3=
dD\x26sntz\x3d1\x26usg\x3dAFQjCNGPmwtRMZdVAzIRrRNRliDDAktG9A';return tr=
ue;">http://honermann.net/blog/<wbr>2016/03/06/why-concepts-didnt-<wbr>make=
-cxx17/</a><span style=3D"font-family:monospace"><br></span></div><div><br>=
</div><div>Anyway, @Denis, you probably don't want 'auto' param=
eters on your functions anyway, because then you still have to deal with th=
e messiness of overload sets, and having to define all your functions in he=
ader files, and so on. If you really find yourself doing a lot of template =
functions, maybe consider</div><div><br></div><div><pre><code><span style=
=3D"color:rgb(136,0,0)">// Unconstrained generic function (as inline variab=
le of closure type)</span><span style=3D"color:rgb(0,0,0)"><br></span><span=
style=3D"color:rgb(0,0,136)">inline auto</span><span style=3D"color:rgb(0,=
0,0)"> func =3D []</span><span style=3D"color:rgb(102,102,0)">(</span><span=
style=3D"color:rgb(0,0,136)">const</span><span style=3D"color:rgb(0,0,0)">=
</span><span style=3D"color:rgb(0,0,136)">auto</span><span style=3D"color:=
rgb(0,0,0)"> </span><span style=3D"color:rgb(102,102,0)">&</span><span =
style=3D"color:rgb(0,0,0)">i</span><span style=3D"color:rgb(102,102,0)">)</=
span><span style=3D"color:rgb(0,0,0)"> </span><span style=3D"color:rgb(102,=
102,0)">{</span><span style=3D"color:rgb(0,0,0)"><br>=C2=A0 std</span><span=
style=3D"color:rgb(102,102,0)">::</span><span style=3D"color:rgb(0,0,0)">c=
out </span><span style=3D"color:rgb(102,102,0)"><<</span><span style=
=3D"color:rgb(0,0,0)"> </span><span style=3D"color:rgb(0,136,0)">"Type=
of object i is "</span><span style=3D"color:rgb(0,0,0)"> </span><span=
style=3D"color:rgb(102,102,0)"><<</span><span style=3D"color:rgb(0,0=
,0)"> </span><span style=3D"color:rgb(0,0,136)">typeid</span><span style=3D=
"color:rgb(102,102,0)">(</span><span style=3D"color:rgb(0,0,0)">i</span><sp=
an style=3D"color:rgb(102,102,0)">).</span><span style=3D"color:rgb(0,0,0)"=
>name</span><span style=3D"color:rgb(102,102,0)">()</span><span style=3D"co=
lor:rgb(0,0,0)"> </span><span style=3D"color:rgb(102,102,0)"><<</span=
><span style=3D"color:rgb(0,0,0)"> std</span><span style=3D"color:rgb(102,1=
02,0)">::</span><span style=3D"color:rgb(0,0,0)">endl</span><span style=3D"=
color:rgb(102,102,0)">;</span><span style=3D"color:rgb(0,0,0)"><br>=C2=A0 s=
td</span><span style=3D"color:rgb(102,102,0)">::</span><span style=3D"color=
:rgb(0,0,0)">cout </span><span style=3D"color:rgb(102,102,0)"><<</spa=
n><span style=3D"color:rgb(0,0,0)"> </span><span style=3D"color:rgb(0,136,0=
)">"Value is "</span><span style=3D"color:rgb(0,0,0)"> </span><sp=
an style=3D"color:rgb(102,102,0)"><<</span><span style=3D"color:rgb(0=
,0,0)"> i </span><span style=3D"color:rgb(102,102,0)"><<</span><span =
style=3D"color:rgb(0,0,0)"> std</span><span style=3D"color:rgb(102,102,0)">=
::</span><span style=3D"color:rgb(0,0,0)">endl</span><span style=3D"color:r=
gb(102,102,0)">;</span><span style=3D"color:rgb(0,0,0)"><br></span><span st=
yle=3D"color:rgb(102,102,0)">};</span><span style=3D"color:rgb(0,0,0)"><br>=
<br></span><span style=3D"color:rgb(0,0,136)">int</span><span style=3D"colo=
r:rgb(0,0,0)"> main</span><span style=3D"color:rgb(102,102,0)">()</span><sp=
an style=3D"color:rgb(0,0,0)"> </span><span style=3D"color:rgb(102,102,0)">=
{</span><span style=3D"color:rgb(0,0,0)"><br>=C2=A0 func</span><span style=
=3D"color:rgb(102,102,0)">(</span><span style=3D"color:rgb(0,102,102)">1</s=
pan><span style=3D"color:rgb(102,102,0)">);</span><span style=3D"color:rgb(=
0,0,0)"><br>=C2=A0 func</span><span style=3D"color:rgb(102,102,0)">(</span>=
<span style=3D"color:rgb(0,0,0)">std</span><span style=3D"color:rgb(102,102=
,0)">::</span><span style=3D"color:rgb(0,0,136)">string</span><span style=
=3D"color:rgb(102,102,0)">{</span><span style=3D"color:rgb(0,136,0)">"=
Hi Denis !"</span><span style=3D"color:rgb(102,102,0)">});</span><span=
style=3D"color:rgb(0,0,0)"><br>=C2=A0 </span><span style=3D"color:rgb(0,0,=
136)">return</span><span style=3D"color:rgb(0,0,0)"> </span><span style=3D"=
color:rgb(0,102,102)">0</span><span style=3D"color:rgb(102,102,0)">;</span>=
<span style=3D"color:rgb(0,0,0)"><br></span><span style=3D"color:rgb(102,10=
2,0)">}</span></code></pre><br>and let us know how it goes? (Probably a bad=
idea, but I'm not joking that it <i>might</i> be worth a try.)<br><br>=
</div><div>my $.02,</div><div>Arthur</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/c67567e3-2086-4f43-9859-6e2a58ba51b7%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/c67567e3-2086-4f43-9859-6e2a58ba51b7=
%40isocpp.org</a>.<br />
------=_Part_5378_1446275676.1494534868849--
------=_Part_5377_176465285.1494534868848--
.