Topic: to_string customisation function
Author: n.alekseev2104@gmail.com
Date: Wed, 10 Oct 2018 05:21:54 -0700 (PDT)
Raw View
------=_Part_2657_1850088573.1539174114391
Content-Type: multipart/alternative;
boundary="----=_Part_2658_484024186.1539174114392"
------=_Part_2658_484024186.1539174114392
Content-Type: text/plain; charset="UTF-8"
Currently std::to_string can be used as a customization point by the
following:
using std::to_string
std::string a = to_string(some_object);
However, using "using" every time is tedious. We can add a wrapper to that:
#include<iostream>
template< typename T>
std::string as_string(T &&o) {
using std::to_string;
returnto_string(std::forward<T>(o));
}
classA {};
std::string to_string(constA &a) {
return"hello";
}
intmain() {
std::cout << as_string(1) << as_string(A{});
return0;
}
Doing that in each project is just a boilerplate. Is there any proposal to
standardize something like that? It does not require any language feature,
but would be nice to have as a part of a standard library. It can be used
if we want to add some sort of possibility to add to_string conversion to
things like enums or any other built-in construct.
--
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/2e3b84ef-15c8-42d4-a5de-5ce9ee3c078c%40isocpp.org.
------=_Part_2658_484024186.1539174114392
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">Currently std::to_string can be used as a customization po=
int by the following:<div><br></div><div><div class=3D"prettyprint" style=
=3D"background-color: rgb(250, 250, 250); border: 1px solid rgb(187, 187, 1=
87); word-wrap: break-word;"><code class=3D"prettyprint"><div class=3D"subp=
rettyprint" style=3D"caret-color: rgb(102, 102, 0);"><span style=3D"color: =
#008;" class=3D"styled-by-prettify">using</span><span style=3D"color: #000;=
" class=3D"styled-by-prettify"> std</span><span style=3D"color: #660;" clas=
s=3D"styled-by-prettify">::</span><span style=3D"color: #000;" class=3D"sty=
led-by-prettify">to_string<br>std</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">::</span><span style=3D"color: #008;" class=3D"styl=
ed-by-prettify">string</span><span style=3D"color: #000;" class=3D"styled-b=
y-prettify"> a </span><span style=3D"color: #660;" class=3D"styled-by-prett=
ify">=3D</span><font color=3D"#000000"><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> to_string</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">(</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify">some_object</span><span style=3D"color: #660;" class=3D"styl=
ed-by-prettify">);</span><span style=3D"color: #000;" class=3D"styled-by-pr=
ettify"><br></span></font></div></code></div><br>However, using "using=
" every time is tedious. We can add a wrapper to that:</div><div><br><=
/div><div><div class=3D"prettyprint" style=3D"background-color: rgb(250, 25=
0, 250); border: 1px solid rgb(187, 187, 187); word-wrap: break-word;"><cod=
e class=3D"prettyprint"><div class=3D"subprettyprint"><div liberation=3D"" =
mono",=3D"" courier,=3D"" monospace;font-weight:=3D"" normal;font-size:=3D"=
" 14px;line-height:=3D"" 21px;white-space:=3D"" pre;"=3D"" style=3D"font-fa=
mily: -webkit-standard; background-color: rgb(255, 255, 254);"><div><span s=
tyle=3D"color: rgb(0, 0, 255);"><span style=3D"color: #800;" class=3D"style=
d-by-prettify">#include</span></span><span style=3D"color: #080;" class=3D"=
styled-by-prettify"><iostream></span></div><span style=3D"color: #000=
;" class=3D"styled-by-prettify"><br></span><div><span style=3D"color: rgb(0=
, 0, 255);"><span style=3D"color: #008;" class=3D"styled-by-prettify">templ=
ate</span></span><span style=3D"color: #660;" class=3D"styled-by-prettify">=
<</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </spa=
n><span style=3D"color: rgb(0, 0, 255);"><span style=3D"color: #008;" class=
=3D"styled-by-prettify">typename</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> </span></span><span style=3D"color: #000;" class=
=3D"styled-by-prettify">T</span><span style=3D"color: #660;" class=3D"style=
d-by-prettify">></span></div><div><span style=3D"color: #000;" class=3D"=
styled-by-prettify">std</span><span style=3D"color: #660;" class=3D"styled-=
by-prettify">::</span><span style=3D"color: #008;" class=3D"styled-by-prett=
ify">string</span><span style=3D"color: #000;" class=3D"styled-by-prettify"=
> as_string</span><span style=3D"color: #660;" class=3D"styled-by-prettify"=
>(</span><span style=3D"color: #000;" class=3D"styled-by-prettify">T </span=
><span style=3D"color: #660;" class=3D"styled-by-prettify">&&</span=
><span style=3D"color: #000;" class=3D"styled-by-prettify">o</span><span st=
yle=3D"color: #660;" class=3D"styled-by-prettify">)</span><span style=3D"co=
lor: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #660=
;" class=3D"styled-by-prettify">{</span></div><div><span style=3D"color: rg=
b(0, 0, 255);"><span style=3D"color: #000;" class=3D"styled-by-prettify"> =
=C2=A0 =C2=A0</span><span style=3D"color: #008;" class=3D"styled-by-prettif=
y">using</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> <=
/span></span><span style=3D"color: #000;" class=3D"styled-by-prettify">std<=
/span><span style=3D"color: #660;" class=3D"styled-by-prettify">::</span><s=
pan style=3D"color: #000;" class=3D"styled-by-prettify">to_string</span><sp=
an style=3D"color: #660;" class=3D"styled-by-prettify">;</span></div><div><=
span style=3D"color: rgb(0, 0, 255);"><span style=3D"color: #000;" class=3D=
"styled-by-prettify"> =C2=A0 return</span></span><span style=3D"color: #000=
;" class=3D"styled-by-prettify">to_string</span><span style=3D"color: #660;=
" class=3D"styled-by-prettify">(</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify">std</span><span style=3D"color: #660;" class=3D"sty=
led-by-prettify">::</span><span style=3D"color: #000;" class=3D"styled-by-p=
rettify">forward</span><span style=3D"color: #660;" class=3D"styled-by-pret=
tify"><</span><span style=3D"color: #000;" class=3D"styled-by-prettify">=
T</span><span style=3D"color: #660;" class=3D"styled-by-prettify">>(</sp=
an><span style=3D"color: #000;" class=3D"styled-by-prettify">o</span><span =
style=3D"color: #660;" class=3D"styled-by-prettify">));</span></div><div><s=
pan style=3D"color: #660;" class=3D"styled-by-prettify">}</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> </span></div><span style=3D=
"color: #000;" class=3D"styled-by-prettify"><br></span><div><span style=3D"=
color: rgb(0, 0, 255);"><span style=3D"color: #000;" class=3D"styled-by-pre=
ttify">class</span></span><span style=3D"color: #000;" class=3D"styled-by-p=
rettify">A </span><span style=3D"color: #660;" class=3D"styled-by-prettify"=
>{};</span></div><span style=3D"color: #000;" class=3D"styled-by-prettify">=
<br></span><div><span style=3D"color: #000;" class=3D"styled-by-prettify">s=
td</span><span style=3D"color: #660;" class=3D"styled-by-prettify">::</span=
><span style=3D"color: #008;" class=3D"styled-by-prettify">string</span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify"> to_string</span><sp=
an style=3D"color: #660;" class=3D"styled-by-prettify">(</span><span style=
=3D"color: rgb(0, 0, 255);"><span style=3D"color: #000;" class=3D"styled-by=
-prettify">const</span></span><span style=3D"color: #000;" class=3D"styled-=
by-prettify">A </span><span style=3D"color: #660;" class=3D"styled-by-prett=
ify">&</span><span style=3D"color: #000;" class=3D"styled-by-prettify">=
a</span><span style=3D"color: #660;" class=3D"styled-by-prettify">)</span><=
span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span styl=
e=3D"color: #660;" class=3D"styled-by-prettify">{</span></div><div><span st=
yle=3D"color: rgb(0, 0, 255);"><span style=3D"color: #000;" class=3D"styled=
-by-prettify"> =C2=A0 =C2=A0</span><span style=3D"color: #008;" class=3D"st=
yled-by-prettify">return</span></span><span style=3D"color: rgb(163, 21, 21=
);"><span style=3D"color: #080;" class=3D"styled-by-prettify">"hello&q=
uot;</span></span><span style=3D"color: #660;" class=3D"styled-by-prettify"=
>;</span></div><div><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">}</span></div><span style=3D"color: #000;" class=3D"styled-by-prettify">=
<br></span><div><span style=3D"color: rgb(0, 0, 255);"><span style=3D"color=
: #000;" class=3D"styled-by-prettify">int</span></span><span style=3D"color=
: #000;" class=3D"styled-by-prettify">main</span><span style=3D"color: #660=
;" class=3D"styled-by-prettify">()</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> </span><span style=3D"color: #660;" class=3D"style=
d-by-prettify">{</span></div><div><span style=3D"color: #000;" class=3D"sty=
led-by-prettify"> =C2=A0 =C2=A0std</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">::</span><span style=3D"color: #000;" class=3D"styl=
ed-by-prettify">cout </span><span style=3D"color: #660;" class=3D"styled-by=
-prettify"><<</span><span style=3D"color: #000;" class=3D"styled-by-p=
rettify"> as_string</span><span style=3D"color: #660;" class=3D"styled-by-p=
rettify">(</span><span style=3D"color: rgb(9, 136, 90);"><span style=3D"col=
or: #066;" class=3D"styled-by-prettify">1</span></span><span style=3D"color=
: #660;" class=3D"styled-by-prettify">)</span><span style=3D"color: #000;" =
class=3D"styled-by-prettify"> </span><span style=3D"color: #660;" class=3D"=
styled-by-prettify"><<</span><span style=3D"color: #000;" class=3D"st=
yled-by-prettify"> as_string</span><span style=3D"color: #660;" class=3D"st=
yled-by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-p=
rettify">A</span><span style=3D"color: #660;" class=3D"styled-by-prettify">=
{});</span></div><div><span style=3D"color: rgb(0, 0, 255);"><span style=3D=
"color: #000;" class=3D"styled-by-prettify"> =C2=A0 =C2=A0return</span></sp=
an><span style=3D"color: rgb(9, 136, 90);"><span style=3D"color: #000;" cla=
ss=3D"styled-by-prettify">0</span></span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">;</span></div><div><span style=3D"color: #660;" cla=
ss=3D"styled-by-prettify">}</span></div></div></div></code></div><br>Doing =
that in each project is just a boilerplate. Is there any proposal to standa=
rdize something like that? It does not require any language feature, but wo=
uld be nice to have as a part of a standard library. It can be used if we w=
ant to add some sort of possibility to add to_string conversion to things l=
ike enums or any other built-in construct.</div><div><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/2e3b84ef-15c8-42d4-a5de-5ce9ee3c078c%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/2e3b84ef-15c8-42d4-a5de-5ce9ee3c078c=
%40isocpp.org</a>.<br />
------=_Part_2658_484024186.1539174114392--
------=_Part_2657_1850088573.1539174114391--
.
Author: Jake Arkinstall <jake.arkinstall@gmail.com>
Date: Wed, 10 Oct 2018 13:36:15 +0100
Raw View
--0000000000004e40d50577df1a6d
Content-Type: text/plain; charset="UTF-8"
You don't have to use using std::to_string every time. You can put it in a
global scope, and as long as it is seen before the first usage it isn't an
issue.
I have no wish to have std functions in the global namespace, so I use the
full std::to_string on the rare occasions that I have a use for it. There
will also be conflicts with projects that already have some as_string
function, so standardising it in the global namespace would break their
code.
On Wed, 10 Oct 2018, 13:21 , <n.alekseev2104@gmail.com> wrote:
> Currently std::to_string can be used as a customization point by the
> following:
>
> using std::to_string
> std::string a = to_string(some_object);
>
> However, using "using" every time is tedious. We can add a wrapper to that:
>
> #include<iostream>
>
> template< typename T>
> std::string as_string(T &&o) {
> using std::to_string;
> returnto_string(std::forward<T>(o));
> }
>
> classA {};
>
> std::string to_string(constA &a) {
> return"hello";
> }
>
> intmain() {
> std::cout << as_string(1) << as_string(A{});
> return0;
> }
>
> Doing that in each project is just a boilerplate. Is there any proposal to
> standardize something like that? It does not require any language feature,
> but would be nice to have as a part of a standard library. It can be used
> if we want to add some sort of possibility to add to_string conversion to
> things like enums or any other built-in construct.
>
> --
> 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/2e3b84ef-15c8-42d4-a5de-5ce9ee3c078c%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/2e3b84ef-15c8-42d4-a5de-5ce9ee3c078c%40isocpp.org?utm_medium=email&utm_source=footer>
> .
>
--
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/CAC%2B0CCOrKHuuAZY%2B%2BzAi6WF4a9VsmFZCB9LwB0e5qnwfAJRz%3DQ%40mail.gmail.com.
--0000000000004e40d50577df1a6d
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"auto">You don't have to use using std::to_string every time=
.. You can put it in a global scope, and as long as it is seen before the fi=
rst usage it isn't an issue.<div dir=3D"auto"><br></div><div dir=3D"aut=
o">I have no wish to have std functions in the global namespace, so I use t=
he full std::to_string on the rare occasions that I have a use for it. Ther=
e will also be conflicts with projects that already have some as_string fun=
ction, so standardising it in the global namespace would break their code.<=
/div><br><br><div class=3D"gmail_quote" dir=3D"auto"><div dir=3D"ltr">On We=
d, 10 Oct 2018, 13:21 , <<a href=3D"mailto:n.alekseev2104@gmail.com">n.a=
lekseev2104@gmail.com</a>> wrote:<br></div><blockquote class=3D"gmail_qu=
ote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex=
"><div dir=3D"ltr">Currently std::to_string can be used as a customization =
point by the following:<div><br></div><div><div class=3D"m_2258754241394447=
629prettyprint" style=3D"background-color:rgb(250,250,250);border:1px solid=
rgb(187,187,187);word-wrap:break-word"><code class=3D"m_225875424139444762=
9prettyprint"><div class=3D"m_2258754241394447629subprettyprint"><span styl=
e=3D"color:#008" class=3D"m_2258754241394447629styled-by-prettify">using</s=
pan><span style=3D"color:#000" class=3D"m_2258754241394447629styled-by-pret=
tify"> std</span><span style=3D"color:#660" class=3D"m_2258754241394447629s=
tyled-by-prettify">::</span><span style=3D"color:#000" class=3D"m_225875424=
1394447629styled-by-prettify">to_string<br>std</span><span style=3D"color:#=
660" class=3D"m_2258754241394447629styled-by-prettify">::</span><span style=
=3D"color:#008" class=3D"m_2258754241394447629styled-by-prettify">string</s=
pan><span style=3D"color:#000" class=3D"m_2258754241394447629styled-by-pret=
tify"> a </span><span style=3D"color:#660" class=3D"m_2258754241394447629st=
yled-by-prettify">=3D</span><font color=3D"#000000"><span style=3D"color:#0=
00" class=3D"m_2258754241394447629styled-by-prettify"> to_string</span><spa=
n style=3D"color:#660" class=3D"m_2258754241394447629styled-by-prettify">(<=
/span><span style=3D"color:#000" class=3D"m_2258754241394447629styled-by-pr=
ettify">some_object</span><span style=3D"color:#660" class=3D"m_22587542413=
94447629styled-by-prettify">);</span><span style=3D"color:#000" class=3D"m_=
2258754241394447629styled-by-prettify"><br></span></font></div></code></div=
><br>However, using "using" every time is tedious. We can add a w=
rapper to that:</div><div><br></div><div><div class=3D"m_225875424139444762=
9prettyprint" style=3D"background-color:rgb(250,250,250);border:1px solid r=
gb(187,187,187);word-wrap:break-word"><code class=3D"m_2258754241394447629p=
rettyprint"><div class=3D"m_2258754241394447629subprettyprint"><div style=
=3D"font-family:-webkit-standard;background-color:rgb(255,255,254)"><div><s=
pan style=3D"color:rgb(0,0,255)"><span style=3D"color:#800" class=3D"m_2258=
754241394447629styled-by-prettify">#include</span></span><span style=3D"col=
or:#080" class=3D"m_2258754241394447629styled-by-prettify"><iostream>=
</span></div><span style=3D"color:#000" class=3D"m_2258754241394447629style=
d-by-prettify"><br></span><div><span style=3D"color:rgb(0,0,255)"><span sty=
le=3D"color:#008" class=3D"m_2258754241394447629styled-by-prettify">templat=
e</span></span><span style=3D"color:#660" class=3D"m_2258754241394447629sty=
led-by-prettify"><</span><span style=3D"color:#000" class=3D"m_225875424=
1394447629styled-by-prettify"> </span><span style=3D"color:rgb(0,0,255)"><s=
pan style=3D"color:#008" class=3D"m_2258754241394447629styled-by-prettify">=
typename</span><span style=3D"color:#000" class=3D"m_2258754241394447629sty=
led-by-prettify"> </span></span><span style=3D"color:#000" class=3D"m_22587=
54241394447629styled-by-prettify">T</span><span style=3D"color:#660" class=
=3D"m_2258754241394447629styled-by-prettify">></span></div><div><span st=
yle=3D"color:#000" class=3D"m_2258754241394447629styled-by-prettify">std</s=
pan><span style=3D"color:#660" class=3D"m_2258754241394447629styled-by-pret=
tify">::</span><span style=3D"color:#008" class=3D"m_2258754241394447629sty=
led-by-prettify">string</span><span style=3D"color:#000" class=3D"m_2258754=
241394447629styled-by-prettify"> as_string</span><span style=3D"color:#660"=
class=3D"m_2258754241394447629styled-by-prettify">(</span><span style=3D"c=
olor:#000" class=3D"m_2258754241394447629styled-by-prettify">T </span><span=
style=3D"color:#660" class=3D"m_2258754241394447629styled-by-prettify">&am=
p;&</span><span style=3D"color:#000" class=3D"m_2258754241394447629styl=
ed-by-prettify">o</span><span style=3D"color:#660" class=3D"m_2258754241394=
447629styled-by-prettify">)</span><span style=3D"color:#000" class=3D"m_225=
8754241394447629styled-by-prettify"> </span><span style=3D"color:#660" clas=
s=3D"m_2258754241394447629styled-by-prettify">{</span></div><div><span styl=
e=3D"color:rgb(0,0,255)"><span style=3D"color:#000" class=3D"m_225875424139=
4447629styled-by-prettify"> =C2=A0 =C2=A0</span><span style=3D"color:#008" =
class=3D"m_2258754241394447629styled-by-prettify">using</span><span style=
=3D"color:#000" class=3D"m_2258754241394447629styled-by-prettify"> </span><=
/span><span style=3D"color:#000" class=3D"m_2258754241394447629styled-by-pr=
ettify">std</span><span style=3D"color:#660" class=3D"m_2258754241394447629=
styled-by-prettify">::</span><span style=3D"color:#000" class=3D"m_22587542=
41394447629styled-by-prettify">to_string</span><span style=3D"color:#660" c=
lass=3D"m_2258754241394447629styled-by-prettify">;</span></div><div><span s=
tyle=3D"color:rgb(0,0,255)"><span style=3D"color:#000" class=3D"m_225875424=
1394447629styled-by-prettify"> =C2=A0 return</span></span><span style=3D"co=
lor:#000" class=3D"m_2258754241394447629styled-by-prettify">to_string</span=
><span style=3D"color:#660" class=3D"m_2258754241394447629styled-by-prettif=
y">(</span><span style=3D"color:#000" class=3D"m_2258754241394447629styled-=
by-prettify">std</span><span style=3D"color:#660" class=3D"m_22587542413944=
47629styled-by-prettify">::</span><span style=3D"color:#000" class=3D"m_225=
8754241394447629styled-by-prettify">forward</span><span style=3D"color:#660=
" class=3D"m_2258754241394447629styled-by-prettify"><</span><span style=
=3D"color:#000" class=3D"m_2258754241394447629styled-by-prettify">T</span><=
span style=3D"color:#660" class=3D"m_2258754241394447629styled-by-prettify"=
>>(</span><span style=3D"color:#000" class=3D"m_2258754241394447629style=
d-by-prettify">o</span><span style=3D"color:#660" class=3D"m_22587542413944=
47629styled-by-prettify">));</span></div><div><span style=3D"color:#660" cl=
ass=3D"m_2258754241394447629styled-by-prettify">}</span><span style=3D"colo=
r:#000" class=3D"m_2258754241394447629styled-by-prettify"> </span></div><sp=
an style=3D"color:#000" class=3D"m_2258754241394447629styled-by-prettify"><=
br></span><div><span style=3D"color:rgb(0,0,255)"><span style=3D"color:#000=
" class=3D"m_2258754241394447629styled-by-prettify">class</span></span><spa=
n style=3D"color:#000" class=3D"m_2258754241394447629styled-by-prettify">A =
</span><span style=3D"color:#660" class=3D"m_2258754241394447629styled-by-p=
rettify">{};</span></div><span style=3D"color:#000" class=3D"m_225875424139=
4447629styled-by-prettify"><br></span><div><span style=3D"color:#000" class=
=3D"m_2258754241394447629styled-by-prettify">std</span><span style=3D"color=
:#660" class=3D"m_2258754241394447629styled-by-prettify">::</span><span sty=
le=3D"color:#008" class=3D"m_2258754241394447629styled-by-prettify">string<=
/span><span style=3D"color:#000" class=3D"m_2258754241394447629styled-by-pr=
ettify"> to_string</span><span style=3D"color:#660" class=3D"m_225875424139=
4447629styled-by-prettify">(</span><span style=3D"color:rgb(0,0,255)"><span=
style=3D"color:#000" class=3D"m_2258754241394447629styled-by-prettify">con=
st</span></span><span style=3D"color:#000" class=3D"m_2258754241394447629st=
yled-by-prettify">A </span><span style=3D"color:#660" class=3D"m_2258754241=
394447629styled-by-prettify">&</span><span style=3D"color:#000" class=
=3D"m_2258754241394447629styled-by-prettify">a</span><span style=3D"color:#=
660" class=3D"m_2258754241394447629styled-by-prettify">)</span><span style=
=3D"color:#000" class=3D"m_2258754241394447629styled-by-prettify"> </span><=
span style=3D"color:#660" class=3D"m_2258754241394447629styled-by-prettify"=
>{</span></div><div><span style=3D"color:rgb(0,0,255)"><span style=3D"color=
:#000" class=3D"m_2258754241394447629styled-by-prettify"> =C2=A0 =C2=A0</sp=
an><span style=3D"color:#008" class=3D"m_2258754241394447629styled-by-prett=
ify">return</span></span><span style=3D"color:rgb(163,21,21)"><span style=
=3D"color:#080" class=3D"m_2258754241394447629styled-by-prettify">"hel=
lo"</span></span><span style=3D"color:#660" class=3D"m_225875424139444=
7629styled-by-prettify">;</span></div><div><span style=3D"color:#660" class=
=3D"m_2258754241394447629styled-by-prettify">}</span></div><span style=3D"c=
olor:#000" class=3D"m_2258754241394447629styled-by-prettify"><br></span><di=
v><span style=3D"color:rgb(0,0,255)"><span style=3D"color:#000" class=3D"m_=
2258754241394447629styled-by-prettify">int</span></span><span style=3D"colo=
r:#000" class=3D"m_2258754241394447629styled-by-prettify">main</span><span =
style=3D"color:#660" class=3D"m_2258754241394447629styled-by-prettify">()</=
span><span style=3D"color:#000" class=3D"m_2258754241394447629styled-by-pre=
ttify"> </span><span style=3D"color:#660" class=3D"m_2258754241394447629sty=
led-by-prettify">{</span></div><div><span style=3D"color:#000" class=3D"m_2=
258754241394447629styled-by-prettify"> =C2=A0 =C2=A0std</span><span style=
=3D"color:#660" class=3D"m_2258754241394447629styled-by-prettify">::</span>=
<span style=3D"color:#000" class=3D"m_2258754241394447629styled-by-prettify=
">cout </span><span style=3D"color:#660" class=3D"m_2258754241394447629styl=
ed-by-prettify"><<</span><span style=3D"color:#000" class=3D"m_225875=
4241394447629styled-by-prettify"> as_string</span><span style=3D"color:#660=
" class=3D"m_2258754241394447629styled-by-prettify">(</span><span style=3D"=
color:rgb(9,136,90)"><span style=3D"color:#066" class=3D"m_2258754241394447=
629styled-by-prettify">1</span></span><span style=3D"color:#660" class=3D"m=
_2258754241394447629styled-by-prettify">)</span><span style=3D"color:#000" =
class=3D"m_2258754241394447629styled-by-prettify"> </span><span style=3D"co=
lor:#660" class=3D"m_2258754241394447629styled-by-prettify"><<</span>=
<span style=3D"color:#000" class=3D"m_2258754241394447629styled-by-prettify=
"> as_string</span><span style=3D"color:#660" class=3D"m_225875424139444762=
9styled-by-prettify">(</span><span style=3D"color:#000" class=3D"m_22587542=
41394447629styled-by-prettify">A</span><span style=3D"color:#660" class=3D"=
m_2258754241394447629styled-by-prettify">{});</span></div><div><span style=
=3D"color:rgb(0,0,255)"><span style=3D"color:#000" class=3D"m_2258754241394=
447629styled-by-prettify"> =C2=A0 =C2=A0return</span></span><span style=3D"=
color:rgb(9,136,90)"><span style=3D"color:#000" class=3D"m_2258754241394447=
629styled-by-prettify">0</span></span><span style=3D"color:#660" class=3D"m=
_2258754241394447629styled-by-prettify">;</span></div><div><span style=3D"c=
olor:#660" class=3D"m_2258754241394447629styled-by-prettify">}</span></div>=
</div></div></code></div><br>Doing that in each project is just a boilerpla=
te. Is there any proposal to standardize something like that? It does not r=
equire any language feature, but would be nice to have as a part of a stand=
ard library. It can be used if we want to add some sort of possibility to a=
dd to_string conversion to things like enums or any other built-in construc=
t.</div><div><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" target=3D"_=
blank" rel=3D"noreferrer">std-proposals+unsubscribe@isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org" target=3D"_blank" rel=3D"noreferrer">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/2e3b84ef-15c8-42d4-a5de-5ce9ee3c078c%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter" target=3D"_blank" =
rel=3D"noreferrer">https://groups.google.com/a/isocpp.org/d/msgid/std-propo=
sals/2e3b84ef-15c8-42d4-a5de-5ce9ee3c078c%40isocpp.org</a>.<br>
</blockquote></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/CAC%2B0CCOrKHuuAZY%2B%2BzAi6WF4a9VsmF=
ZCB9LwB0e5qnwfAJRz%3DQ%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfoo=
ter">https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAC%2B0CC=
OrKHuuAZY%2B%2BzAi6WF4a9VsmFZCB9LwB0e5qnwfAJRz%3DQ%40mail.gmail.com</a>.<br=
/>
--0000000000004e40d50577df1a6d--
.
Author: Nikita Alekseev <n.alekseev2104@gmail.com>
Date: Wed, 10 Oct 2018 05:41:05 -0700 (PDT)
Raw View
------=_Part_2697_1723949980.1539175265695
Content-Type: multipart/alternative;
boundary="----=_Part_2698_814661576.1539175265695"
------=_Part_2698_814661576.1539175265695
Content-Type: text/plain; charset="UTF-8"
The issue of using std::to_string as a full name creates an issue when I
want to do it with a custom type. I would have to use a separate function
for that. This might be an issue in generic code, where I am forced to have
using std::to_string each time I want to do that.
As for the issue with conflicts, if it is standardized, as_string will be a
part of std namespace, the only way it can conflict with some existing
function is if it was an unqualified call. This is an issue for any
function which can be added to the standard library.
--
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/ae38a92d-b554-4219-9cd6-5a5248512c1e%40isocpp.org.
------=_Part_2698_814661576.1539175265695
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">The issue of using std::to_string as a full name creates a=
n issue when I want to do it with a custom type. I would have to use a=C2=
=A0separate function for that. This might be an issue in generic code, wher=
e I am forced to have using std::to_string each time I want to do that.<div=
><br></div><div>As for the issue with conflicts, if it is standardized, as_=
string will be a part of std namespace, the only way it can conflict with s=
ome existing function is if it was an unqualified call. This is an issue fo=
r any function which can be added to the standard library.</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/ae38a92d-b554-4219-9cd6-5a5248512c1e%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/ae38a92d-b554-4219-9cd6-5a5248512c1e=
%40isocpp.org</a>.<br />
------=_Part_2698_814661576.1539175265695--
------=_Part_2697_1723949980.1539175265695--
.
Author: Nicolas Lesser <blitzrakete@gmail.com>
Date: Wed, 10 Oct 2018 14:52:46 +0200
Raw View
--0000000000006f5b860577df5566
Content-Type: text/plain; charset="UTF-8"
std::to_string is not a customization point, as such, it doesn't make sense
to provide such a function. You'll have to propose making a customization
point for it first :)
On Wed, Oct 10, 2018 at 2:41 PM Nikita Alekseev <n.alekseev2104@gmail.com>
wrote:
> The issue of using std::to_string as a full name creates an issue when I
> want to do it with a custom type. I would have to use a separate function
> for that. This might be an issue in generic code, where I am forced to have
> using std::to_string each time I want to do that.
>
> As for the issue with conflicts, if it is standardized, as_string will be
> a part of std namespace, the only way it can conflict with some existing
> function is if it was an unqualified call. This is an issue for any
> function which can be added to the standard library.
>
> --
> 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/ae38a92d-b554-4219-9cd6-5a5248512c1e%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/ae38a92d-b554-4219-9cd6-5a5248512c1e%40isocpp.org?utm_medium=email&utm_source=footer>
> .
>
--
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/CALmDwq02QSkcrAC0MMFYm%2B0wTxrj%3D9c6THJ5H8DMte%2BPAD8oVA%40mail.gmail.com.
--0000000000006f5b860577df5566
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">std::to_string is not a customization point, as such, it d=
oesn't make sense to provide such a function. You'll have to propos=
e making a customization point for it first :)</div><br><div class=3D"gmail=
_quote"><div dir=3D"ltr">On Wed, Oct 10, 2018 at 2:41 PM Nikita Alekseev &l=
t;<a href=3D"mailto:n.alekseev2104@gmail.com">n.alekseev2104@gmail.com</a>&=
gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0=
.8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">The iss=
ue of using std::to_string as a full name creates an issue when I want to d=
o it with a custom type. I would have to use a=C2=A0separate function for t=
hat. This might be an issue in generic code, where I am forced to have usin=
g std::to_string each time I want to do that.<div><br></div><div>As for the=
issue with conflicts, if it is standardized, as_string will be a part of s=
td namespace, the only way it can conflict with some existing function is i=
f it was an unqualified call. This is an issue for any function which can b=
e added to the standard library.</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" target=3D"_=
blank">std-proposals+unsubscribe@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/ae38a92d-b554-4219-9cd6-5a5248512c1e%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter" target=3D"_blank">=
https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/ae38a92d-b554-=
4219-9cd6-5a5248512c1e%40isocpp.org</a>.<br>
</blockquote></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CALmDwq02QSkcrAC0MMFYm%2B0wTxrj%3D9c6=
THJ5H8DMte%2BPAD8oVA%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfoote=
r">https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CALmDwq02QS=
kcrAC0MMFYm%2B0wTxrj%3D9c6THJ5H8DMte%2BPAD8oVA%40mail.gmail.com</a>.<br />
--0000000000006f5b860577df5566--
.
Author: Nikita Alekseev <n.alekseev2104@gmail.com>
Date: Wed, 10 Oct 2018 05:59:19 -0700 (PDT)
Raw View
------=_Part_2635_356724786.1539176359264
Content-Type: multipart/alternative;
boundary="----=_Part_2636_531577970.1539176359264"
------=_Part_2636_531577970.1539176359264
Content-Type: text/plain; charset="UTF-8"
Is it a feasible proposal to make to_string a customization point? As I
understand It is not a fundamental operation, such as swap or begin/end,
but it is widely applicable in real-world code and I do not see any
negative impact it might have. Other languages seem to provide such
customization point like that (toString() from Java as an example),
however, I do not know the technical aspects of that, what is the process
of making something a customization point? What work needs to be done to do
that?
--
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/7df1e323-eab7-43f6-86a2-eaf44caf65bb%40isocpp.org.
------=_Part_2636_531577970.1539176359264
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">Is it a feasible proposal to make to_string a customizatio=
n point? As I understand It is not a fundamental operation, such as swap or=
begin/end, but it is widely applicable in real-world code and I do not see=
any negative impact it might have. Other languages seem to provide such cu=
stomization point like that (toString() from Java as an example), however, =
I do not know the technical aspects of that, what is the process of making =
something a customization point? What work needs to be done to do that?</di=
v>
<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/7df1e323-eab7-43f6-86a2-eaf44caf65bb%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/7df1e323-eab7-43f6-86a2-eaf44caf65bb=
%40isocpp.org</a>.<br />
------=_Part_2636_531577970.1539176359264--
------=_Part_2635_356724786.1539176359264--
.
Author: Jake Arkinstall <jake.arkinstall@gmail.com>
Date: Wed, 10 Oct 2018 14:12:37 +0100
Raw View
--0000000000005f584c0577df9cc6
Content-Type: text/plain; charset="UTF-8"
I see what you mean.
Having it inside of the standard namespace would prevent any method it uses
from being customisable by tradition. I guess it is possible to have it
allowed, but it doesn't make a whole lot of sense to me. An easier
alternative is just add a templated overload to to_string that checks for a
"operator std::to_string()" method, and just calls that. No changes to the
"don't mess with the std namespace in user code" philosophy required.
One important thing to note: whereas numeric values have a popular
language-independent, debug-level-independent, context-independent string
representation, the same can rarely be said for general types. Even when we
think we have something in the format we want it in, requirements change.
Because of that, using suitable libraries to generate human readable output
is always going to be better than a single function that converts objects
in a single manner.
On 10 Oct 2018 13:41, "Nikita Alekseev" <n.alekseev2104@gmail.com> wrote:
The issue of using std::to_string as a full name creates an issue when I
want to do it with a custom type. I would have to use a separate function
for that. This might be an issue in generic code, where I am forced to have
using std::to_string each time I want to do that.
As for the issue with conflicts, if it is standardized, as_string will be a
part of std namespace, the only way it can conflict with some existing
function is if it was an unqualified call. This is an issue for any
function which can be added to the standard library.
--
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/ae38a92d-b554-4219-9cd6-5a5248512c1e%40isocpp.org
<https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/ae38a92d-b554-4219-9cd6-5a5248512c1e%40isocpp.org?utm_medium=email&utm_source=footer>
..
--
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/CAC%2B0CCMP-LQpchMnWnHDsDCdXFRyFTk0BwdOL5hySWreSaPm8w%40mail.gmail.com.
--0000000000005f584c0577df9cc6
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"auto">I see what you mean.<div dir=3D"auto"><br></div><div dir=
=3D"auto">Having it inside of the standard namespace would prevent any meth=
od it uses from being customisable by tradition. I guess it is possible to =
have it allowed, but it doesn't make a whole lot of sense to me. An eas=
ier alternative is just add a templated overload to to_string that checks f=
or a "operator std::to_string()" method, and just calls that. No =
changes to the "don't mess with the std namespace in user code&quo=
t; philosophy required.</div><div dir=3D"auto"><br></div><div dir=3D"auto">=
One important thing to note: whereas numeric values have a popular language=
-independent, debug-level-independent, context-independent string represent=
ation, the same can rarely be said for general types. Even when we think we=
have something in the format we want it in, requirements change. Because o=
f that, using suitable libraries to generate human readable output is alway=
s going to be better than a single function that converts objects in a sing=
le manner.</div></div><div class=3D"gmail_extra"><br><div class=3D"gmail_qu=
ote">On 10 Oct 2018 13:41, "Nikita Alekseev" <<a href=3D"mailt=
o:n.alekseev2104@gmail.com" target=3D"_blank" rel=3D"noreferrer">n.alekseev=
2104@gmail.com</a>> wrote:<br type=3D"attribution"><blockquote class=3D"=
m_5355753187386730294quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc=
solid;padding-left:1ex"><div dir=3D"ltr">The issue of using std::to_string=
as a full name creates an issue when I want to do it with a custom type. I=
would have to use a=C2=A0separate function for that. This might be an issu=
e in generic code, where I am forced to have using std::to_string each time=
I want to do that.<div><br></div><div>As for the issue with conflicts, if =
it is standardized, as_string will be a part of std namespace, the only way=
it can conflict with some existing function is if it was an unqualified ca=
ll. This is an issue for any function which can be added to the standard li=
brary.</div></div><div class=3D"m_5355753187386730294quoted-text">
<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" rel=3D"nore=
ferrer noreferrer" target=3D"_blank">std-proposals+unsubscribe@isocpp.org</=
a>.<br>
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org" rel=3D"noreferrer noreferrer" target=3D"_blank">std-proposals@isocpp.=
org</a>.<br></div>
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/ae38a92d-b554-4219-9cd6-5a5248512c1e%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter" rel=3D"noreferrer =
noreferrer" target=3D"_blank">https://groups.google.com/a/isocpp.org/d/msgi=
d/std-proposals/ae38a92d-b554-4219-9cd6-5a5248512c1e%40isocpp.org</a>.<br>
</blockquote></div><br></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CAC%2B0CCMP-LQpchMnWnHDsDCdXFRyFTk0Bw=
dOL5hySWreSaPm8w%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">h=
ttps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAC%2B0CCMP-LQp=
chMnWnHDsDCdXFRyFTk0BwdOL5hySWreSaPm8w%40mail.gmail.com</a>.<br />
--0000000000005f584c0577df9cc6--
.