Topic: Can we have beginner friendly new line and


Author: Hyman Rosen <hyman.rosen@gmail.com>
Date: Thu, 8 Nov 2018 10:47:48 -0500
Raw View
--000000000000c2ea8e057a292886
Content-Type: text/plain; charset="UTF-8"

'\n' has been the way to write newlines in C for half a century.
It's also the way to do it in C++, Java, Perl, Python, and other languages.
We don't need a beginner-friendly way to specify newlines,
because it's as easy to tell the beginners '\n' as to tell them anything
else.

On Thu, Nov 8, 2018 at 8:37 AM <mihailnajdenov@gmail.com> wrote:

> Wouldn't it be miles better to instead of un-teaching people from
> std::endl and advertise '\n'
> <https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#slio50-avoid-endl>
> to have equally attractive alternative?
>
> The point is - '\n' is not in any way beginner friendly as it is not an
> std or build in "command"/object, but some alien symbol (to a new comer)
> like, literally nothing else - it does not even look a single character.
> Even for a non-beginner, some prefer typing std::endl as it is just simple
> letters, not rarely used symbols (double colon, is not rarely used a t all)
>
> Also, if we have a friendly new line alternative we could deprecate endl
> and teach to new-line-and-flush-if-needed.
> Without deprecating it, we might add confusion.
>
>
>
> --
> 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/e17189bf-51be-496d-845a-3707a516a210%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/e17189bf-51be-496d-845a-3707a516a210%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/CAHSYqdYpsmvjRc65vKqPv4f6G6MzSgo1LL_73QDum66mxRB3EQ%40mail.gmail.com.

--000000000000c2ea8e057a292886
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">&#39;\n&#39; has been the way to write newlines in C for h=
alf a century.<br>It&#39;s also the way to do it in C++, Java, Perl, Python=
, and other languages.<br>We don&#39;t need a beginner-friendly way to spec=
ify newlines,<div>because it&#39;s as easy to tell the beginners &#39;\n&#3=
9; as to tell them anything else.</div></div><br><div class=3D"gmail_quote"=
><div dir=3D"ltr">On Thu, Nov 8, 2018 at 8:37 AM &lt;<a href=3D"mailto:miha=
ilnajdenov@gmail.com">mihailnajdenov@gmail.com</a>&gt; wrote:<br></div><blo=
ckquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #c=
cc solid;padding-left:1ex"><div dir=3D"ltr">Wouldn&#39;t it be miles better=
 to instead of <a href=3D"https://github.com/isocpp/CppCoreGuidelines/blob/=
master/CppCoreGuidelines.md#slio50-avoid-endl" target=3D"_blank">un-teachin=
g people from std::endl and advertise &#39;\n&#39;</a> to have equally attr=
active alternative?<div><br></div><div>The point is - &#39;\n&#39; is not i=
n any way beginner friendly as it is not an std or build in &quot;command&q=
uot;/object, but some alien symbol (to a new comer) like, literally nothing=
 else - it does not even look a single character.</div><div>Even for a non-=
beginner, some prefer typing std::endl as it is just simple letters, not ra=
rely used symbols (double colon, is not rarely used a t all)=C2=A0</div><di=
v><br></div><div>Also, if we have a friendly new line alternative we could =
deprecate endl and teach to new-line-and-flush-if-needed.=C2=A0</div><div>W=
ithout deprecating it, we might add confusion.=C2=A0=C2=A0<br><div><br></di=
v><div><br></div><div><br></div></div></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org" 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/e17189bf-51be-496d-845a-3707a516a210%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank">=
https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/e17189bf-51be-=
496d-845a-3707a516a210%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&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CAHSYqdYpsmvjRc65vKqPv4f6G6MzSgo1LL_7=
3QDum66mxRB3EQ%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">htt=
ps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAHSYqdYpsmvjRc65=
vKqPv4f6G6MzSgo1LL_73QDum66mxRB3EQ%40mail.gmail.com</a>.<br />

--000000000000c2ea8e057a292886--

.


Author: Ray Hamel <rayghamel@gmail.com>
Date: Thu, 8 Nov 2018 08:57:21 -0800 (PST)
Raw View
------=_Part_552_583621602.1541696241386
Content-Type: multipart/alternative;
 boundary="----=_Part_553_153898063.1541696241386"

------=_Part_553_153898063.1541696241386
Content-Type: text/plain; charset="UTF-8"

I don't see any reason why '\n' or "string literal\n" is unintuitive or
would need to be replaced. I do think it's a good idea to rename std::endl
to something less misleading, and deprecate the old std::endl.

- Ray

On Thursday, November 8, 2018 at 8:37:54 AM UTC-5, mihailn...@gmail.com
wrote:
>
> Wouldn't it be miles better to instead of un-teaching people from
> std::endl and advertise '\n'
> <https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#slio50-avoid-endl>
> to have equally attractive alternative?
>
> The point is - '\n' is not in any way beginner friendly as it is not an
> std or build in "command"/object, but some alien symbol (to a new comer)
> like, literally nothing else - it does not even look a single character.
> Even for a non-beginner, some prefer typing std::endl as it is just simple
> letters, not rarely used symbols (double colon, is not rarely used a t all)
>
> Also, if we have a friendly new line alternative we could deprecate endl
> and teach to new-line-and-flush-if-needed.
> Without deprecating it, we might add confusion.
>
>
>
>

--
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/8e5e9eab-3bc0-41df-9143-990fd1102d8c%40isocpp.org.

------=_Part_553_153898063.1541696241386
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>I don&#39;t see any reason why <span style=3D"font-fa=
mily: courier new, monospace;">&#39;\n&#39;<font face=3D"arial,sans-serif">=
 or <span style=3D"font-family: courier new, monospace;">&quot;string liter=
al\n&quot;<font face=3D"arial,sans-serif"> is unintuitive or would need to =
be replaced. I do think it&#39;s a good idea to rename <span style=3D"font-=
family: courier new, monospace;">std::endl</span> to something less mislead=
ing, and deprecate the old <span style=3D"font-family: courier new, monospa=
ce;">std::endl</span>.</font></span></font></span></div><div><span style=3D=
"font-family: courier new, monospace;"><font face=3D"arial,sans-serif"><spa=
n style=3D"font-family: courier new, monospace;"><font face=3D"arial,sans-s=
erif"><br></font></span></font></span></div><div><span style=3D"font-family=
: courier new, monospace;"><font face=3D"arial,sans-serif"><span style=3D"f=
ont-family: courier new, monospace;"><font face=3D"arial,sans-serif">- Ray<=
br></font></span></font></span></div><div><br></div>On Thursday, November 8=
, 2018 at 8:37:54 AM UTC-5, mihailn...@gmail.com 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">Wouldn&#39;t it be miles better t=
o instead of <a href=3D"https://github.com/isocpp/CppCoreGuidelines/blob/ma=
ster/CppCoreGuidelines.md#slio50-avoid-endl" target=3D"_blank" rel=3D"nofol=
low" onmousedown=3D"this.href=3D&#39;https://www.google.com/url?q\x3dhttps%=
3A%2F%2Fgithub.com%2Fisocpp%2FCppCoreGuidelines%2Fblob%2Fmaster%2FCppCoreGu=
idelines.md%23slio50-avoid-endl\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHj0=
c7DLOozJmEULOfU2G9-3_DJOw&#39;;return true;" onclick=3D"this.href=3D&#39;ht=
tps://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fisocpp%2FCppCoreGu=
idelines%2Fblob%2Fmaster%2FCppCoreGuidelines.md%23slio50-avoid-endl\x26sa\x=
3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHj0c7DLOozJmEULOfU2G9-3_DJOw&#39;;return t=
rue;">un-teaching people from std::endl and advertise &#39;\n&#39;</a> to h=
ave equally attractive alternative?<div><br></div><div>The point is - &#39;=
\n&#39; is not in any way beginner friendly as it is not an std or build in=
 &quot;command&quot;/object, but some alien symbol (to a new comer) like, l=
iterally nothing else - it does not even look a single character.</div><div=
>Even for a non-beginner, some prefer typing std::endl as it is just simple=
 letters, not rarely used symbols (double colon, is not rarely used a t all=
)=C2=A0</div><div><br></div><div>Also, if we have a friendly new line alter=
native we could deprecate endl and teach to new-line-and-flush-if-needed.=
=C2=A0</div><div>Without deprecating it, we might add confusion.=C2=A0=C2=
=A0<br><div><br></div><div><br></div><div><br></div></div></div></blockquot=
e></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/8e5e9eab-3bc0-41df-9143-990fd1102d8c%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/8e5e9eab-3bc0-41df-9143-990fd1102d8c=
%40isocpp.org</a>.<br />

------=_Part_553_153898063.1541696241386--

------=_Part_552_583621602.1541696241386--

.


Author: gmisocpp@gmail.com
Date: Thu, 8 Nov 2018 13:53:01 -0800 (PST)
Raw View
------=_Part_698_1714023355.1541713981943
Content-Type: multipart/alternative;
 boundary="----=_Part_699_757793461.1541713981944"

------=_Part_699_757793461.1541713981944
Content-Type: text/plain; charset="UTF-8"

Grumpy me says lets make endl not flush in C++20, since it surprises people.
And if people want flush they'll have to add a flush call explicitly.
Hopeful me says isn't someone going to produce a new faster API that will
replace that whole machinery anyway with something faster and better
designed so won't endl et al, all come to a sticky um, end, anyway sometime
"soon"?

On Friday, November 9, 2018 at 2:37:54 AM UTC+13, mihailn...@gmail.com
wrote:

> Wouldn't it be miles better to instead of un-teaching people from
> std::endl and advertise '\n'
> <https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#slio50-avoid-endl>
> to have equally attractive alternative?
>
> The point is - '\n' is not in any way beginner friendly as it is not an
> std or build in "command"/object, but some alien symbol (to a new comer)
> like, literally nothing else - it does not even look a single character.
> Even for a non-beginner, some prefer typing std::endl as it is just simple
> letters, not rarely used symbols (double colon, is not rarely used a t all)
>
> Also, if we have a friendly new line alternative we could deprecate endl
> and teach to new-line-and-flush-if-needed.
> Without deprecating it, we might add confusion.
>
>
>
>

--
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/f3b96b40-aca4-4df3-a4e4-9b18346956ab%40isocpp.org.

------=_Part_699_757793461.1541713981944
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Grumpy me says=C2=A0lets make endl not flush in C++20=
, since it surprises people.</div><div>And if people want flush they&#39;ll=
 have to add a flush call explicitly.</div><div>Hopeful me says isn&#39;t s=
omeone going to produce a new faster API that will replace that whole machi=
nery anyway with something faster and better designed so won&#39;t endl et =
al, all come to a sticky um, end, anyway sometime &quot;soon&quot;?<br><br>=
On Friday, November 9, 2018 at 2:37:54 AM UTC+13, mihailn...@gmail.com wrot=
e:</div><blockquote class=3D"gmail_quote" style=3D"margin: 0px 0px 0px 0.8e=
x; padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-wi=
dth: 1px; border-left-style: solid;"><div dir=3D"ltr">Wouldn&#39;t it be mi=
les better to instead of <a onmousedown=3D"this.href=3D&#39;https://www.goo=
gle.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fisocpp%2FCppCoreGuidelines%2Fbl=
ob%2Fmaster%2FCppCoreGuidelines.md%23slio50-avoid-endl\x26sa\x3dD\x26sntz\x=
3d1\x26usg\x3dAFQjCNHj0c7DLOozJmEULOfU2G9-3_DJOw&#39;;return true;" onclick=
=3D"this.href=3D&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.c=
om%2Fisocpp%2FCppCoreGuidelines%2Fblob%2Fmaster%2FCppCoreGuidelines.md%23sl=
io50-avoid-endl\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHj0c7DLOozJmEULOfU2=
G9-3_DJOw&#39;;return true;" href=3D"https://github.com/isocpp/CppCoreGuide=
lines/blob/master/CppCoreGuidelines.md#slio50-avoid-endl" target=3D"_blank"=
 rel=3D"nofollow">un-teaching people from std::endl and advertise &#39;\n&#=
39;</a> to have equally attractive alternative?<div><br></div><div>The poin=
t is - &#39;\n&#39; is not in any way beginner friendly as it is not an std=
 or build in &quot;command&quot;/object, but some alien symbol (to a new co=
mer) like, literally nothing else - it does not even look a single characte=
r.</div><div>Even for a non-beginner, some prefer typing std::endl as it is=
 just simple letters, not rarely used symbols (double colon, is not rarely =
used a t all)=C2=A0</div><div><br></div><div>Also, if we have a friendly ne=
w line alternative we could deprecate endl and teach to new-line-and-flush-=
if-needed.=C2=A0</div><div>Without deprecating it, we might add confusion.=
=C2=A0=C2=A0<br><div><br></div><div><br></div><div><br></div></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&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/f3b96b40-aca4-4df3-a4e4-9b18346956ab%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/f3b96b40-aca4-4df3-a4e4-9b18346956ab=
%40isocpp.org</a>.<br />

------=_Part_699_757793461.1541713981944--

------=_Part_698_1714023355.1541713981943--

.


Author: Brian Bi <bbi5291@gmail.com>
Date: Thu, 8 Nov 2018 16:07:55 -0600
Raw View
--0000000000003ab7b6057a2e78b4
Content-Type: text/plain; charset="UTF-8"

On Thu, Nov 8, 2018 at 7:37 AM <mihailnajdenov@gmail.com> wrote:

> Wouldn't it be miles better to instead of un-teaching people from
> std::endl and advertise '\n'
> <https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#slio50-avoid-endl>
> to have equally attractive alternative?
>
> The point is - '\n' is not in any way beginner friendly as it is not an
> std or build in "command"/object, but some alien symbol (to a new comer)
> like, literally nothing else - it does not even look a single character.
> Even for a non-beginner, some prefer typing std::endl as it is just simple
> letters, not rarely used symbols (double colon, is not rarely used a t all)
>

I think the reason why novices use std::endl is that they're under the
impression (no doubt perpetuated by incompetent educators) that std::endl
is portable whereas '\n' isn't.

Also, I think adding some hypothetical new "std::newline" constant in an
attempt to "seduce" novices does them a disservice by making them waste
keystrokes and tempting them to use "using namespace std" to save a few.

In other words, teaching people to use '\n' really is the best solution.


>
> Also, if we have a friendly new line alternative we could deprecate endl
> and teach to new-line-and-flush-if-needed.
> Without deprecating it, we might add confusion.
>
>
>
> --
> 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/e17189bf-51be-496d-845a-3707a516a210%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/e17189bf-51be-496d-845a-3707a516a210%40isocpp.org?utm_medium=email&utm_source=footer>
> .
>


--
*Brian Bi*

--
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/CAMmfjbOkdN63EON%2BhrCJWj94n48vtVvMfUjzeau5KmPWSpwkow%40mail.gmail.com.

--0000000000003ab7b6057a2e78b4
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_quote"><div dir=3D"ltr">On Thu, Nov 8,=
 2018 at 7:37 AM &lt;<a href=3D"mailto:mihailnajdenov@gmail.com">mihailnajd=
enov@gmail.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" st=
yle=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div =
dir=3D"ltr">Wouldn&#39;t it be miles better to instead of <a href=3D"https:=
//github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#slio=
50-avoid-endl" target=3D"_blank">un-teaching people from std::endl and adve=
rtise &#39;\n&#39;</a> to have equally attractive alternative?<div><br></di=
v><div>The point is - &#39;\n&#39; is not in any way beginner friendly as i=
t is not an std or build in &quot;command&quot;/object, but some alien symb=
ol (to a new comer) like, literally nothing else - it does not even look a =
single character.</div><div>Even for a non-beginner, some prefer typing std=
::endl as it is just simple letters, not rarely used symbols (double colon,=
 is not rarely used a t all)=C2=A0</div></div></blockquote><div><br></div><=
div>I think the reason why novices use std::endl is that they&#39;re under =
the impression (no doubt perpetuated by incompetent educators) that std::en=
dl is portable whereas &#39;\n&#39; isn&#39;t.</div><div><br></div><div>Als=
o, I think adding some hypothetical new &quot;std::newline&quot; constant i=
n an attempt to &quot;seduce&quot; novices does them a disservice by making=
 them waste keystrokes and tempting them to use &quot;using namespace std&q=
uot; to save a few.</div><div><br></div><div>In other words, teaching peopl=
e to use &#39;\n&#39; really is the best solution.</div><div>=C2=A0</div><b=
lockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px =
#ccc solid;padding-left:1ex"><div dir=3D"ltr"><div><br></div><div>Also, if =
we have a friendly new line alternative we could deprecate endl and teach t=
o new-line-and-flush-if-needed.=C2=A0</div><div>Without deprecating it, we =
might add confusion.=C2=A0=C2=A0<br><div><br></div><div><br></div><div><br>=
</div></div></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org" 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/e17189bf-51be-496d-845a-3707a516a210%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank">=
https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/e17189bf-51be-=
496d-845a-3707a516a210%40isocpp.org</a>.<br>
</blockquote></div><br clear=3D"all"><div><br></div>-- <br><div dir=3D"ltr"=
 class=3D"gmail_signature" data-smartmail=3D"gmail_signature"><div dir=3D"l=
tr"><div><div dir=3D"ltr"><font color=3D"#c0c0c0"><i>Brian Bi</i></font><br=
><div></div><div></div><div></div></div></div></div></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CAMmfjbOkdN63EON%2BhrCJWj94n48vtVvMfU=
jzeau5KmPWSpwkow%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">h=
ttps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAMmfjbOkdN63EO=
N%2BhrCJWj94n48vtVvMfUjzeau5KmPWSpwkow%40mail.gmail.com</a>.<br />

--0000000000003ab7b6057a2e78b4--

.


Author: Thiago Macieira <thiago@macieira.org>
Date: Thu, 08 Nov 2018 14:21:48 -0800
Raw View
On Thursday, 8 November 2018 13:53:01 PST gmisocpp@gmail.com wrote:
> Grumpy me says lets make endl not flush in C++20, since it surprises people.

Not flushing where it is flushing today would cause way more surprise than
what we have today. Plus, the C standard library does flush on newlines, if
the FILE* object is in line-buffered mode, so why should we deviate?

--
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center



--
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/2013789.PttkctXh33%40tjmaciei-mobl1.

.


Author: "T. C." <rs2740@gmail.com>
Date: Thu, 8 Nov 2018 14:30:23 -0800 (PST)
Raw View
------=_Part_722_3665461.1541716223231
Content-Type: multipart/alternative;
 boundary="----=_Part_723_2077986292.1541716223231"

------=_Part_723_2077986292.1541716223231
Content-Type: text/plain; charset="UTF-8"



On Thursday, November 8, 2018 at 5:08:10 PM UTC-5, Brian Bi wrote:
>
> On Thu, Nov 8, 2018 at 7:37 AM <mihailn...@gmail.com <javascript:>> wrote:
>
>> Wouldn't it be miles better to instead of un-teaching people from
>> std::endl and advertise '\n'
>> <https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#slio50-avoid-endl>
>> to have equally attractive alternative?
>>
>> The point is - '\n' is not in any way beginner friendly as it is not an
>> std or build in "command"/object, but some alien symbol (to a new comer)
>> like, literally nothing else - it does not even look a single character.
>> Even for a non-beginner, some prefer typing std::endl as it is just
>> simple letters, not rarely used symbols (double colon, is not rarely used a
>> t all)
>>
>
> I think the reason why novices use std::endl is that they're under the
> impression (no doubt perpetuated by incompetent educators) that std::endl
> is portable whereas '\n' isn't.
>
> Also, I think adding some hypothetical new "std::newline" constant in an
> attempt to "seduce" novices does them a disservice by making them waste
> keystrokes and tempting them to use "using namespace std" to save a few.
>
> In other words, teaching people to use '\n' really is the best solution.
>

I can see a manipulator that does endl-without-the-flush to be marginally
useful. It would be different from << '\n' in that it performs unformatted
output, i.e., no padding.

I'm not convinced that it's worth standardizing.


>
>
>>
>> Also, if we have a friendly new line alternative we could deprecate endl
>> and teach to new-line-and-flush-if-needed.
>> Without deprecating it, we might add confusion.
>>
>>
>>
>> --
>> 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-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
>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/e17189bf-51be-496d-845a-3707a516a210%40isocpp.org
>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/e17189bf-51be-496d-845a-3707a516a210%40isocpp.org?utm_medium=email&utm_source=footer>
>> .
>>
>
>
> --
> *Brian Bi*
>

--
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/fff2c6b4-0f49-4151-bcf0-094e273cafa5%40isocpp.org.

------=_Part_723_2077986292.1541716223231
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><br>On Thursday, November 8, 2018 at 5:08:10 PM UTC-5,=
 Brian Bi wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin=
-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"lt=
r"><div class=3D"gmail_quote"><div dir=3D"ltr">On Thu, Nov 8, 2018 at 7:37 =
AM &lt;<a href=3D"javascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"N=
OhUIZqVBAAJ" rel=3D"nofollow" onmousedown=3D"this.href=3D&#39;javascript:&#=
39;;return true;" onclick=3D"this.href=3D&#39;javascript:&#39;;return true;=
">mihailn...@gmail.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_q=
uote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1e=
x"><div dir=3D"ltr">Wouldn&#39;t it be miles better to instead of <a href=
=3D"https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelin=
es.md#slio50-avoid-endl" target=3D"_blank" rel=3D"nofollow" onmousedown=3D"=
this.href=3D&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2=
Fisocpp%2FCppCoreGuidelines%2Fblob%2Fmaster%2FCppCoreGuidelines.md%23slio50=
-avoid-endl\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHj0c7DLOozJmEULOfU2G9-3=
_DJOw&#39;;return true;" onclick=3D"this.href=3D&#39;https://www.google.com=
/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fisocpp%2FCppCoreGuidelines%2Fblob%2Fma=
ster%2FCppCoreGuidelines.md%23slio50-avoid-endl\x26sa\x3dD\x26sntz\x3d1\x26=
usg\x3dAFQjCNHj0c7DLOozJmEULOfU2G9-3_DJOw&#39;;return true;">un-teaching pe=
ople from std::endl and advertise &#39;\n&#39;</a> to have equally attracti=
ve alternative?<div><br></div><div>The point is - &#39;\n&#39; is not in an=
y way beginner friendly as it is not an std or build in &quot;command&quot;=
/object, but some alien symbol (to a new comer) like, literally nothing els=
e - it does not even look a single character.</div><div>Even for a non-begi=
nner, some prefer typing std::endl as it is just simple letters, not rarely=
 used symbols (double colon, is not rarely used a t all)=C2=A0</div></div><=
/blockquote><div><br></div><div>I think the reason why novices use std::end=
l is that they&#39;re under the impression (no doubt perpetuated by incompe=
tent educators) that std::endl is portable whereas &#39;\n&#39; isn&#39;t.<=
/div><div><br></div><div>Also, I think adding some hypothetical new &quot;s=
td::newline&quot; constant in an attempt to &quot;seduce&quot; novices does=
 them a disservice by making them waste keystrokes and tempting them to use=
 &quot;using namespace std&quot; to save a few.</div><div><br></div><div>In=
 other words, teaching people to use &#39;\n&#39; really is the best soluti=
on.</div></div></div></blockquote><div><br></div><div>I can see a manipulat=
or that does endl-without-the-flush to be marginally useful. It would be di=
fferent from &lt;&lt; &#39;\n&#39; in that it performs unformatted output, =
i.e., no padding.</div><div><br></div><div>I&#39;m not convinced that it&#3=
9;s worth standardizing.</div><div>=C2=A0</div><blockquote class=3D"gmail_q=
uote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;pad=
ding-left: 1ex;"><div dir=3D"ltr"><div class=3D"gmail_quote"><div>=C2=A0</d=
iv><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left=
:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div><br></div><div>Also=
, if we have a friendly new line alternative we could deprecate endl and te=
ach to new-line-and-flush-if-needed.=C2=A0</div><div>Without deprecating it=
, we might add confusion.=C2=A0=C2=A0<br><div><br></div><div><br></div><div=
><br></div></div></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; 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"=
NOhUIZqVBAAJ" rel=3D"nofollow" onmousedown=3D"this.href=3D&#39;javascript:&=
#39;;return true;" onclick=3D"this.href=3D&#39;javascript:&#39;;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"NOhUIZqVBAAJ" rel=3D"nofollow" onmousedown=3D"=
this.href=3D&#39;javascript:&#39;;return true;" onclick=3D"this.href=3D&#39=
;javascript:&#39;;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/e17189bf-51be-496d-845a-3707a516a210%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank" =
rel=3D"nofollow" onmousedown=3D"this.href=3D&#39;https://groups.google.com/=
a/isocpp.org/d/msgid/std-proposals/e17189bf-51be-496d-845a-3707a516a210%40i=
socpp.org?utm_medium\x3demail\x26utm_source\x3dfooter&#39;;return true;" on=
click=3D"this.href=3D&#39;https://groups.google.com/a/isocpp.org/d/msgid/st=
d-proposals/e17189bf-51be-496d-845a-3707a516a210%40isocpp.org?utm_medium\x3=
demail\x26utm_source\x3dfooter&#39;;return true;">https://groups.google.com=
/a/<wbr>isocpp.org/d/msgid/std-<wbr>proposals/e17189bf-51be-496d-<wbr>845a-=
3707a516a210%40isocpp.org</a><wbr>.<br>
</blockquote></div><br clear=3D"all"><div><br></div>-- <br><div dir=3D"ltr"=
><div dir=3D"ltr"><div><div dir=3D"ltr"><font color=3D"#c0c0c0"><i>Brian Bi=
</i></font><br><div></div><div></div><div></div></div></div></div></div></d=
iv>
</blockquote></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/fff2c6b4-0f49-4151-bcf0-094e273cafa5%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/fff2c6b4-0f49-4151-bcf0-094e273cafa5=
%40isocpp.org</a>.<br />

------=_Part_723_2077986292.1541716223231--

------=_Part_722_3665461.1541716223231--

.


Author: Hyman Rosen <hyman.rosen@gmail.com>
Date: Thu, 8 Nov 2018 17:43:06 -0500
Raw View
--00000000000009b7a3057a2ef6a0
Content-Type: text/plain; charset="UTF-8"

On Thu, Nov 8, 2018 at 5:08 PM Brian Bi <bbi5291@gmail.com> wrote:

> I think the reason why novices use std::endl is that they're under the
> impression (no doubt perpetuated by incompetent educators) that std::endl
> is portable whereas '\n' isn't.
>

I think novices use std::endl because that's how C++ formatted I/O
was presented for ages.  I have the feeling, completely unsupported
by evidence, that the iostreams designers thought manipulators were
really keen, and wanted to have one that would always get used.

--
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/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxEDRbuJ8dqAtsX5A%40mail.gmail.com.

--00000000000009b7a3057a2ef6a0
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_quote"><div dir=3D"ltr">On Thu, Nov 8,=
 2018 at 5:08 PM Brian Bi &lt;<a href=3D"mailto:bbi5291@gmail.com">bbi5291@=
gmail.com</a>&gt; wrote:</div><blockquote class=3D"gmail_quote" style=3D"ma=
rgin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"lt=
r"><div class=3D"gmail_quote"><div>I think the reason why novices use std::=
endl is that they&#39;re under the impression (no doubt perpetuated by inco=
mpetent educators) that std::endl is portable whereas &#39;\n&#39; isn&#39;=
t.</div></div></div></blockquote><div><br>I think novices use std::endl bec=
ause that&#39;s how C++ formatted I/O<br>was presented for ages.=C2=A0 I ha=
ve the feeling, completely unsupported<br>by evidence, that the iostreams d=
esigners thought manipulators were<br>really keen, and wanted to have one t=
hat would always get used.</div></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxE=
DRbuJ8dqAtsX5A%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">htt=
ps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAHSYqdYYZjeHHbRZ=
5bcHLYVsWfspwCeQ8oxEDRbuJ8dqAtsX5A%40mail.gmail.com</a>.<br />

--00000000000009b7a3057a2ef6a0--

.


Author: W Brown <webrown.cpp@gmail.com>
Date: Thu, 8 Nov 2018 16:33:29 -0800
Raw View
--Apple-Mail=_63F374C1-77EC-4B0F-BF0E-DE45491553D9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"


> On Nov 8, 2018, at 2:30 PM, T. C. <rs2740@gmail.com> wrote:
>=20
>=20
>=20
> On Thursday, November 8, 2018 at 5:08:10 PM UTC-5, Brian Bi wrote:
> On Thu, Nov 8, 2018 at 7:37 AM <mihailn...@gmail.com <javascript:>> wrote=
:
> Wouldn't it be miles better to instead of un-teaching people from std::en=
dl and advertise '\n' <https://github.com/isocpp/CppCoreGuidelines/blob/mas=
ter/CppCoreGuidelines.md#slio50-avoid-endl> to have equally attractive alte=
rnative?
>=20
> The point is - '\n' is not in any way beginner friendly as it is not an s=
td or build in "command"/object, but some alien symbol (to a new comer) lik=
e, literally nothing else - it does not even look a single character.
> Even for a non-beginner, some prefer typing std::endl as it is just simpl=
e letters, not rarely used symbols (double colon, is not rarely used a t al=
l)=20
>=20
> I think the reason why novices use std::endl is that they're under the im=
pression (no doubt perpetuated by incompetent educators) that std::endl is =
portable whereas '\n' isn't.
>=20
> Also, I think adding some hypothetical new "std::newline" constant in an =
attempt to "seduce" novices does them a disservice by making them waste key=
strokes and tempting them to use "using namespace std" to save a few.
>=20
> In other words, teaching people to use '\n' really is the best solution.
>=20
> I can see a manipulator that does endl-without-the-flush to be marginally=
 useful. It would be different from << '\n' in that it performs unformatted=
 output, i.e., no padding.
>=20
> I'm not convinced that it's worth standardizing.
> =20
> =20
>=20
> Also, if we have a friendly new line alternative we could deprecate endl =
and teach to new-line-and-flush-if-needed.=20
> Without deprecating it, we might add confusion. =20
>=20
>=20
>=20
>=20
> --=20
> You received this message because you are subscribed to the Google Groups=
 "ISO C++ Standard - Future Proposals" group.
> To unsubscribe from this group and stop receiving emails from it, send an=
 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 https://groups.google.com/a/isoc=
pp.org/d/msgid/std-proposals/e17189bf-51be-496d-845a-3707a516a210%40isocpp.=
org <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/e17189bf-=
51be-496d-845a-3707a516a210%40isocpp.org?utm_medium=3Demail&utm_source=3Dfo=
oter>.
>=20
>=20
> --=20
> Brian Bi
>=20
> --=20
> You received this message because you are subscribed to the Google Groups=
 "ISO C++ Standard - Future Proposals" group.
> To unsubscribe from this group and stop receiving emails from it, send an=
 email to std-proposals+unsubscribe@isocpp.org <mailto:std-proposals+unsubs=
cribe@isocpp.org>.
> To post to this group, send email to std-proposals@isocpp.org <mailto:std=
-proposals@isocpp.org>.
> To view this discussion on the web visit https://groups.google.com/a/isoc=
pp.org/d/msgid/std-proposals/fff2c6b4-0f49-4151-bcf0-094e273cafa5%40isocpp.=
org <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/fff2c6b4-=
0f49-4151-bcf0-094e273cafa5%40isocpp.org?utm_medium=3Demail&utm_source=3Dfo=
oter>.

--=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/EE0B9E72-114F-4182-8A64-67113839FE54%40gmail.com=
..

--Apple-Mail=_63F374C1-77EC-4B0F-BF0E-DE45491553D9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="UTF-8"

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html charset=
=3Dus-ascii"></head><body style=3D"word-wrap: break-word; -webkit-nbsp-mode=
: space; -webkit-line-break: after-white-space;" class=3D""><br class=3D"">=
<div><blockquote type=3D"cite" class=3D""><div class=3D"">On Nov 8, 2018, a=
t 2:30 PM, T. C. &lt;<a href=3D"mailto:rs2740@gmail.com" class=3D"">rs2740@=
gmail.com</a>&gt; wrote:</div><br class=3D"Apple-interchange-newline"><div =
class=3D""><div dir=3D"ltr" class=3D""><br class=3D""><br class=3D"">On Thu=
rsday, November 8, 2018 at 5:08:10 PM UTC-5, Brian Bi wrote:<blockquote cla=
ss=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #=
ccc solid;padding-left: 1ex;"><div dir=3D"ltr" class=3D""><div class=3D"gma=
il_quote"><div dir=3D"ltr" class=3D"">On Thu, Nov 8, 2018 at 7:37 AM &lt;<a=
 href=3D"javascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"NOhUIZqVBA=
AJ" rel=3D"nofollow" onmousedown=3D"this.href=3D'javascript:';return true;"=
 onclick=3D"this.href=3D'javascript:';return true;" class=3D"">mihailn...@g=
mail.com</a>&gt; wrote:<br class=3D""></div><blockquote class=3D"gmail_quot=
e" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">=
<div dir=3D"ltr" class=3D"">Wouldn't it be miles better to instead of <a hr=
ef=3D"https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidel=
ines.md#slio50-avoid-endl" target=3D"_blank" rel=3D"nofollow" onmousedown=
=3D"this.href=3D'https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2=
Fisocpp%2FCppCoreGuidelines%2Fblob%2Fmaster%2FCppCoreGuidelines.md%23slio50=
-avoid-endl\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHj0c7DLOozJmEULOfU2G9-3=
_DJOw';return true;" onclick=3D"this.href=3D'https://www.google.com/url?q\x=
3dhttps%3A%2F%2Fgithub.com%2Fisocpp%2FCppCoreGuidelines%2Fblob%2Fmaster%2FC=
ppCoreGuidelines.md%23slio50-avoid-endl\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dA=
FQjCNHj0c7DLOozJmEULOfU2G9-3_DJOw';return true;" class=3D"">un-teaching peo=
ple from std::endl and advertise '\n'</a> to have equally attractive altern=
ative?<div class=3D""><br class=3D""></div><div class=3D"">The point is - '=
\n' is not in any way beginner friendly as it is not an std or build in "co=
mmand"/object, but some alien symbol (to a new comer) like, literally nothi=
ng else - it does not even look a single character.</div><div class=3D"">Ev=
en for a non-beginner, some prefer typing std::endl as it is just simple le=
tters, not rarely used symbols (double colon, is not rarely used a t all)&n=
bsp;</div></div></blockquote><div class=3D""><br class=3D""></div><div clas=
s=3D"">I think the reason why novices use std::endl is that they're under t=
he impression (no doubt perpetuated by incompetent educators) that std::end=
l is portable whereas '\n' isn't.</div><div class=3D""><br class=3D""></div=
><div class=3D"">Also, I think adding some hypothetical new "std::newline" =
constant in an attempt to "seduce" novices does them a disservice by making=
 them waste keystrokes and tempting them to use "using namespace std" to sa=
ve a few.</div><div class=3D""><br class=3D""></div><div class=3D"">In othe=
r words, teaching people to use '\n' really is the best solution.</div></di=
v></div></blockquote><div class=3D""><br class=3D""></div><div class=3D"">I=
 can see a manipulator that does endl-without-the-flush to be marginally us=
eful. It would be different from &lt;&lt; '\n' in that it performs unformat=
ted output, i.e., no padding.</div><div class=3D""><br class=3D""></div><di=
v class=3D"">I'm not convinced that it's worth standardizing.</div><div cla=
ss=3D"">&nbsp;</div><blockquote class=3D"gmail_quote" style=3D"margin: 0;ma=
rgin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=
=3D"ltr" class=3D""><div class=3D"gmail_quote"><div class=3D"">&nbsp;</div>=
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div dir=3D"ltr" class=3D""><div class=3D"">=
<br class=3D""></div><div class=3D"">Also, if we have a friendly new line a=
lternative we could deprecate endl and teach to new-line-and-flush-if-neede=
d.&nbsp;</div><div class=3D"">Without deprecating it, we might add confusio=
n.&nbsp;&nbsp;<br class=3D""><div class=3D""><br class=3D""></div><div clas=
s=3D""><br class=3D""></div><div class=3D""><br class=3D""></div></div></di=
v><div class=3D""><br class=3D"webkit-block-placeholder"></div>

-- <br class=3D"">
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.<br class=3D"">
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"=
NOhUIZqVBAAJ" rel=3D"nofollow" onmousedown=3D"this.href=3D'javascript:';ret=
urn true;" onclick=3D"this.href=3D'javascript:';return true;" class=3D"">st=
d-proposal...@<wbr class=3D"">isocpp.org</a>.<br class=3D"">
To post to this group, send email to <a href=3D"javascript:" target=3D"_bla=
nk" gdf-obfuscated-mailto=3D"NOhUIZqVBAAJ" rel=3D"nofollow" onmousedown=3D"=
this.href=3D'javascript:';return true;" onclick=3D"this.href=3D'javascript:=
';return true;" class=3D"">std-pr...@isocpp.org</a>.<br class=3D"">
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/e17189bf-51be-496d-845a-3707a516a210%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank" =
rel=3D"nofollow" onmousedown=3D"this.href=3D'https://groups.google.com/a/is=
ocpp.org/d/msgid/std-proposals/e17189bf-51be-496d-845a-3707a516a210%40isocp=
p.org?utm_medium\x3demail\x26utm_source\x3dfooter';return true;" onclick=3D=
"this.href=3D'https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/=
e17189bf-51be-496d-845a-3707a516a210%40isocpp.org?utm_medium\x3demail\x26ut=
m_source\x3dfooter';return true;" class=3D"">https://groups.google.com/a/<w=
br class=3D"">isocpp.org/d/msgid/std-<wbr class=3D"">proposals/e17189bf-51b=
e-496d-<wbr class=3D"">845a-3707a516a210%40isocpp.org</a><wbr class=3D"">.<=
br class=3D"">
</blockquote></div><br clear=3D"all" class=3D""><div class=3D""><br class=
=3D""></div>-- <br class=3D""><div dir=3D"ltr" class=3D""><div dir=3D"ltr" =
class=3D""><div class=3D""><div dir=3D"ltr" class=3D""><font color=3D"#c0c0=
c0" class=3D""><i class=3D"">Brian Bi</i></font><br class=3D""><div class=
=3D""></div><div class=3D""></div><div class=3D""></div></div></div></div><=
/div></div>
</blockquote></div><div class=3D""><br class=3D"webkit-block-placeholder"><=
/div>

-- <br class=3D"">
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.<br class=3D"">
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" class=3D"">=
std-proposals+unsubscribe@isocpp.org</a>.<br class=3D"">
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org" class=3D"">std-proposals@isocpp.org</a>.<br class=3D"">
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/fff2c6b4-0f49-4151-bcf0-094e273cafa5%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" class=3D"">https:/=
/groups.google.com/a/isocpp.org/d/msgid/std-proposals/fff2c6b4-0f49-4151-bc=
f0-094e273cafa5%40isocpp.org</a>.<br class=3D"">
</div></blockquote></div><br class=3D""></body></html>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/EE0B9E72-114F-4182-8A64-67113839FE54%=
40gmail.com?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/EE0B9E72-114F-4182-8A64-67113839FE54%=
40gmail.com</a>.<br />

--Apple-Mail=_63F374C1-77EC-4B0F-BF0E-DE45491553D9--

.


Author: Peter Sommerlad <peter.sommerlad@hsr.ch>
Date: Fri, 9 Nov 2018 07:22:15 +0100
Raw View
--Apple-Mail-D2FD25BE-7B71-4D6C-936F-D63E4DABBAB3
Content-Type: text/plain; charset="UTF-8"

So the better way is do better teaching. I show my students that they should not use endl, except when they need it.

Sent from Peter Sommerlad's iPad
+41 79 432 23 32

> On 8 Nov 2018, at 23:43, Hyman Rosen <hyman.rosen@gmail.com> wrote:
>
>> On Thu, Nov 8, 2018 at 5:08 PM Brian Bi <bbi5291@gmail.com> wrote:
>> I think the reason why novices use std::endl is that they're under the impression (no doubt perpetuated by incompetent educators) that std::endl is portable whereas '\n' isn't.
>
> I think novices use std::endl because that's how C++ formatted I/O
> was presented for ages.  I have the feeling, completely unsupported
> by evidence, that the iostreams designers thought manipulators were
> really keen, and wanted to have one that would always get used.
> --
> 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/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxEDRbuJ8dqAtsX5A%40mail.gmail.com.

--
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/AB167E1A-FA59-4B72-A9C2-1624D1B56614%40hsr.ch.

--Apple-Mail-D2FD25BE-7B71-4D6C-936F-D63E4DABBAB3
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<html><head><meta http-equiv=3D"content-type" content=3D"text/html; charset=
=3Dutf-8"></head><body dir=3D"auto">So the better way is do better teaching=
.. I show my students that they should not use endl, except when they need i=
t.<br><br><div id=3D"AppleMailSignature" dir=3D"ltr">Sent from Peter Sommer=
lad's<span class=3D"Apple-style-span" style=3D"-webkit-tap-highlight-color:=
 rgba(26, 26, 26, 0.296875); -webkit-composition-fill-color: rgba(175, 192,=
 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.2304=
69); ">&nbsp;iPad</span><div><span class=3D"Apple-style-span" style=3D"-web=
kit-tap-highlight-color: rgba(26, 26, 26, 0.296875); -webkit-composition-fi=
ll-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: r=
gba(77, 128, 180, 0.230469); ">+41 79 432 23 32</span></div></div><div dir=
=3D"ltr"><br>On 8 Nov 2018, at 23:43, Hyman Rosen &lt;<a href=3D"mailto:hym=
an.rosen@gmail.com">hyman.rosen@gmail.com</a>&gt; wrote:<br><br></div><bloc=
kquote type=3D"cite"><div dir=3D"ltr"><meta http-equiv=3D"Content-Type" con=
tent=3D"text/html; charset=3Dutf-8"><div dir=3D"ltr"><div class=3D"gmail_qu=
ote"><div dir=3D"ltr">On Thu, Nov 8, 2018 at 5:08 PM Brian Bi &lt;<a href=
=3D"mailto:bbi5291@gmail.com">bbi5291@gmail.com</a>&gt; wrote:</div><blockq=
uote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc =
solid;padding-left:1ex"><div dir=3D"ltr"><div class=3D"gmail_quote"><div>I =
think the reason why novices use std::endl is that they're under the impres=
sion (no doubt perpetuated by incompetent educators) that std::endl is port=
able whereas '\n' isn't.</div></div></div></blockquote><div><br>I think nov=
ices use std::endl because that's how C++ formatted I/O<br>was presented fo=
r ages.&nbsp; I have the feeling, completely unsupported<br>by evidence, th=
at the iostreams designers thought manipulators were<br>really keen, and wa=
nted to have one that would always get used.</div></div></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.<br>
To unsubscribe from this group and stop receiving emails from it, send an 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/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxE=
DRbuJ8dqAtsX5A%40mail.gmail.com?utm_medium=3Demail&amp;utm_source=3Dfooter"=
>https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAHSYqdYYZjeH=
HbRZ5bcHLYVsWfspwCeQ8oxEDRbuJ8dqAtsX5A%40mail.gmail.com</a>.<br>
</div></blockquote></body></html>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/AB167E1A-FA59-4B72-A9C2-1624D1B56614%=
40hsr.ch?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.com/=
a/isocpp.org/d/msgid/std-proposals/AB167E1A-FA59-4B72-A9C2-1624D1B56614%40h=
sr.ch</a>.<br />

--Apple-Mail-D2FD25BE-7B71-4D6C-936F-D63E4DABBAB3--

.


Author: mihailnajdenov@gmail.com
Date: Fri, 9 Nov 2018 01:19:04 -0800 (PST)
Raw View
------=_Part_831_1553175585.1541755144847
Content-Type: multipart/alternative;
 boundary="----=_Part_832_1870195055.1541755144848"

------=_Part_832_1870195055.1541755144848
Content-Type: text/plain; charset="UTF-8"

There are multiple problems with '\n'

First - it is ultimately C ("way")
Second, when we introduce simple output to beginners, for which cout is
actually good because of overloading,
when using '\n' we have to introduce additional topics
 - the fact a char can be more the one, well, character
 - special magic characters
We also create asymmetry b/w what is used to start the output std::cout (an
object), to modify it (hex) and what is used to end it ("magic").

This screams some design flaw - we should be able to insert a new lines the
same way we modify the stream!

On its own std::endl has the flaw that it does not obey the "do one thing"
rule.
Once we deprecate it, this will shut down all the naive tutorials/courses
still teaching it as the default!


As for std::newline, we have options -

std::nl //< even a beginner can "read" it
std::newl //< orthogonal to endl
std::br //< why not at this point!
std::brl
std::bl

Geeks can still use `\n`, but a beginner (and a teacher) will have a
simple, *correct, *go-to option that models the syntax already introduced
(std::cout)!


On Friday, November 9, 2018 at 8:22:26 AM UTC+2, PeterSommerlad wrote:
>
> So the better way is do better teaching. I show my students that they
> should not use endl, except when they need it.
>
> Sent from Peter Sommerlad's iPad
> +41 79 432 23 32
>
> On 8 Nov 2018, at 23:43, Hyman Rosen <hyman...@gmail.com <javascript:>>
> wrote:
>
> On Thu, Nov 8, 2018 at 5:08 PM Brian Bi <bbi...@gmail.com <javascript:>>
> wrote:
>
>> I think the reason why novices use std::endl is that they're under the
>> impression (no doubt perpetuated by incompetent educators) that std::endl
>> is portable whereas '\n' isn't.
>>
>
> I think novices use std::endl because that's how C++ formatted I/O
> was presented for ages.  I have the feeling, completely unsupported
> by evidence, that the iostreams designers thought manipulators were
> really keen, and wanted to have one that would always get used.
>
> --
> 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-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
> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxEDRbuJ8dqAtsX5A%40mail.gmail.com
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxEDRbuJ8dqAtsX5A%40mail.gmail.com?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/b49f4c85-816b-4b35-851d-407061a8ef9f%40isocpp.org.

------=_Part_832_1870195055.1541755144848
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">There are multiple problems with &#39;\n&#39;<div><br></di=
v><div>First - it is ultimately C (&quot;way&quot;)</div><div>Second, when =
we introduce simple output to beginners, for which cout is actually good be=
cause of overloading,</div><div>when using &#39;\n&#39; we have to introduc=
e additional topics=C2=A0<br><div>=C2=A0- the fact a char can be more the o=
ne, well, character</div><div>=C2=A0- special magic characters</div><div>We=
 also create asymmetry b/w what is used to start the output std::cout (an o=
bject), to modify it (hex) and what is used to end it (&quot;magic&quot;).<=
/div><div><br></div><div>This screams some design flaw - we should be able =
to insert a new lines the same way we modify the stream!</div><div><br></di=
v><div>On its own std::endl has the flaw that it does not obey the &quot;do=
 one thing&quot; rule.</div><div>Once we deprecate it, this will shut down =
all the naive tutorials/courses still teaching it as the default!=C2=A0</di=
v><div><br></div><div><br></div><div>As for std::newline, we have options -=
=C2=A0</div><div><br></div><div><font face=3D"courier new, monospace">std::=
nl //&lt; even a beginner can &quot;read&quot; it</font></div><div><font fa=
ce=3D"courier new, monospace">std::newl //&lt; orthogonal to endl</font></d=
iv><div><font face=3D"courier new, monospace">std::br //&lt; why not at thi=
s point!</font></div><div><font face=3D"courier new, monospace">std::brl</f=
ont></div><div><font face=3D"courier new, monospace">std::bl</font></div><d=
iv><br></div><div>Geeks can still use `\n`, but a beginner (and a teacher) =
will have a simple, <i>correct,=C2=A0</i>go-to option that models the synta=
x already introduced (std::cout)!</div><div><br><br>On Friday, November 9, =
2018 at 8:22:26 AM UTC+2, PeterSommerlad wrote:<blockquote class=3D"gmail_q=
uote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;pad=
ding-left: 1ex;"><div dir=3D"auto">So the better way is do better teaching.=
 I show my students that they should not use endl, except when they need it=
..<br><br><div dir=3D"ltr">Sent from Peter Sommerlad&#39;s<span>=C2=A0iPad</=
span><div><span>+41 79 432 23 32</span></div></div><div dir=3D"ltr"><br>On =
8 Nov 2018, at 23:43, Hyman Rosen &lt;<a href=3D"javascript:" target=3D"_bl=
ank" gdf-obfuscated-mailto=3D"ZHex8pKwBAAJ" rel=3D"nofollow" onmousedown=3D=
"this.href=3D&#39;javascript:&#39;;return true;" onclick=3D"this.href=3D&#3=
9;javascript:&#39;;return true;">hyman...@gmail.com</a>&gt; wrote:<br><br><=
/div><blockquote type=3D"cite"><div dir=3D"ltr"><div dir=3D"ltr"><div class=
=3D"gmail_quote"><div dir=3D"ltr">On Thu, Nov 8, 2018 at 5:08 PM Brian Bi &=
lt;<a href=3D"javascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"ZHex8=
pKwBAAJ" rel=3D"nofollow" onmousedown=3D"this.href=3D&#39;javascript:&#39;;=
return true;" onclick=3D"this.href=3D&#39;javascript:&#39;;return true;">bb=
i...@gmail.com</a>&gt; wrote:</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"><div class=3D"gmail_quote"><div>I think the reason why novices use=
 std::endl is that they&#39;re under the impression (no doubt perpetuated b=
y incompetent educators) that std::endl is portable whereas &#39;\n&#39; is=
n&#39;t.</div></div></div></blockquote><div><br>I think novices use std::en=
dl because that&#39;s how C++ formatted I/O<br>was presented for ages.=C2=
=A0 I have the feeling, completely unsupported<br>by evidence, that the ios=
treams designers thought manipulators were<br>really keen, and wanted to ha=
ve one that would always get used.</div></div></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"javascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"=
ZHex8pKwBAAJ" rel=3D"nofollow" onmousedown=3D"this.href=3D&#39;javascript:&=
#39;;return true;" onclick=3D"this.href=3D&#39;javascript:&#39;;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"ZHex8pKwBAAJ" rel=3D"nofollow" onmousedown=3D"=
this.href=3D&#39;javascript:&#39;;return true;" onclick=3D"this.href=3D&#39=
;javascript:&#39;;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/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxE=
DRbuJ8dqAtsX5A%40mail.gmail.com?utm_medium=3Demail&amp;utm_source=3Dfooter"=
 target=3D"_blank" rel=3D"nofollow" onmousedown=3D"this.href=3D&#39;https:/=
/groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAHSYqdYYZjeHHbRZ5bcH=
LYVsWfspwCeQ8oxEDRbuJ8dqAtsX5A%40mail.gmail.com?utm_medium\x3demail\x26utm_=
source\x3dfooter&#39;;return true;" onclick=3D"this.href=3D&#39;https://gro=
ups.google.com/a/isocpp.org/d/msgid/std-proposals/CAHSYqdYYZjeHHbRZ5bcHLYVs=
WfspwCeQ8oxEDRbuJ8dqAtsX5A%40mail.gmail.com?utm_medium\x3demail\x26utm_sour=
ce\x3dfooter&#39;;return true;">https://groups.google.com/a/<wbr>isocpp.org=
/d/msgid/std-<wbr>proposals/<wbr>CAHSYqdYYZjeHHbRZ5bcHLYVsWfspw<wbr>CeQ8oxE=
DRbuJ8dqAtsX5A%40mail.<wbr>gmail.com</a>.<br>
</div></blockquote></div></blockquote></div></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/b49f4c85-816b-4b35-851d-407061a8ef9f%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/b49f4c85-816b-4b35-851d-407061a8ef9f=
%40isocpp.org</a>.<br />

------=_Part_832_1870195055.1541755144848--

------=_Part_831_1553175585.1541755144847--

.


Author: Brian Bi <bbi5291@gmail.com>
Date: Fri, 9 Nov 2018 10:50:44 -0600
Raw View
--000000000000b43a27057a3e2773
Content-Type: text/plain; charset="UTF-8"

On Fri, Nov 9, 2018 at 3:19 AM <mihailnajdenov@gmail.com> wrote:

> There are multiple problems with '\n'
>
> First - it is ultimately C ("way")
>
This mailing list is about C++, not Java, Rust, Swift, etc.
This is not an argument.

Second, when we introduce simple output to beginners, for which cout is
> actually good because of overloading,
> when using '\n' we have to introduce additional topics
>  - the fact a char can be more the one, well, character
>  - special magic characters
> We also create asymmetry b/w what is used to start the output std::cout
> (an object), to modify it (hex) and what is used to end it ("magic").
>
What do you mean, "what is used to end it"? A semicolon?


>
> This screams some design flaw - we should be able to insert a new lines
> the same way we modify the stream!
>
Yes, the way to do that is with '\n'.


>
> On its own std::endl has the flaw that it does not obey the "do one thing"
> rule.
> Once we deprecate it, this will shut down all the naive tutorials/courses
> still teaching it as the default!
>
>
> As for std::newline, we have options -
>
> std::nl //< even a beginner can "read" it
> std::newl //< orthogonal to endl
> std::br //< why not at this point!
> std::brl
> std::bl
>
> Geeks can still use `\n`, but a beginner (and a teacher) will have a
> simple, *correct, *go-to option that models the syntax already introduced
> (std::cout)!
>
>
> On Friday, November 9, 2018 at 8:22:26 AM UTC+2, PeterSommerlad wrote:
>>
>> So the better way is do better teaching. I show my students that they
>> should not use endl, except when they need it.
>>
>> Sent from Peter Sommerlad's iPad
>> +41 79 432 23 32
>>
>> On 8 Nov 2018, at 23:43, Hyman Rosen <hyman...@gmail.com> wrote:
>>
>> On Thu, Nov 8, 2018 at 5:08 PM Brian Bi <bbi...@gmail.com> wrote:
>>
>>> I think the reason why novices use std::endl is that they're under the
>>> impression (no doubt perpetuated by incompetent educators) that std::endl
>>> is portable whereas '\n' isn't.
>>>
>>
>> I think novices use std::endl because that's how C++ formatted I/O
>> was presented for ages.  I have the feeling, completely unsupported
>> by evidence, that the iostreams designers thought manipulators were
>> really keen, and wanted to have one that would always get used.
>>
>> --
>> 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-proposal...@isocpp.org.
>> To post to this group, send email to std-pr...@isocpp.org.
>> To view this discussion on the web visit
>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxEDRbuJ8dqAtsX5A%40mail.gmail.com
>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxEDRbuJ8dqAtsX5A%40mail.gmail.com?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/b49f4c85-816b-4b35-851d-407061a8ef9f%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/b49f4c85-816b-4b35-851d-407061a8ef9f%40isocpp.org?utm_medium=email&utm_source=footer>
> .
>


--
*Brian Bi*

--
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/CAMmfjbOjpJvBWEke1z0XXnHXhjtEO_otNN5-jayGPwe3RHO0Rw%40mail.gmail.com.

--000000000000b43a27057a3e2773
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><br><div class=3D"gmail_quote"><div dir=3D"ltr">On Fri=
, Nov 9, 2018 at 3:19 AM &lt;<a href=3D"mailto:mihailnajdenov@gmail.com">mi=
hailnajdenov@gmail.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_q=
uote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1e=
x"><div dir=3D"ltr">There are multiple problems with &#39;\n&#39;<div><br><=
/div><div>First - it is ultimately C (&quot;way&quot;)</div></div></blockqu=
ote><div>This mailing list is about C++, not Java, Rust, Swift, etc.</div><=
div>This is not an argument.</div><div><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"><div>Second, when we introduce simple output to begin=
ners, for which cout is actually good because of overloading,</div><div>whe=
n using &#39;\n&#39; we have to introduce additional topics=C2=A0<br><div>=
=C2=A0- the fact a char can be more the one, well, character</div><div>=C2=
=A0- special magic characters</div><div>We also create asymmetry b/w what i=
s used to start the output std::cout (an object), to modify it (hex) and wh=
at is used to end it (&quot;magic&quot;).</div></div></div></blockquote><di=
v>What do you mean, &quot;what is used to end it&quot;? A semicolon?</div><=
div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8e=
x;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div><div><=
br></div><div>This screams some design flaw - we should be able to insert a=
 new lines the same way we modify the stream!</div></div></div></blockquote=
><div>Yes, the way to do that is with &#39;\n&#39;.</div><div>=C2=A0</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"><div><div><br></div><div>On =
its own std::endl has the flaw that it does not obey the &quot;do one thing=
&quot; rule.</div><div>Once we deprecate it, this will shut down all the na=
ive tutorials/courses still teaching it as the default!=C2=A0</div><div><br=
></div><div><br></div><div>As for std::newline, we have options -=C2=A0</di=
v><div><br></div><div><font face=3D"courier new, monospace">std::nl //&lt; =
even a beginner can &quot;read&quot; it</font></div><div><font face=3D"cour=
ier new, monospace">std::newl //&lt; orthogonal to endl</font></div><div><f=
ont face=3D"courier new, monospace">std::br //&lt; why not at this point!</=
font></div><div><font face=3D"courier new, monospace">std::brl</font></div>=
<div><font face=3D"courier new, monospace">std::bl</font></div><div><br></d=
iv><div>Geeks can still use `\n`, but a beginner (and a teacher) will have =
a simple, <i>correct,=C2=A0</i>go-to option that models the syntax already =
introduced (std::cout)!</div><div><br><br>On Friday, November 9, 2018 at 8:=
22:26 AM UTC+2, PeterSommerlad wrote:<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"auto">So the better way is do better teaching. I show my stud=
ents that they should not use endl, except when they need it.<br><br><div d=
ir=3D"ltr">Sent from Peter Sommerlad&#39;s<span>=C2=A0iPad</span><div><span=
>+41 79 432 23 32</span></div></div><div dir=3D"ltr"><br>On 8 Nov 2018, at =
23:43, Hyman Rosen &lt;<a rel=3D"nofollow">hyman...@gmail.com</a>&gt; wrote=
:<br><br></div><blockquote type=3D"cite"><div dir=3D"ltr"><div dir=3D"ltr">=
<div class=3D"gmail_quote"><div dir=3D"ltr">On Thu, Nov 8, 2018 at 5:08 PM =
Brian Bi &lt;<a rel=3D"nofollow">bbi...@gmail.com</a>&gt; wrote:</div><bloc=
kquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #cc=
c solid;padding-left:1ex"><div dir=3D"ltr"><div class=3D"gmail_quote"><div>=
I think the reason why novices use std::endl is that they&#39;re under the =
impression (no doubt perpetuated by incompetent educators) that std::endl i=
s portable whereas &#39;\n&#39; isn&#39;t.</div></div></div></blockquote><d=
iv><br>I think novices use std::endl because that&#39;s how C++ formatted I=
/O<br>was presented for ages.=C2=A0 I have the feeling, completely unsuppor=
ted<br>by evidence, that the iostreams designers thought manipulators were<=
br>really keen, and wanted to have one that would always get used.</div></d=
iv></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a rel=3D"nofollow">std-proposal...@isocpp.org</a>.<br>
To post to this group, send email to <a rel=3D"nofollow">std-pr...@isocpp.o=
rg</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/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxE=
DRbuJ8dqAtsX5A%40mail.gmail.com?utm_medium=3Demail&amp;utm_source=3Dfooter"=
 rel=3D"nofollow" target=3D"_blank">https://groups.google.com/a/isocpp.org/=
d/msgid/std-proposals/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxEDRbuJ8dqAtsX5A%4=
0mail.gmail.com</a>.<br>
</div></blockquote></div></blockquote></div></div></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org" 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/b49f4c85-816b-4b35-851d-407061a8ef9f%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank">=
https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/b49f4c85-816b-=
4b35-851d-407061a8ef9f%40isocpp.org</a>.<br>
</blockquote></div><br clear=3D"all"><div><br></div>-- <br><div dir=3D"ltr"=
 class=3D"gmail_signature" data-smartmail=3D"gmail_signature"><div dir=3D"l=
tr"><div><div dir=3D"ltr"><font color=3D"#c0c0c0"><i>Brian Bi</i></font><br=
><div></div><div></div><div></div></div></div></div></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CAMmfjbOjpJvBWEke1z0XXnHXhjtEO_otNN5-=
jayGPwe3RHO0Rw%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">htt=
ps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAMmfjbOjpJvBWEke=
1z0XXnHXhjtEO_otNN5-jayGPwe3RHO0Rw%40mail.gmail.com</a>.<br />

--000000000000b43a27057a3e2773--

.


Author: mihailnajdenov@gmail.com
Date: Sat, 10 Nov 2018 07:24:34 -0800 (PST)
Raw View
------=_Part_1351_153098415.1541863474451
Content-Type: multipart/alternative;
 boundary="----=_Part_1352_1992381970.1541863474452"

------=_Part_1352_1992381970.1541863474452
Content-Type: text/plain; charset="UTF-8"



On Friday, November 9, 2018 at 6:50:59 PM UTC+2, Brian Bi wrote:
>
>
>
> On Fri, Nov 9, 2018 at 3:19 AM <mihailn...@gmail.com <javascript:>> wrote:
>
>> There are multiple problems with '\n'
>>
>> First - it is ultimately C ("way")
>>
> This mailing list is about C++, not Java, Rust, Swift, etc.
> This is not an argument.
>

There is some sort of miscommunication.
The fact there no C++ way to insert a new line (only a UNIX special
character way) is what I state an issue,
considering the rest of the API


>
> Second, when we introduce simple output to beginners, for which cout is
>> actually good because of overloading,
>> when using '\n' we have to introduce additional topics
>>  - the fact a char can be more the one, well, character
>>  - special magic characters
>> We also create asymmetry b/w what is used to start the output std::cout
>> (an object), to modify it (hex) and what is used to end it ("magic").
>>
>

> What do you mean, "what is used to end it"? A semicolon?
>

std::cout     //< start
  << 12.f
  << ' '
  << std::hex //< modify
  << 255
  << '\n';    //< finish (magic)

Note that printf (and other languages) already use special characters to
modify the output, so having an '\n' is not abrupt.

But C++ streams are different, having to spell out a special character is
odd and unintuitive for a beginner and a design deficiency in general.



>
>>
>> This screams some design flaw - we should be able to insert a new lines
>> the same way we modify the stream!
>>
> Yes, the way to do that is with '\n'.
>
>
>>
>> On its own std::endl has the flaw that it does not obey the "do one
>> thing" rule.
>> Once we deprecate it, this will shut down all the naive tutorials/courses
>> still teaching it as the default!
>>
>>
>> As for std::newline, we have options -
>>
>> std::nl //< even a beginner can "read" it
>> std::newl //< orthogonal to endl
>> std::br //< why not at this point!
>> std::brl
>> std::bl
>>
>> Geeks can still use `\n`, but a beginner (and a teacher) will have a
>> simple, *correct, *go-to option that models the syntax already
>> introduced (std::cout)!
>>
>>
>> On Friday, November 9, 2018 at 8:22:26 AM UTC+2, PeterSommerlad wrote:
>>>
>>> So the better way is do better teaching. I show my students that they
>>> should not use endl, except when they need it.
>>>
>>> Sent from Peter Sommerlad's iPad
>>> +41 79 432 23 32
>>>
>>> On 8 Nov 2018, at 23:43, Hyman Rosen <hyman...@gmail.com> wrote:
>>>
>>> On Thu, Nov 8, 2018 at 5:08 PM Brian Bi <bbi...@gmail.com> wrote:
>>>
>>>> I think the reason why novices use std::endl is that they're under the
>>>> impression (no doubt perpetuated by incompetent educators) that std::endl
>>>> is portable whereas '\n' isn't.
>>>>
>>>
>>> I think novices use std::endl because that's how C++ formatted I/O
>>> was presented for ages.  I have the feeling, completely unsupported
>>> by evidence, that the iostreams designers thought manipulators were
>>> really keen, and wanted to have one that would always get used.
>>>
>>> --
>>> 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-proposal...@isocpp.org.
>>> To post to this group, send email to std-pr...@isocpp.org.
>>> To view this discussion on the web visit
>>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxEDRbuJ8dqAtsX5A%40mail.gmail.com
>>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxEDRbuJ8dqAtsX5A%40mail.gmail.com?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-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
>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/b49f4c85-816b-4b35-851d-407061a8ef9f%40isocpp.org
>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/b49f4c85-816b-4b35-851d-407061a8ef9f%40isocpp.org?utm_medium=email&utm_source=footer>
>> .
>>
>
>
> --
> *Brian Bi*
>

--
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/7da1f33f-c2c1-482f-8fc2-c23a9767a5ec%40isocpp.org.

------=_Part_1352_1992381970.1541863474452
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><br>On Friday, November 9, 2018 at 6:50:59 PM UTC+2, B=
rian Bi wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-l=
eft: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr"=
><br><br><div class=3D"gmail_quote"><div dir=3D"ltr">On Fri, Nov 9, 2018 at=
 3:19 AM &lt;<a href=3D"javascript:" target=3D"_blank" gdf-obfuscated-mailt=
o=3D"Xkbqrt_SBAAJ" rel=3D"nofollow" onmousedown=3D"this.href=3D&#39;javascr=
ipt:&#39;;return true;" onclick=3D"this.href=3D&#39;javascript:&#39;;return=
 true;">mihailn...@gmail.com</a>&gt; wrote:<br></div><blockquote class=3D"g=
mail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-l=
eft:1ex"><div dir=3D"ltr">There are multiple problems with &#39;\n&#39;<div=
><br></div><div>First - it is ultimately C (&quot;way&quot;)</div></div></b=
lockquote><div>This mailing list is about C++, not Java, Rust, Swift, etc.<=
/div><div>This is not an argument.</div></div></div></blockquote><div><br><=
/div><div>There is some sort of miscommunication.=C2=A0</div><div>The fact =
there no C++ way to insert a new line (only a UNIX special character way) i=
s what I state an issue,=C2=A0</div><div>considering the rest of the API=C2=
=A0</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin=
: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div=
 dir=3D"ltr"><div class=3D"gmail_quote"><div><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"><div>Second, when we introduce simple output to=
 beginners, for which cout is actually good because of overloading,</div><d=
iv>when using &#39;\n&#39; we have to introduce additional topics=C2=A0<br>=
<div>=C2=A0- the fact a char can be more the one, well, character</div><div=
>=C2=A0- special magic characters</div><div>We also create asymmetry b/w wh=
at is used to start the output std::cout (an object), to modify it (hex) an=
d what is used to end it (&quot;magic&quot;).</div></div></div></blockquote=
></div></div></blockquote><div>=C2=A0</div><blockquote class=3D"gmail_quote=
" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding=
-left: 1ex;"><div dir=3D"ltr"><div class=3D"gmail_quote"><div>What do you m=
ean, &quot;what is used to end it&quot;? A semicolon?</div></div></div></bl=
ockquote><div><br></div><div><div><font face=3D"courier new, monospace">std=
::cout=C2=A0 =C2=A0 =C2=A0//&lt; start=C2=A0</font></div><div><font face=3D=
"courier new, monospace">=C2=A0 &lt;&lt; 12.f=C2=A0</font></div><div><font =
face=3D"courier new, monospace">=C2=A0 &lt;&lt; &#39; &#39;=C2=A0</font></d=
iv><div><font face=3D"courier new, monospace">=C2=A0 &lt;&lt; std::hex //&l=
t; modify</font></div><div><font face=3D"courier new, monospace">=C2=A0 &lt=
;&lt; 255</font></div><div><font face=3D"courier new, monospace">=C2=A0 &lt=
;&lt; &#39;\n&#39;;=C2=A0 =C2=A0 //&lt; finish (magic)=C2=A0</font></div></=
div><div><br></div><div>Note that printf (and other languages) already use =
special characters to modify the output, so having an &#39;\n&#39; is not a=
brupt.</div><div><br></div><div>But C++ streams are different, having to sp=
ell out a special character is odd and unintuitive for a beginner and a des=
ign deficiency in general.=C2=A0=C2=A0</div><div><br></div><div><br></div><=
blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;bord=
er-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr"><div class=3D"=
gmail_quote"><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"ma=
rgin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"lt=
r"><div><div><br></div><div>This screams some design flaw - we should be ab=
le to insert a new lines the same way we modify the stream!</div></div></di=
v></blockquote><div>Yes, the way to do that is with &#39;\n&#39;.</div><div=
>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;b=
order-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div><div><br>=
</div><div>On its own std::endl has the flaw that it does not obey the &quo=
t;do one thing&quot; rule.</div><div>Once we deprecate it, this will shut d=
own all the naive tutorials/courses still teaching it as the default!=C2=A0=
</div><div><br></div><div><br></div><div>As for std::newline, we have optio=
ns -=C2=A0</div><div><br></div><div><font face=3D"courier new, monospace">s=
td::nl //&lt; even a beginner can &quot;read&quot; it</font></div><div><fon=
t face=3D"courier new, monospace">std::newl //&lt; orthogonal to endl</font=
></div><div><font face=3D"courier new, monospace">std::br //&lt; why not at=
 this point!</font></div><div><font face=3D"courier new, monospace">std::br=
l</font></div><div><font face=3D"courier new, monospace">std::bl</font></di=
v><div><br></div><div>Geeks can still use `\n`, but a beginner (and a teach=
er) will have a simple, <i>correct,=C2=A0</i>go-to option that models the s=
yntax already introduced (std::cout)!</div><div><br><br>On Friday, November=
 9, 2018 at 8:22:26 AM UTC+2, PeterSommerlad wrote:<blockquote class=3D"gma=
il_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;pa=
dding-left:1ex"><div dir=3D"auto">So the better way is do better teaching. =
I show my students that they should not use endl, except when they need it.=
<br><br><div dir=3D"ltr">Sent from Peter Sommerlad&#39;s<span>=C2=A0iPad</s=
pan><div><span>+41 79 432 23 32</span></div></div><div dir=3D"ltr"><br>On 8=
 Nov 2018, at 23:43, Hyman Rosen &lt;<a rel=3D"nofollow">hyman...@gmail.com=
</a>&gt; wrote:<br><br></div><blockquote type=3D"cite"><div dir=3D"ltr"><di=
v dir=3D"ltr"><div class=3D"gmail_quote"><div dir=3D"ltr">On Thu, Nov 8, 20=
18 at 5:08 PM Brian Bi &lt;<a rel=3D"nofollow">bbi...@gmail.com</a>&gt; wro=
te:</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;borde=
r-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div class=3D"gmai=
l_quote"><div>I think the reason why novices use std::endl is that they&#39=
;re under the impression (no doubt perpetuated by incompetent educators) th=
at std::endl is portable whereas &#39;\n&#39; isn&#39;t.</div></div></div><=
/blockquote><div><br>I think novices use std::endl because that&#39;s how C=
++ formatted I/O<br>was presented for ages.=C2=A0 I have the feeling, compl=
etely unsupported<br>by evidence, that the iostreams designers thought mani=
pulators were<br>really keen, and wanted to have one that would always get =
used.</div></div></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a rel=3D"nofollow">std-proposal...@isocpp.org</a>.<br>
To post to this group, send email to <a rel=3D"nofollow">std-pr...@isocpp.o=
rg</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/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxE=
DRbuJ8dqAtsX5A%40mail.gmail.com?utm_medium=3Demail&amp;utm_source=3Dfooter"=
 rel=3D"nofollow" target=3D"_blank" onmousedown=3D"this.href=3D&#39;https:/=
/groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAHSYqdYYZjeHHbRZ5bcH=
LYVsWfspwCeQ8oxEDRbuJ8dqAtsX5A%40mail.gmail.com?utm_medium\x3demail\x26utm_=
source\x3dfooter&#39;;return true;" onclick=3D"this.href=3D&#39;https://gro=
ups.google.com/a/isocpp.org/d/msgid/std-proposals/CAHSYqdYYZjeHHbRZ5bcHLYVs=
WfspwCeQ8oxEDRbuJ8dqAtsX5A%40mail.gmail.com?utm_medium\x3demail\x26utm_sour=
ce\x3dfooter&#39;;return true;">https://groups.google.com/a/<wbr>isocpp.org=
/d/msgid/std-<wbr>proposals/<wbr>CAHSYqdYYZjeHHbRZ5bcHLYVsWfspw<wbr>CeQ8oxE=
DRbuJ8dqAtsX5A%40mail.<wbr>gmail.com</a>.<br>
</div></blockquote></div></blockquote></div></div></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"javascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"=
Xkbqrt_SBAAJ" rel=3D"nofollow" onmousedown=3D"this.href=3D&#39;javascript:&=
#39;;return true;" onclick=3D"this.href=3D&#39;javascript:&#39;;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"Xkbqrt_SBAAJ" rel=3D"nofollow" onmousedown=3D"=
this.href=3D&#39;javascript:&#39;;return true;" onclick=3D"this.href=3D&#39=
;javascript:&#39;;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/b49f4c85-816b-4b35-851d-407061a8ef9f%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank" =
rel=3D"nofollow" onmousedown=3D"this.href=3D&#39;https://groups.google.com/=
a/isocpp.org/d/msgid/std-proposals/b49f4c85-816b-4b35-851d-407061a8ef9f%40i=
socpp.org?utm_medium\x3demail\x26utm_source\x3dfooter&#39;;return true;" on=
click=3D"this.href=3D&#39;https://groups.google.com/a/isocpp.org/d/msgid/st=
d-proposals/b49f4c85-816b-4b35-851d-407061a8ef9f%40isocpp.org?utm_medium\x3=
demail\x26utm_source\x3dfooter&#39;;return true;">https://groups.google.com=
/a/<wbr>isocpp.org/d/msgid/std-<wbr>proposals/b49f4c85-816b-4b35-<wbr>851d-=
407061a8ef9f%40isocpp.org</a><wbr>.<br>
</blockquote></div><br clear=3D"all"><div><br></div>-- <br><div dir=3D"ltr"=
><div dir=3D"ltr"><div><div dir=3D"ltr"><font color=3D"#c0c0c0"><i>Brian Bi=
</i></font><br><div></div><div></div><div></div></div></div></div></div></d=
iv>
</blockquote></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/7da1f33f-c2c1-482f-8fc2-c23a9767a5ec%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/7da1f33f-c2c1-482f-8fc2-c23a9767a5ec=
%40isocpp.org</a>.<br />

------=_Part_1352_1992381970.1541863474452--

------=_Part_1351_153098415.1541863474451--

.


Author: Nicolas Lesser <blitzrakete@gmail.com>
Date: Sat, 10 Nov 2018 07:28:24 -0800
Raw View
--00000000000008cec8057a511f7d
Content-Type: text/plain; charset="UTF-8"

You're going to have a hard time because the committee doesn't like
iostreams and plans on replacing them with something else.

And I don't really see a problem with \n. Sure, it's a bit old-school, but
it's clear and almost every language uses it. If you're programming you'll
going to have to learn \n eventually.

On Sat, Nov 10, 2018, 7:24 AM <mihailnajdenov@gmail.com wrote:

>
>
> On Friday, November 9, 2018 at 6:50:59 PM UTC+2, Brian Bi wrote:
>>
>>
>>
>> On Fri, Nov 9, 2018 at 3:19 AM <mihailn...@gmail.com> wrote:
>>
>>> There are multiple problems with '\n'
>>>
>>> First - it is ultimately C ("way")
>>>
>> This mailing list is about C++, not Java, Rust, Swift, etc.
>> This is not an argument.
>>
>
> There is some sort of miscommunication.
> The fact there no C++ way to insert a new line (only a UNIX special
> character way) is what I state an issue,
> considering the rest of the API
>
>
>>
>> Second, when we introduce simple output to beginners, for which cout is
>>> actually good because of overloading,
>>> when using '\n' we have to introduce additional topics
>>>  - the fact a char can be more the one, well, character
>>>  - special magic characters
>>> We also create asymmetry b/w what is used to start the output std::cout
>>> (an object), to modify it (hex) and what is used to end it ("magic").
>>>
>>
>
>> What do you mean, "what is used to end it"? A semicolon?
>>
>
> std::cout     //< start
>   << 12.f
>   << ' '
>   << std::hex //< modify
>   << 255
>   << '\n';    //< finish (magic)
>
> Note that printf (and other languages) already use special characters to
> modify the output, so having an '\n' is not abrupt.
>
> But C++ streams are different, having to spell out a special character is
> odd and unintuitive for a beginner and a design deficiency in general.
>
>
>
>>
>>>
>>> This screams some design flaw - we should be able to insert a new lines
>>> the same way we modify the stream!
>>>
>> Yes, the way to do that is with '\n'.
>>
>>
>>>
>>> On its own std::endl has the flaw that it does not obey the "do one
>>> thing" rule.
>>> Once we deprecate it, this will shut down all the naive
>>> tutorials/courses still teaching it as the default!
>>>
>>>
>>> As for std::newline, we have options -
>>>
>>> std::nl //< even a beginner can "read" it
>>> std::newl //< orthogonal to endl
>>> std::br //< why not at this point!
>>> std::brl
>>> std::bl
>>>
>>> Geeks can still use `\n`, but a beginner (and a teacher) will have a
>>> simple, *correct, *go-to option that models the syntax already
>>> introduced (std::cout)!
>>>
>>>
>>> On Friday, November 9, 2018 at 8:22:26 AM UTC+2, PeterSommerlad wrote:
>>>>
>>>> So the better way is do better teaching. I show my students that they
>>>> should not use endl, except when they need it.
>>>>
>>>> Sent from Peter Sommerlad's iPad
>>>> +41 79 432 23 32
>>>>
>>>> On 8 Nov 2018, at 23:43, Hyman Rosen <hyman...@gmail.com> wrote:
>>>>
>>>> On Thu, Nov 8, 2018 at 5:08 PM Brian Bi <bbi...@gmail.com> wrote:
>>>>
>>>>> I think the reason why novices use std::endl is that they're under the
>>>>> impression (no doubt perpetuated by incompetent educators) that std::endl
>>>>> is portable whereas '\n' isn't.
>>>>>
>>>>
>>>> I think novices use std::endl because that's how C++ formatted I/O
>>>> was presented for ages.  I have the feeling, completely unsupported
>>>> by evidence, that the iostreams designers thought manipulators were
>>>> really keen, and wanted to have one that would always get used.
>>>>
>>>> --
>>>> 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-proposal...@isocpp.org.
>>>> To post to this group, send email to std-pr...@isocpp.org.
>>>> To view this discussion on the web visit
>>>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxEDRbuJ8dqAtsX5A%40mail.gmail.com
>>>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxEDRbuJ8dqAtsX5A%40mail.gmail.com?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-proposal...@isocpp.org.
>>> To post to this group, send email to std-pr...@isocpp.org.
>>> To view this discussion on the web visit
>>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/b49f4c85-816b-4b35-851d-407061a8ef9f%40isocpp.org
>>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/b49f4c85-816b-4b35-851d-407061a8ef9f%40isocpp.org?utm_medium=email&utm_source=footer>
>>> .
>>>
>>
>>
>> --
>> *Brian Bi*
>>
> --
> 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/7da1f33f-c2c1-482f-8fc2-c23a9767a5ec%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/7da1f33f-c2c1-482f-8fc2-c23a9767a5ec%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/CALmDwq1wq9pKv3Esy4AXepnSMotfXTwoJ3BUQwHdmJza2gWP_Q%40mail.gmail.com.

--00000000000008cec8057a511f7d
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto">You&#39;re going to have a hard time because the committe=
e doesn&#39;t like iostreams and plans on replacing them with something els=
e.<div dir=3D"auto"><br></div><div dir=3D"auto">And I don&#39;t really see =
a problem with \n. Sure, it&#39;s a bit old-school, but it&#39;s clear and =
almost every language uses it. If you&#39;re programming you&#39;ll going t=
o have to learn \n eventually.</div></div><br><div class=3D"gmail_quote"><d=
iv dir=3D"ltr">On Sat, Nov 10, 2018, 7:24 AM  &lt;<a href=3D"mailto:mihailn=
ajdenov@gmail.com">mihailnajdenov@gmail.com</a> wrote:<br></div><blockquote=
 class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc soli=
d;padding-left:1ex"><div dir=3D"ltr"><br><br>On Friday, November 9, 2018 at=
 6:50:59 PM UTC+2, Brian Bi wrote:<blockquote class=3D"gmail_quote" style=
=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"=
><div dir=3D"ltr"><br><br><div class=3D"gmail_quote"><div dir=3D"ltr">On Fr=
i, Nov 9, 2018 at 3:19 AM &lt;<a rel=3D"nofollow noreferrer">mihailn...@gma=
il.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"m=
argin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"l=
tr">There are multiple problems with &#39;\n&#39;<div><br></div><div>First =
- it is ultimately C (&quot;way&quot;)</div></div></blockquote><div>This ma=
iling list is about C++, not Java, Rust, Swift, etc.</div><div>This is not =
an argument.</div></div></div></blockquote><div><br></div><div>There is som=
e sort of miscommunication.=C2=A0</div><div>The fact there no C++ way to in=
sert a new line (only a UNIX special character way) is what I state an issu=
e,=C2=A0</div><div>considering the rest of the API=C2=A0</div><div>=C2=A0</=
div><blockquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;b=
order-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div class=3D"=
gmail_quote"><div><br></div><blockquote class=3D"gmail_quote" style=3D"marg=
in:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"=
><div>Second, when we introduce simple output to beginners, for which cout =
is actually good because of overloading,</div><div>when using &#39;\n&#39; =
we have to introduce additional topics=C2=A0<br><div>=C2=A0- the fact a cha=
r can be more the one, well, character</div><div>=C2=A0- special magic char=
acters</div><div>We also create asymmetry b/w what is used to start the out=
put std::cout (an object), to modify it (hex) and what is used to end it (&=
quot;magic&quot;).</div></div></div></blockquote></div></div></blockquote><=
div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0;margin-=
left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><d=
iv class=3D"gmail_quote"><div>What do you mean, &quot;what is used to end i=
t&quot;? A semicolon?</div></div></div></blockquote><div><br></div><div><di=
v><font face=3D"courier new, monospace">std::cout=C2=A0 =C2=A0 =C2=A0//&lt;=
 start=C2=A0</font></div><div><font face=3D"courier new, monospace">=C2=A0 =
&lt;&lt; 12.f=C2=A0</font></div><div><font face=3D"courier new, monospace">=
=C2=A0 &lt;&lt; &#39; &#39;=C2=A0</font></div><div><font face=3D"courier ne=
w, monospace">=C2=A0 &lt;&lt; std::hex //&lt; modify</font></div><div><font=
 face=3D"courier new, monospace">=C2=A0 &lt;&lt; 255</font></div><div><font=
 face=3D"courier new, monospace">=C2=A0 &lt;&lt; &#39;\n&#39;;=C2=A0 =C2=A0=
 //&lt; finish (magic)=C2=A0</font></div></div><div><br></div><div>Note tha=
t printf (and other languages) already use special characters to modify the=
 output, so having an &#39;\n&#39; is not abrupt.</div><div><br></div><div>=
But C++ streams are different, having to spell out a special character is o=
dd and unintuitive for a beginner and a design deficiency in general.=C2=A0=
=C2=A0</div><div><br></div><div><br></div><blockquote class=3D"gmail_quote"=
 style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-lef=
t:1ex"><div dir=3D"ltr"><div class=3D"gmail_quote"><div>=C2=A0</div><blockq=
uote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc =
solid;padding-left:1ex"><div dir=3D"ltr"><div><div><br></div><div>This scre=
ams some design flaw - we should be able to insert a new lines the same way=
 we modify the stream!</div></div></div></blockquote><div>Yes, the way to d=
o that is with &#39;\n&#39;.</div><div>=C2=A0</div><blockquote class=3D"gma=
il_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-lef=
t:1ex"><div dir=3D"ltr"><div><div><br></div><div>On its own std::endl has t=
he flaw that it does not obey the &quot;do one thing&quot; rule.</div><div>=
Once we deprecate it, this will shut down all the naive tutorials/courses s=
till teaching it as the default!=C2=A0</div><div><br></div><div><br></div><=
div>As for std::newline, we have options -=C2=A0</div><div><br></div><div><=
font face=3D"courier new, monospace">std::nl //&lt; even a beginner can &qu=
ot;read&quot; it</font></div><div><font face=3D"courier new, monospace">std=
::newl //&lt; orthogonal to endl</font></div><div><font face=3D"courier new=
, monospace">std::br //&lt; why not at this point!</font></div><div><font f=
ace=3D"courier new, monospace">std::brl</font></div><div><font face=3D"cour=
ier new, monospace">std::bl</font></div><div><br></div><div>Geeks can still=
 use `\n`, but a beginner (and a teacher) will have a simple, <i>correct,=
=C2=A0</i>go-to option that models the syntax already introduced (std::cout=
)!</div><div><br><br>On Friday, November 9, 2018 at 8:22:26 AM UTC+2, Peter=
Sommerlad wrote:<blockquote class=3D"gmail_quote" style=3D"margin:0;margin-=
left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"auto">S=
o the better way is do better teaching. I show my students that they should=
 not use endl, except when they need it.<br><br><div dir=3D"ltr">Sent from =
Peter Sommerlad&#39;s<span>=C2=A0iPad</span><div><span>+41 79 432 23 32</sp=
an></div></div><div dir=3D"ltr"><br>On 8 Nov 2018, at 23:43, Hyman Rosen &l=
t;<a rel=3D"nofollow noreferrer">hyman...@gmail.com</a>&gt; wrote:<br><br><=
/div><blockquote type=3D"cite"><div dir=3D"ltr"><div dir=3D"ltr"><div class=
=3D"gmail_quote"><div dir=3D"ltr">On Thu, Nov 8, 2018 at 5:08 PM Brian Bi &=
lt;<a rel=3D"nofollow noreferrer">bbi...@gmail.com</a>&gt; wrote:</div><blo=
ckquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #c=
cc solid;padding-left:1ex"><div dir=3D"ltr"><div class=3D"gmail_quote"><div=
>I think the reason why novices use std::endl is that they&#39;re under the=
 impression (no doubt perpetuated by incompetent educators) that std::endl =
is portable whereas &#39;\n&#39; isn&#39;t.</div></div></div></blockquote><=
div><br>I think novices use std::endl because that&#39;s how C++ formatted =
I/O<br>was presented for ages.=C2=A0 I have the feeling, completely unsuppo=
rted<br>by evidence, that the iostreams designers thought manipulators were=
<br>really keen, and wanted to have one that would always get used.</div></=
div></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a rel=3D"nofollow noreferrer">std-proposal...@isocpp.org</a>.<br>
To post to this group, send email to <a rel=3D"nofollow noreferrer">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/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxE=
DRbuJ8dqAtsX5A%40mail.gmail.com?utm_medium=3Demail&amp;utm_source=3Dfooter"=
 rel=3D"nofollow noreferrer" target=3D"_blank">https://groups.google.com/a/=
isocpp.org/d/msgid/std-proposals/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxEDRbuJ=
8dqAtsX5A%40mail.gmail.com</a>.<br>
</div></blockquote></div></blockquote></div></div></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a rel=3D"nofollow noreferrer">std-proposal...@isocpp.org</a>.<br>
To post to this group, send email to <a rel=3D"nofollow noreferrer">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/b49f4c85-816b-4b35-851d-407061a8ef9f%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" rel=3D"nofollow no=
referrer" target=3D"_blank">https://groups.google.com/a/isocpp.org/d/msgid/=
std-proposals/b49f4c85-816b-4b35-851d-407061a8ef9f%40isocpp.org</a>.<br>
</blockquote></div><br clear=3D"all"><div><br></div>-- <br><div dir=3D"ltr"=
><div dir=3D"ltr"><div><div dir=3D"ltr"><font color=3D"#c0c0c0"><i>Brian Bi=
</i></font><br><div></div><div></div><div></div></div></div></div></div></d=
iv>
</blockquote></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org" 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/7da1f33f-c2c1-482f-8fc2-c23a9767a5ec%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank" =
rel=3D"noreferrer">https://groups.google.com/a/isocpp.org/d/msgid/std-propo=
sals/7da1f33f-c2c1-482f-8fc2-c23a9767a5ec%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&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CALmDwq1wq9pKv3Esy4AXepnSMotfXTwoJ3BU=
QwHdmJza2gWP_Q%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">htt=
ps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CALmDwq1wq9pKv3Es=
y4AXepnSMotfXTwoJ3BUQwHdmJza2gWP_Q%40mail.gmail.com</a>.<br />

--00000000000008cec8057a511f7d--

.


Author: mihailnajdenov@gmail.com
Date: Sat, 10 Nov 2018 09:02:32 -0800 (PST)
Raw View
------=_Part_1320_788556904.1541869352385
Content-Type: multipart/alternative;
 boundary="----=_Part_1321_1022228256.1541869352386"

------=_Part_1321_1022228256.1541869352386
Content-Type: text/plain; charset="UTF-8"



On Saturday, November 10, 2018 at 5:28:37 PM UTC+2, Nicolas Lesser wrote:
>
> You're going to have a hard time because the committee doesn't like
> iostreams and plans on replacing them with something else.
>

Are there any proposals in flight? I see Text Formating
<http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2018/p0645r3.html>, but
it does not include I/O (AFAICT)


>
> And I don't really see a problem with \n. Sure, it's a bit old-school, but
> it's clear and almost every language uses it. If you're programming you'll
> going to have to learn \n eventually.
>
> On Sat, Nov 10, 2018, 7:24 AM <mihailn...@gmail.com <javascript:> wrote:
>
>>
>>
>> On Friday, November 9, 2018 at 6:50:59 PM UTC+2, Brian Bi wrote:
>>>
>>>
>>>
>>> On Fri, Nov 9, 2018 at 3:19 AM <mihailn...@gmail.com> wrote:
>>>
>>>> There are multiple problems with '\n'
>>>>
>>>> First - it is ultimately C ("way")
>>>>
>>> This mailing list is about C++, not Java, Rust, Swift, etc.
>>> This is not an argument.
>>>
>>
>> There is some sort of miscommunication.
>> The fact there no C++ way to insert a new line (only a UNIX special
>> character way) is what I state an issue,
>> considering the rest of the API
>>
>>
>>>
>>> Second, when we introduce simple output to beginners, for which cout is
>>>> actually good because of overloading,
>>>> when using '\n' we have to introduce additional topics
>>>>  - the fact a char can be more the one, well, character
>>>>  - special magic characters
>>>> We also create asymmetry b/w what is used to start the output std::cout
>>>> (an object), to modify it (hex) and what is used to end it ("magic").
>>>>
>>>
>>
>>> What do you mean, "what is used to end it"? A semicolon?
>>>
>>
>> std::cout     //< start
>>   << 12.f
>>   << ' '
>>   << std::hex //< modify
>>   << 255
>>   << '\n';    //< finish (magic)
>>
>> Note that printf (and other languages) already use special characters to
>> modify the output, so having an '\n' is not abrupt.
>>
>> But C++ streams are different, having to spell out a special character is
>> odd and unintuitive for a beginner and a design deficiency in general.
>>
>>
>>
>>>
>>>>
>>>> This screams some design flaw - we should be able to insert a new lines
>>>> the same way we modify the stream!
>>>>
>>> Yes, the way to do that is with '\n'.
>>>
>>>
>>>>
>>>> On its own std::endl has the flaw that it does not obey the "do one
>>>> thing" rule.
>>>> Once we deprecate it, this will shut down all the naive
>>>> tutorials/courses still teaching it as the default!
>>>>
>>>>
>>>> As for std::newline, we have options -
>>>>
>>>> std::nl //< even a beginner can "read" it
>>>> std::newl //< orthogonal to endl
>>>> std::br //< why not at this point!
>>>> std::brl
>>>> std::bl
>>>>
>>>> Geeks can still use `\n`, but a beginner (and a teacher) will have a
>>>> simple, *correct, *go-to option that models the syntax already
>>>> introduced (std::cout)!
>>>>
>>>>
>>>> On Friday, November 9, 2018 at 8:22:26 AM UTC+2, PeterSommerlad wrote:
>>>>>
>>>>> So the better way is do better teaching. I show my students that they
>>>>> should not use endl, except when they need it.
>>>>>
>>>>> Sent from Peter Sommerlad's iPad
>>>>> +41 79 432 23 32
>>>>>
>>>>> On 8 Nov 2018, at 23:43, Hyman Rosen <hyman...@gmail.com> wrote:
>>>>>
>>>>> On Thu, Nov 8, 2018 at 5:08 PM Brian Bi <bbi...@gmail.com> wrote:
>>>>>
>>>>>> I think the reason why novices use std::endl is that they're under
>>>>>> the impression (no doubt perpetuated by incompetent educators) that
>>>>>> std::endl is portable whereas '\n' isn't.
>>>>>>
>>>>>
>>>>> I think novices use std::endl because that's how C++ formatted I/O
>>>>> was presented for ages.  I have the feeling, completely unsupported
>>>>> by evidence, that the iostreams designers thought manipulators were
>>>>> really keen, and wanted to have one that would always get used.
>>>>>
>>>>> --
>>>>> 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-proposal...@isocpp.org.
>>>>> To post to this group, send email to std-pr...@isocpp.org.
>>>>> To view this discussion on the web visit
>>>>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxEDRbuJ8dqAtsX5A%40mail.gmail.com
>>>>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxEDRbuJ8dqAtsX5A%40mail.gmail.com?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-proposal...@isocpp.org.
>>>> To post to this group, send email to std-pr...@isocpp.org.
>>>> To view this discussion on the web visit
>>>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/b49f4c85-816b-4b35-851d-407061a8ef9f%40isocpp.org
>>>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/b49f4c85-816b-4b35-851d-407061a8ef9f%40isocpp.org?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>
>>>
>>> --
>>> *Brian Bi*
>>>
>> --
>> 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-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
>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/7da1f33f-c2c1-482f-8fc2-c23a9767a5ec%40isocpp.org
>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/7da1f33f-c2c1-482f-8fc2-c23a9767a5ec%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/f7bd155a-bcbf-49f0-ac34-f0628ccf50e1%40isocpp.org.

------=_Part_1321_1022228256.1541869352386
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><br>On Saturday, November 10, 2018 at 5:28:37 PM UTC+2=
, Nicolas Lesser wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0=
;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div di=
r=3D"auto">You&#39;re going to have a hard time because the committee doesn=
&#39;t like iostreams and plans on replacing them with something else.</div=
></blockquote><div><br></div><div>Are there any proposals in flight? I see =
<a href=3D"http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2018/p0645r3.=
html">Text Formating=C2=A0</a>, but it does not include I/O (AFAICT)=C2=A0<=
/div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin: 0;=
margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=
=3D"auto"><div dir=3D"auto"><br></div><div dir=3D"auto">And I don&#39;t rea=
lly see a problem with \n. Sure, it&#39;s a bit old-school, but it&#39;s cl=
ear and almost every language uses it. If you&#39;re programming you&#39;ll=
 going to have to learn \n eventually.</div></div><br><div class=3D"gmail_q=
uote"><div dir=3D"ltr">On Sat, Nov 10, 2018, 7:24 AM  &lt;<a href=3D"javasc=
ript:" target=3D"_blank" gdf-obfuscated-mailto=3D"GZ4zrPUcBQAJ" rel=3D"nofo=
llow" onmousedown=3D"this.href=3D&#39;javascript:&#39;;return true;" onclic=
k=3D"this.href=3D&#39;javascript:&#39;;return true;">mihailn...@gmail.com</=
a> 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"><br><br>=
On Friday, November 9, 2018 at 6:50:59 PM UTC+2, Brian Bi wrote:<blockquote=
 class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px =
#ccc solid;padding-left:1ex"><div dir=3D"ltr"><br><br><div class=3D"gmail_q=
uote"><div dir=3D"ltr">On Fri, Nov 9, 2018 at 3:19 AM &lt;<a rel=3D"nofollo=
w noreferrer">mihailn...@gmail.com</a>&gt; wrote:<br></div><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;pad=
ding-left:1ex"><div dir=3D"ltr">There are multiple problems with &#39;\n&#3=
9;<div><br></div><div>First - it is ultimately C (&quot;way&quot;)</div></d=
iv></blockquote><div>This mailing list is about C++, not Java, Rust, Swift,=
 etc.</div><div>This is not an argument.</div></div></div></blockquote><div=
><br></div><div>There is some sort of miscommunication.=C2=A0</div><div>The=
 fact there no C++ way to insert a new line (only a UNIX special character =
way) is what I state an issue,=C2=A0</div><div>considering the rest of the =
API=C2=A0</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"=
margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><di=
v dir=3D"ltr"><div class=3D"gmail_quote"><div><br></div><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex"><div dir=3D"ltr"><div>Second, when we introduce simple output=
 to beginners, for which cout is actually good because of overloading,</div=
><div>when using &#39;\n&#39; we have to introduce additional topics=C2=A0<=
br><div>=C2=A0- the fact a char can be more the one, well, character</div><=
div>=C2=A0- special magic characters</div><div>We also create asymmetry b/w=
 what is used to start the output std::cout (an object), to modify it (hex)=
 and what is used to end it (&quot;magic&quot;).</div></div></div></blockqu=
ote></div></div></blockquote><div>=C2=A0</div><blockquote class=3D"gmail_qu=
ote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding=
-left:1ex"><div dir=3D"ltr"><div class=3D"gmail_quote"><div>What do you mea=
n, &quot;what is used to end it&quot;? A semicolon?</div></div></div></bloc=
kquote><div><br></div><div><div><font face=3D"courier new, monospace">std::=
cout=C2=A0 =C2=A0 =C2=A0//&lt; start=C2=A0</font></div><div><font face=3D"c=
ourier new, monospace">=C2=A0 &lt;&lt; 12.f=C2=A0</font></div><div><font fa=
ce=3D"courier new, monospace">=C2=A0 &lt;&lt; &#39; &#39;=C2=A0</font></div=
><div><font face=3D"courier new, monospace">=C2=A0 &lt;&lt; std::hex //&lt;=
 modify</font></div><div><font face=3D"courier new, monospace">=C2=A0 &lt;&=
lt; 255</font></div><div><font face=3D"courier new, monospace">=C2=A0 &lt;&=
lt; &#39;\n&#39;;=C2=A0 =C2=A0 //&lt; finish (magic)=C2=A0</font></div></di=
v><div><br></div><div>Note that printf (and other languages) already use sp=
ecial characters to modify the output, so having an &#39;\n&#39; is not abr=
upt.</div><div><br></div><div>But C++ streams are different, having to spel=
l out a special character is odd and unintuitive for a beginner and a desig=
n deficiency in general.=C2=A0=C2=A0</div><div><br></div><div><br></div><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-l=
eft:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div class=3D"gmail_q=
uote"><div>=C2=A0</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"><div=
><div><br></div><div>This screams some design flaw - we should be able to i=
nsert a new lines the same way we modify the stream!</div></div></div></blo=
ckquote><div>Yes, the way to do that is with &#39;\n&#39;.</div><div>=C2=A0=
</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-l=
eft:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div><div><br></div><=
div>On its own std::endl has the flaw that it does not obey the &quot;do on=
e thing&quot; rule.</div><div>Once we deprecate it, this will shut down all=
 the naive tutorials/courses still teaching it as the default!=C2=A0</div><=
div><br></div><div><br></div><div>As for std::newline, we have options -=C2=
=A0</div><div><br></div><div><font face=3D"courier new, monospace">std::nl =
//&lt; even a beginner can &quot;read&quot; it</font></div><div><font face=
=3D"courier new, monospace">std::newl //&lt; orthogonal to endl</font></div=
><div><font face=3D"courier new, monospace">std::br //&lt; why not at this =
point!</font></div><div><font face=3D"courier new, monospace">std::brl</fon=
t></div><div><font face=3D"courier new, monospace">std::bl</font></div><div=
><br></div><div>Geeks can still use `\n`, but a beginner (and a teacher) wi=
ll have a simple, <i>correct,=C2=A0</i>go-to option that models the syntax =
already introduced (std::cout)!</div><div><br><br>On Friday, November 9, 20=
18 at 8:22:26 AM UTC+2, PeterSommerlad wrote:<blockquote class=3D"gmail_quo=
te" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-=
left:1ex"><div dir=3D"auto">So the better way is do better teaching. I show=
 my students that they should not use endl, except when they need it.<br><b=
r><div dir=3D"ltr">Sent from Peter Sommerlad&#39;s<span>=C2=A0iPad</span><d=
iv><span>+41 79 432 23 32</span></div></div><div dir=3D"ltr"><br>On 8 Nov 2=
018, at 23:43, Hyman Rosen &lt;<a rel=3D"nofollow noreferrer">hyman...@gmai=
l.com</a>&gt; wrote:<br><br></div><blockquote type=3D"cite"><div dir=3D"ltr=
"><div dir=3D"ltr"><div class=3D"gmail_quote"><div dir=3D"ltr">On Thu, Nov =
8, 2018 at 5:08 PM Brian Bi &lt;<a rel=3D"nofollow noreferrer">bbi...@gmail=
..com</a>&gt; wrote:</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"><d=
iv class=3D"gmail_quote"><div>I think the reason why novices use std::endl =
is that they&#39;re under the impression (no doubt perpetuated by incompete=
nt educators) that std::endl is portable whereas &#39;\n&#39; isn&#39;t.</d=
iv></div></div></blockquote><div><br>I think novices use std::endl because =
that&#39;s how C++ formatted I/O<br>was presented for ages.=C2=A0 I have th=
e feeling, completely unsupported<br>by evidence, that the iostreams design=
ers thought manipulators were<br>really keen, and wanted to have one that w=
ould always get used.</div></div></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a rel=3D"nofollow noreferrer">std-proposal...@isocpp.org</a>.<br>
To post to this group, send email to <a rel=3D"nofollow noreferrer">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/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxE=
DRbuJ8dqAtsX5A%40mail.gmail.com?utm_medium=3Demail&amp;utm_source=3Dfooter"=
 rel=3D"nofollow" target=3D"_blank" onmousedown=3D"this.href=3D&#39;https:/=
/groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAHSYqdYYZjeHHbRZ5bcH=
LYVsWfspwCeQ8oxEDRbuJ8dqAtsX5A%40mail.gmail.com?utm_medium\x3demail\x26utm_=
source\x3dfooter&#39;;return true;" onclick=3D"this.href=3D&#39;https://gro=
ups.google.com/a/isocpp.org/d/msgid/std-proposals/CAHSYqdYYZjeHHbRZ5bcHLYVs=
WfspwCeQ8oxEDRbuJ8dqAtsX5A%40mail.gmail.com?utm_medium\x3demail\x26utm_sour=
ce\x3dfooter&#39;;return true;">https://groups.google.com/a/<wbr>isocpp.org=
/d/msgid/std-<wbr>proposals/<wbr>CAHSYqdYYZjeHHbRZ5bcHLYVsWfspw<wbr>CeQ8oxE=
DRbuJ8dqAtsX5A%40mail.<wbr>gmail.com</a>.<br>
</div></blockquote></div></blockquote></div></div></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a rel=3D"nofollow noreferrer">std-proposal...@isocpp.org</a>.<br>
To post to this group, send email to <a rel=3D"nofollow noreferrer">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/b49f4c85-816b-4b35-851d-407061a8ef9f%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" rel=3D"nofollow" t=
arget=3D"_blank" onmousedown=3D"this.href=3D&#39;https://groups.google.com/=
a/isocpp.org/d/msgid/std-proposals/b49f4c85-816b-4b35-851d-407061a8ef9f%40i=
socpp.org?utm_medium\x3demail\x26utm_source\x3dfooter&#39;;return true;" on=
click=3D"this.href=3D&#39;https://groups.google.com/a/isocpp.org/d/msgid/st=
d-proposals/b49f4c85-816b-4b35-851d-407061a8ef9f%40isocpp.org?utm_medium\x3=
demail\x26utm_source\x3dfooter&#39;;return true;">https://groups.google.com=
/a/<wbr>isocpp.org/d/msgid/std-<wbr>proposals/b49f4c85-816b-4b35-<wbr>851d-=
407061a8ef9f%40isocpp.org</a><wbr>.<br>
</blockquote></div><br clear=3D"all"><div><br></div>-- <br><div dir=3D"ltr"=
><div dir=3D"ltr"><div><div dir=3D"ltr"><font color=3D"#c0c0c0"><i>Brian Bi=
</i></font><br><div></div><div></div><div></div></div></div></div></div></d=
iv>
</blockquote></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"javascript:" rel=3D"nofollow" target=3D"_blank" gdf-obfu=
scated-mailto=3D"GZ4zrPUcBQAJ" onmousedown=3D"this.href=3D&#39;javascript:&=
#39;;return true;" onclick=3D"this.href=3D&#39;javascript:&#39;;return true=
;">std-proposal...@<wbr>isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"javascript:" rel=3D"nofollo=
w" target=3D"_blank" gdf-obfuscated-mailto=3D"GZ4zrPUcBQAJ" onmousedown=3D"=
this.href=3D&#39;javascript:&#39;;return true;" onclick=3D"this.href=3D&#39=
;javascript:&#39;;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/7da1f33f-c2c1-482f-8fc2-c23a9767a5ec%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" rel=3D"nofollow" t=
arget=3D"_blank" onmousedown=3D"this.href=3D&#39;https://groups.google.com/=
a/isocpp.org/d/msgid/std-proposals/7da1f33f-c2c1-482f-8fc2-c23a9767a5ec%40i=
socpp.org?utm_medium\x3demail\x26utm_source\x3dfooter&#39;;return true;" on=
click=3D"this.href=3D&#39;https://groups.google.com/a/isocpp.org/d/msgid/st=
d-proposals/7da1f33f-c2c1-482f-8fc2-c23a9767a5ec%40isocpp.org?utm_medium\x3=
demail\x26utm_source\x3dfooter&#39;;return true;">https://groups.google.com=
/a/<wbr>isocpp.org/d/msgid/std-<wbr>proposals/7da1f33f-c2c1-482f-<wbr>8fc2-=
c23a9767a5ec%40isocpp.org</a><wbr>.<br>
</blockquote></div>
</blockquote></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/f7bd155a-bcbf-49f0-ac34-f0628ccf50e1%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/f7bd155a-bcbf-49f0-ac34-f0628ccf50e1=
%40isocpp.org</a>.<br />

------=_Part_1321_1022228256.1541869352386--

------=_Part_1320_788556904.1541869352385--

.


Author: Nicolas Lesser <blitzrakete@gmail.com>
Date: Sat, 10 Nov 2018 09:04:49 -0800
Raw View
--000000000000db2c34057a5277ce
Content-Type: text/plain; charset="UTF-8"

On Sat, Nov 10, 2018, 9:02 AM <mihailnajdenov@gmail.com wrote:

>
>
> On Saturday, November 10, 2018 at 5:28:37 PM UTC+2, Nicolas Lesser wrote:
>>
>> You're going to have a hard time because the committee doesn't like
>> iostreams and plans on replacing them with something else.
>>
>
> Are there any proposals in flight? I see Text Formating
> <http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2018/p0645r3.html>,
> but it does not include I/O (AFAICT)
>

I don't actually know. It's just what I've been hearing. Don't know how
accurate that is though...

>
>
>>
>> And I don't really see a problem with \n. Sure, it's a bit old-school,
>> but it's clear and almost every language uses it. If you're programming
>> you'll going to have to learn \n eventually.
>>
>> On Sat, Nov 10, 2018, 7:24 AM <mihailn...@gmail.com wrote:
>>
>>>
>>>
>>> On Friday, November 9, 2018 at 6:50:59 PM UTC+2, Brian Bi wrote:
>>>>
>>>>
>>>>
>>>> On Fri, Nov 9, 2018 at 3:19 AM <mihailn...@gmail.com> wrote:
>>>>
>>>>> There are multiple problems with '\n'
>>>>>
>>>>> First - it is ultimately C ("way")
>>>>>
>>>> This mailing list is about C++, not Java, Rust, Swift, etc.
>>>> This is not an argument.
>>>>
>>>
>>> There is some sort of miscommunication.
>>> The fact there no C++ way to insert a new line (only a UNIX special
>>> character way) is what I state an issue,
>>> considering the rest of the API
>>>
>>>
>>>>
>>>> Second, when we introduce simple output to beginners, for which cout is
>>>>> actually good because of overloading,
>>>>> when using '\n' we have to introduce additional topics
>>>>>  - the fact a char can be more the one, well, character
>>>>>  - special magic characters
>>>>> We also create asymmetry b/w what is used to start the output
>>>>> std::cout (an object), to modify it (hex) and what is used to end it
>>>>> ("magic").
>>>>>
>>>>
>>>
>>>> What do you mean, "what is used to end it"? A semicolon?
>>>>
>>>
>>> std::cout     //< start
>>>   << 12.f
>>>   << ' '
>>>   << std::hex //< modify
>>>   << 255
>>>   << '\n';    //< finish (magic)
>>>
>>> Note that printf (and other languages) already use special characters to
>>> modify the output, so having an '\n' is not abrupt.
>>>
>>> But C++ streams are different, having to spell out a special character
>>> is odd and unintuitive for a beginner and a design deficiency in general.
>>>
>>>
>>>
>>>>
>>>>>
>>>>> This screams some design flaw - we should be able to insert a new
>>>>> lines the same way we modify the stream!
>>>>>
>>>> Yes, the way to do that is with '\n'.
>>>>
>>>>
>>>>>
>>>>> On its own std::endl has the flaw that it does not obey the "do one
>>>>> thing" rule.
>>>>> Once we deprecate it, this will shut down all the naive
>>>>> tutorials/courses still teaching it as the default!
>>>>>
>>>>>
>>>>> As for std::newline, we have options -
>>>>>
>>>>> std::nl //< even a beginner can "read" it
>>>>> std::newl //< orthogonal to endl
>>>>> std::br //< why not at this point!
>>>>> std::brl
>>>>> std::bl
>>>>>
>>>>> Geeks can still use `\n`, but a beginner (and a teacher) will have a
>>>>> simple, *correct, *go-to option that models the syntax already
>>>>> introduced (std::cout)!
>>>>>
>>>>>
>>>>> On Friday, November 9, 2018 at 8:22:26 AM UTC+2, PeterSommerlad wrote:
>>>>>>
>>>>>> So the better way is do better teaching. I show my students that they
>>>>>> should not use endl, except when they need it.
>>>>>>
>>>>>> Sent from Peter Sommerlad's iPad
>>>>>> +41 79 432 23 32
>>>>>>
>>>>>> On 8 Nov 2018, at 23:43, Hyman Rosen <hyman...@gmail.com> wrote:
>>>>>>
>>>>>> On Thu, Nov 8, 2018 at 5:08 PM Brian Bi <bbi...@gmail.com> wrote:
>>>>>>
>>>>>>> I think the reason why novices use std::endl is that they're under
>>>>>>> the impression (no doubt perpetuated by incompetent educators) that
>>>>>>> std::endl is portable whereas '\n' isn't.
>>>>>>>
>>>>>>
>>>>>> I think novices use std::endl because that's how C++ formatted I/O
>>>>>> was presented for ages.  I have the feeling, completely unsupported
>>>>>> by evidence, that the iostreams designers thought manipulators were
>>>>>> really keen, and wanted to have one that would always get used.
>>>>>>
>>>>>> --
>>>>>> 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-proposal...@isocpp.org.
>>>>>> To post to this group, send email to std-pr...@isocpp.org.
>>>>>> To view this discussion on the web visit
>>>>>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxEDRbuJ8dqAtsX5A%40mail.gmail.com
>>>>>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxEDRbuJ8dqAtsX5A%40mail.gmail.com?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-proposal...@isocpp.org.
>>>>> To post to this group, send email to std-pr...@isocpp.org.
>>>>> To view this discussion on the web visit
>>>>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/b49f4c85-816b-4b35-851d-407061a8ef9f%40isocpp.org
>>>>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/b49f4c85-816b-4b35-851d-407061a8ef9f%40isocpp.org?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>>
>>>>
>>>> --
>>>> *Brian Bi*
>>>>
>>> --
>>> 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-proposal...@isocpp.org.
>>> To post to this group, send email to std-pr...@isocpp.org.
>>> To view this discussion on the web visit
>>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/7da1f33f-c2c1-482f-8fc2-c23a9767a5ec%40isocpp.org
>>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/7da1f33f-c2c1-482f-8fc2-c23a9767a5ec%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/f7bd155a-bcbf-49f0-ac34-f0628ccf50e1%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/f7bd155a-bcbf-49f0-ac34-f0628ccf50e1%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/CALmDwq1jR7r2m6fFVVDMzjwDkfptcDN6bZF8mr9z%2BkYcteLaNA%40mail.gmail.com.

--000000000000db2c34057a5277ce
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto"><div><br><br><div class=3D"gmail_quote"><div dir=3D"ltr">=
On Sat, Nov 10, 2018, 9:02 AM  &lt;<a href=3D"mailto:mihailnajdenov@gmail.c=
om">mihailnajdenov@gmail.com</a> 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"><br><br>On Saturday, November 10, 2018 at 5:28:37 PM =
UTC+2, Nicolas Lesser wrote:<blockquote class=3D"gmail_quote" style=3D"marg=
in:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><div di=
r=3D"auto">You&#39;re going to have a hard time because the committee doesn=
&#39;t like iostreams and plans on replacing them with something else.</div=
></blockquote><div><br></div><div>Are there any proposals in flight? I see =
<a href=3D"http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2018/p0645r3.=
html" target=3D"_blank" rel=3D"noreferrer">Text Formating=C2=A0</a>, but it=
 does not include I/O (AFAICT)=C2=A0</div></div></blockquote></div></div><d=
iv dir=3D"auto"><br></div><div dir=3D"auto">I don&#39;t actually know. It&#=
39;s just what I&#39;ve been hearing. Don&#39;t know how accurate that is t=
hough...=C2=A0</div><div dir=3D"auto"><div class=3D"gmail_quote"><blockquot=
e class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc sol=
id;padding-left:1ex"><div dir=3D"ltr"><div>=C2=A0</div><blockquote class=3D=
"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc soli=
d;padding-left:1ex"><div dir=3D"auto"><div dir=3D"auto"><br></div><div dir=
=3D"auto">And I don&#39;t really see a problem with \n. Sure, it&#39;s a bi=
t old-school, but it&#39;s clear and almost every language uses it. If you&=
#39;re programming you&#39;ll going to have to learn \n eventually.</div></=
div><br><div class=3D"gmail_quote"><div dir=3D"ltr">On Sat, Nov 10, 2018, 7=
:24 AM  &lt;<a rel=3D"nofollow noreferrer">mihailn...@gmail.com</a> wrote:<=
br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;borde=
r-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><br><br>On Friday,=
 November 9, 2018 at 6:50:59 PM UTC+2, Brian Bi wrote:<blockquote class=3D"=
gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid=
;padding-left:1ex"><div dir=3D"ltr"><br><br><div class=3D"gmail_quote"><div=
 dir=3D"ltr">On Fri, Nov 9, 2018 at 3:19 AM &lt;<a rel=3D"nofollow noreferr=
er noreferrer">mihailn...@gmail.com</a>&gt; wrote:<br></div><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">There are multiple problems with &#39;\n&#=
39;<div><br></div><div>First - it is ultimately C (&quot;way&quot;)</div></=
div></blockquote><div>This mailing list is about C++, not Java, Rust, Swift=
, etc.</div><div>This is not an argument.</div></div></div></blockquote><di=
v><br></div><div>There is some sort of miscommunication.=C2=A0</div><div>Th=
e fact there no C++ way to insert a new line (only a UNIX special character=
 way) is what I state an issue,=C2=A0</div><div>considering the rest of the=
 API=C2=A0</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D=
"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><d=
iv dir=3D"ltr"><div class=3D"gmail_quote"><div><br></div><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex"><div dir=3D"ltr"><div>Second, when we introduce simple output=
 to beginners, for which cout is actually good because of overloading,</div=
><div>when using &#39;\n&#39; we have to introduce additional topics=C2=A0<=
br><div>=C2=A0- the fact a char can be more the one, well, character</div><=
div>=C2=A0- special magic characters</div><div>We also create asymmetry b/w=
 what is used to start the output std::cout (an object), to modify it (hex)=
 and what is used to end it (&quot;magic&quot;).</div></div></div></blockqu=
ote></div></div></blockquote><div>=C2=A0</div><blockquote class=3D"gmail_qu=
ote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding=
-left:1ex"><div dir=3D"ltr"><div class=3D"gmail_quote"><div>What do you mea=
n, &quot;what is used to end it&quot;? A semicolon?</div></div></div></bloc=
kquote><div><br></div><div><div><font face=3D"courier new, monospace">std::=
cout=C2=A0 =C2=A0 =C2=A0//&lt; start=C2=A0</font></div><div><font face=3D"c=
ourier new, monospace">=C2=A0 &lt;&lt; 12.f=C2=A0</font></div><div><font fa=
ce=3D"courier new, monospace">=C2=A0 &lt;&lt; &#39; &#39;=C2=A0</font></div=
><div><font face=3D"courier new, monospace">=C2=A0 &lt;&lt; std::hex //&lt;=
 modify</font></div><div><font face=3D"courier new, monospace">=C2=A0 &lt;&=
lt; 255</font></div><div><font face=3D"courier new, monospace">=C2=A0 &lt;&=
lt; &#39;\n&#39;;=C2=A0 =C2=A0 //&lt; finish (magic)=C2=A0</font></div></di=
v><div><br></div><div>Note that printf (and other languages) already use sp=
ecial characters to modify the output, so having an &#39;\n&#39; is not abr=
upt.</div><div><br></div><div>But C++ streams are different, having to spel=
l out a special character is odd and unintuitive for a beginner and a desig=
n deficiency in general.=C2=A0=C2=A0</div><div><br></div><div><br></div><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-l=
eft:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div class=3D"gmail_q=
uote"><div>=C2=A0</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"><div=
><div><br></div><div>This screams some design flaw - we should be able to i=
nsert a new lines the same way we modify the stream!</div></div></div></blo=
ckquote><div>Yes, the way to do that is with &#39;\n&#39;.</div><div>=C2=A0=
</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-l=
eft:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div><div><br></div><=
div>On its own std::endl has the flaw that it does not obey the &quot;do on=
e thing&quot; rule.</div><div>Once we deprecate it, this will shut down all=
 the naive tutorials/courses still teaching it as the default!=C2=A0</div><=
div><br></div><div><br></div><div>As for std::newline, we have options -=C2=
=A0</div><div><br></div><div><font face=3D"courier new, monospace">std::nl =
//&lt; even a beginner can &quot;read&quot; it</font></div><div><font face=
=3D"courier new, monospace">std::newl //&lt; orthogonal to endl</font></div=
><div><font face=3D"courier new, monospace">std::br //&lt; why not at this =
point!</font></div><div><font face=3D"courier new, monospace">std::brl</fon=
t></div><div><font face=3D"courier new, monospace">std::bl</font></div><div=
><br></div><div>Geeks can still use `\n`, but a beginner (and a teacher) wi=
ll have a simple, <i>correct,=C2=A0</i>go-to option that models the syntax =
already introduced (std::cout)!</div><div><br><br>On Friday, November 9, 20=
18 at 8:22:26 AM UTC+2, PeterSommerlad wrote:<blockquote class=3D"gmail_quo=
te" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-=
left:1ex"><div dir=3D"auto">So the better way is do better teaching. I show=
 my students that they should not use endl, except when they need it.<br><b=
r><div dir=3D"ltr">Sent from Peter Sommerlad&#39;s<span>=C2=A0iPad</span><d=
iv><span>+41 79 432 23 32</span></div></div><div dir=3D"ltr"><br>On 8 Nov 2=
018, at 23:43, Hyman Rosen &lt;<a rel=3D"nofollow noreferrer noreferrer">hy=
man...@gmail.com</a>&gt; wrote:<br><br></div><blockquote type=3D"cite"><div=
 dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_quote"><div dir=3D"ltr">O=
n Thu, Nov 8, 2018 at 5:08 PM Brian Bi &lt;<a rel=3D"nofollow noreferrer no=
referrer">bbi...@gmail.com</a>&gt; wrote:</div><blockquote class=3D"gmail_q=
uote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1e=
x"><div dir=3D"ltr"><div class=3D"gmail_quote"><div>I think the reason why =
novices use std::endl is that they&#39;re under the impression (no doubt pe=
rpetuated by incompetent educators) that std::endl is portable whereas &#39=
;\n&#39; isn&#39;t.</div></div></div></blockquote><div><br>I think novices =
use std::endl because that&#39;s how C++ formatted I/O<br>was presented for=
 ages.=C2=A0 I have the feeling, completely unsupported<br>by evidence, tha=
t the iostreams designers thought manipulators were<br>really keen, and wan=
ted to have one that would always get used.</div></div></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a rel=3D"nofollow noreferrer noreferrer">std-proposal...@isocpp.or=
g</a>.<br>
To post to this group, send email to <a rel=3D"nofollow noreferrer noreferr=
er">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/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxE=
DRbuJ8dqAtsX5A%40mail.gmail.com?utm_medium=3Demail&amp;utm_source=3Dfooter"=
 rel=3D"nofollow noreferrer" target=3D"_blank">https://groups.google.com/a/=
isocpp.org/d/msgid/std-proposals/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxEDRbuJ=
8dqAtsX5A%40mail.gmail.com</a>.<br>
</div></blockquote></div></blockquote></div></div></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a rel=3D"nofollow noreferrer noreferrer">std-proposal...@isocpp.or=
g</a>.<br>
To post to this group, send email to <a rel=3D"nofollow noreferrer noreferr=
er">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/b49f4c85-816b-4b35-851d-407061a8ef9f%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" rel=3D"nofollow no=
referrer" target=3D"_blank">https://groups.google.com/a/isocpp.org/d/msgid/=
std-proposals/b49f4c85-816b-4b35-851d-407061a8ef9f%40isocpp.org</a>.<br>
</blockquote></div><br clear=3D"all"><div><br></div>-- <br><div dir=3D"ltr"=
><div dir=3D"ltr"><div><div dir=3D"ltr"><font color=3D"#c0c0c0"><i>Brian Bi=
</i></font><br><div></div><div></div><div></div></div></div></div></div></d=
iv>
</blockquote></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a rel=3D"nofollow noreferrer">std-proposal...@isocpp.org</a>.<br>
To post to this group, send email to <a rel=3D"nofollow noreferrer">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/7da1f33f-c2c1-482f-8fc2-c23a9767a5ec%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" rel=3D"nofollow no=
referrer" target=3D"_blank">https://groups.google.com/a/isocpp.org/d/msgid/=
std-proposals/7da1f33f-c2c1-482f-8fc2-c23a9767a5ec%40isocpp.org</a>.<br>
</blockquote></div>
</blockquote></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org" 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/f7bd155a-bcbf-49f0-ac34-f0628ccf50e1%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank" =
rel=3D"noreferrer">https://groups.google.com/a/isocpp.org/d/msgid/std-propo=
sals/f7bd155a-bcbf-49f0-ac34-f0628ccf50e1%40isocpp.org</a>.<br>
</blockquote></div></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CALmDwq1jR7r2m6fFVVDMzjwDkfptcDN6bZF8=
mr9z%2BkYcteLaNA%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">h=
ttps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CALmDwq1jR7r2m6=
fFVVDMzjwDkfptcDN6bZF8mr9z%2BkYcteLaNA%40mail.gmail.com</a>.<br />

--000000000000db2c34057a5277ce--

.


Author: Brian Bi <bbi5291@gmail.com>
Date: Sun, 11 Nov 2018 16:38:15 -0500
Raw View
--000000000000ad2b00057a6a6797
Content-Type: text/plain; charset="UTF-8"

On Sat, Nov 10, 2018 at 10:24 AM <mihailnajdenov@gmail.com> wrote:

>
>
> On Friday, November 9, 2018 at 6:50:59 PM UTC+2, Brian Bi wrote:
>>
>>
>>
>> On Fri, Nov 9, 2018 at 3:19 AM <mihailn...@gmail.com> wrote:
>>
>>> There are multiple problems with '\n'
>>>
>>> First - it is ultimately C ("way")
>>>
>> This mailing list is about C++, not Java, Rust, Swift, etc.
>> This is not an argument.
>>
>
> There is some sort of miscommunication.
> The fact there no C++ way to insert a new line (only a UNIX special
> character way) is what I state an issue,
> considering the rest of the API
>

'\n' is standard C, which became standard C++ about 20 years ago. I don't
see the issue.


>
>
>>
>> Second, when we introduce simple output to beginners, for which cout is
>>> actually good because of overloading,
>>> when using '\n' we have to introduce additional topics
>>>  - the fact a char can be more the one, well, character
>>>  - special magic characters
>>> We also create asymmetry b/w what is used to start the output std::cout
>>> (an object), to modify it (hex) and what is used to end it ("magic").
>>>
>>
>
>> What do you mean, "what is used to end it"? A semicolon?
>>
>
> std::cout     //< start
>   << 12.f
>   << ' '
>   << std::hex //< modify
>   << 255
>   << '\n';    //< finish (magic)
>
>
Note that printf (and other languages) already use special characters to
> modify the output, so having an '\n' is not abrupt.
>
> But C++ streams are different, having to spell out a special character is
> odd and unintuitive for a beginner and a design deficiency in general.
>

It's only "magic" if you teach beginners that '\n' is a special magic
command, rather than the literal representation of the newline character.


>
>
>
>
>>
>>>
>>> This screams some design flaw - we should be able to insert a new lines
>>> the same way we modify the stream!
>>>
>> Yes, the way to do that is with '\n'.
>>
>>
>>>
>>> On its own std::endl has the flaw that it does not obey the "do one
>>> thing" rule.
>>> Once we deprecate it, this will shut down all the naive
>>> tutorials/courses still teaching it as the default!
>>>
>>>
>>> As for std::newline, we have options -
>>>
>>> std::nl //< even a beginner can "read" it
>>> std::newl //< orthogonal to endl
>>> std::br //< why not at this point!
>>> std::brl
>>> std::bl
>>>
>>> Geeks can still use `\n`, but a beginner (and a teacher) will have a
>>> simple, *correct, *go-to option that models the syntax already
>>> introduced (std::cout)!
>>>
>>>
>>> On Friday, November 9, 2018 at 8:22:26 AM UTC+2, PeterSommerlad wrote:
>>>>
>>>> So the better way is do better teaching. I show my students that they
>>>> should not use endl, except when they need it.
>>>>
>>>> Sent from Peter Sommerlad's iPad
>>>> +41 79 432 23 32
>>>>
>>>> On 8 Nov 2018, at 23:43, Hyman Rosen <hyman...@gmail.com> wrote:
>>>>
>>>> On Thu, Nov 8, 2018 at 5:08 PM Brian Bi <bbi...@gmail.com> wrote:
>>>>
>>>>> I think the reason why novices use std::endl is that they're under the
>>>>> impression (no doubt perpetuated by incompetent educators) that std::endl
>>>>> is portable whereas '\n' isn't.
>>>>>
>>>>
>>>> I think novices use std::endl because that's how C++ formatted I/O
>>>> was presented for ages.  I have the feeling, completely unsupported
>>>> by evidence, that the iostreams designers thought manipulators were
>>>> really keen, and wanted to have one that would always get used.
>>>>
>>>> --
>>>> 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-proposal...@isocpp.org.
>>>> To post to this group, send email to std-pr...@isocpp.org.
>>>> To view this discussion on the web visit
>>>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxEDRbuJ8dqAtsX5A%40mail.gmail.com
>>>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxEDRbuJ8dqAtsX5A%40mail.gmail.com?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-proposal...@isocpp.org.
>>> To post to this group, send email to std-pr...@isocpp.org.
>>> To view this discussion on the web visit
>>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/b49f4c85-816b-4b35-851d-407061a8ef9f%40isocpp.org
>>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/b49f4c85-816b-4b35-851d-407061a8ef9f%40isocpp.org?utm_medium=email&utm_source=footer>
>>> .
>>>
>>
>>
>> --
>> *Brian Bi*
>>
> --
> 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/7da1f33f-c2c1-482f-8fc2-c23a9767a5ec%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/7da1f33f-c2c1-482f-8fc2-c23a9767a5ec%40isocpp.org?utm_medium=email&utm_source=footer>
> .
>


--
*Brian Bi*

--
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/CAMmfjbMHae%3DpbG7LMjjjqWAE-5Zaiwi3rpWXr-HpwBRo0bjvfA%40mail.gmail.com.

--000000000000ad2b00057a6a6797
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_quote"><div dir=3D"ltr">On Sat, Nov 10=
, 2018 at 10:24 AM &lt;<a href=3D"mailto:mihailnajdenov@gmail.com">mihailna=
jdenov@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"><di=
v dir=3D"ltr"><br><br>On Friday, November 9, 2018 at 6:50:59 PM UTC+2, Bria=
n Bi wrote:<blockquote class=3D"gmail_quote" style=3D"margin:0;margin-left:=
0.8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><br><br=
><div class=3D"gmail_quote"><div dir=3D"ltr">On Fri, Nov 9, 2018 at 3:19 AM=
 &lt;<a rel=3D"nofollow">mihailn...@gmail.com</a>&gt; wrote:<br></div><bloc=
kquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #cc=
c solid;padding-left:1ex"><div dir=3D"ltr">There are multiple problems with=
 &#39;\n&#39;<div><br></div><div>First - it is ultimately C (&quot;way&quot=
;)</div></div></blockquote><div>This mailing list is about C++, not Java, R=
ust, Swift, etc.</div><div>This is not an argument.</div></div></div></bloc=
kquote><div><br></div><div>There is some sort of miscommunication.=C2=A0</d=
iv><div>The fact there no C++ way to insert a new line (only a UNIX special=
 character way) is what I state an issue,=C2=A0</div><div>considering the r=
est of the API=C2=A0</div></div></blockquote><div><br></div><div>&#39;\n&#3=
9; is standard C, which became standard C++ about 20 years ago. I don&#39;t=
 see the issue.<br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote"=
 style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><d=
iv dir=3D"ltr"><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"=
margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><di=
v dir=3D"ltr"><div class=3D"gmail_quote"><div><br></div><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex"><div dir=3D"ltr"><div>Second, when we introduce simple output=
 to beginners, for which cout is actually good because of overloading,</div=
><div>when using &#39;\n&#39; we have to introduce additional topics=C2=A0<=
br><div>=C2=A0- the fact a char can be more the one, well, character</div><=
div>=C2=A0- special magic characters</div><div>We also create asymmetry b/w=
 what is used to start the output std::cout (an object), to modify it (hex)=
 and what is used to end it (&quot;magic&quot;).</div></div></div></blockqu=
ote></div></div></blockquote><div>=C2=A0</div><blockquote class=3D"gmail_qu=
ote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding=
-left:1ex"><div dir=3D"ltr"><div class=3D"gmail_quote"><div>What do you mea=
n, &quot;what is used to end it&quot;? A semicolon?</div></div></div></bloc=
kquote><div><br></div><div><div><font face=3D"courier new, monospace">std::=
cout=C2=A0 =C2=A0 =C2=A0//&lt; start=C2=A0</font></div><div><font face=3D"c=
ourier new, monospace">=C2=A0 &lt;&lt; 12.f=C2=A0</font></div><div><font fa=
ce=3D"courier new, monospace">=C2=A0 &lt;&lt; &#39; &#39;=C2=A0</font></div=
><div><font face=3D"courier new, monospace">=C2=A0 &lt;&lt; std::hex //&lt;=
 modify</font></div><div><font face=3D"courier new, monospace">=C2=A0 &lt;&=
lt; 255</font></div><div><font face=3D"courier new, monospace">=C2=A0 &lt;&=
lt; &#39;\n&#39;;=C2=A0 =C2=A0 //&lt; finish (magic)=C2=A0</font></div></di=
v><div>=C2=A0</div></div></blockquote><blockquote class=3D"gmail_quote" sty=
le=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div d=
ir=3D"ltr"><div></div><div>Note that printf (and other languages) already u=
se special characters to modify the output, so having an &#39;\n&#39; is no=
t abrupt.</div><div><br></div><div>But C++ streams are different, having to=
 spell out a special character is odd and unintuitive for a beginner and a =
design deficiency in general.=C2=A0</div></div></blockquote><div><br></div>=
<div>It&#39;s only &quot;magic&quot; if you teach beginners that &#39;\n&#3=
9; is a special magic=20
command, rather than the literal representation of the newline=20
character.</div><div>=C2=A0</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"><div>=C2=A0</div><div><br></div><div><br></div><blockquote class=3D"g=
mail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;=
padding-left:1ex"><div dir=3D"ltr"><div class=3D"gmail_quote"><div>=C2=A0</=
div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-lef=
t:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div><div><br></div><di=
v>This screams some design flaw - we should be able to insert a new lines t=
he same way we modify the stream!</div></div></div></blockquote><div>Yes, t=
he way to do that is with &#39;\n&#39;.</div><div>=C2=A0</div><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;=
padding-left:1ex"><div dir=3D"ltr"><div><div><br></div><div>On its own std:=
:endl has the flaw that it does not obey the &quot;do one thing&quot; rule.=
</div><div>Once we deprecate it, this will shut down all the naive tutorial=
s/courses still teaching it as the default!=C2=A0</div><div><br></div><div>=
<br></div><div>As for std::newline, we have options -=C2=A0</div><div><br><=
/div><div><font face=3D"courier new, monospace">std::nl //&lt; even a begin=
ner can &quot;read&quot; it</font></div><div><font face=3D"courier new, mon=
ospace">std::newl //&lt; orthogonal to endl</font></div><div><font face=3D"=
courier new, monospace">std::br //&lt; why not at this point!</font></div><=
div><font face=3D"courier new, monospace">std::brl</font></div><div><font f=
ace=3D"courier new, monospace">std::bl</font></div><div><br></div><div>Geek=
s can still use `\n`, but a beginner (and a teacher) will have a simple, <i=
>correct,=C2=A0</i>go-to option that models the syntax already introduced (=
std::cout)!</div><div><br><br>On Friday, November 9, 2018 at 8:22:26 AM UTC=
+2, PeterSommerlad wrote:<blockquote class=3D"gmail_quote" style=3D"margin:=
0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=
=3D"auto">So the better way is do better teaching. I show my students that =
they should not use endl, except when they need it.<br><br><div dir=3D"ltr"=
>Sent from Peter Sommerlad&#39;s<span>=C2=A0iPad</span><div><span>+41 79 43=
2 23 32</span></div></div><div dir=3D"ltr"><br>On 8 Nov 2018, at 23:43, Hym=
an Rosen &lt;<a rel=3D"nofollow">hyman...@gmail.com</a>&gt; wrote:<br><br><=
/div><blockquote type=3D"cite"><div dir=3D"ltr"><div dir=3D"ltr"><div class=
=3D"gmail_quote"><div dir=3D"ltr">On Thu, Nov 8, 2018 at 5:08 PM Brian Bi &=
lt;<a rel=3D"nofollow">bbi...@gmail.com</a>&gt; wrote:</div><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"><div class=3D"gmail_quote"><div>I think th=
e reason why novices use std::endl is that they&#39;re under the impression=
 (no doubt perpetuated by incompetent educators) that std::endl is portable=
 whereas &#39;\n&#39; isn&#39;t.</div></div></div></blockquote><div><br>I t=
hink novices use std::endl because that&#39;s how C++ formatted I/O<br>was =
presented for ages.=C2=A0 I have the feeling, completely unsupported<br>by =
evidence, that the iostreams designers thought manipulators were<br>really =
keen, and wanted to have one that would always get used.</div></div></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a rel=3D"nofollow">std-proposal...@isocpp.org</a>.<br>
To post to this group, send email to <a rel=3D"nofollow">std-pr...@isocpp.o=
rg</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/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxE=
DRbuJ8dqAtsX5A%40mail.gmail.com?utm_medium=3Demail&amp;utm_source=3Dfooter"=
 rel=3D"nofollow" target=3D"_blank">https://groups.google.com/a/isocpp.org/=
d/msgid/std-proposals/CAHSYqdYYZjeHHbRZ5bcHLYVsWfspwCeQ8oxEDRbuJ8dqAtsX5A%4=
0mail.gmail.com</a>.<br>
</div></blockquote></div></blockquote></div></div></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a rel=3D"nofollow">std-proposal...@isocpp.org</a>.<br>
To post to this group, send email to <a rel=3D"nofollow">std-pr...@isocpp.o=
rg</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/b49f4c85-816b-4b35-851d-407061a8ef9f%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" rel=3D"nofollow" t=
arget=3D"_blank">https://groups.google.com/a/isocpp.org/d/msgid/std-proposa=
ls/b49f4c85-816b-4b35-851d-407061a8ef9f%40isocpp.org</a>.<br>
</blockquote></div><br clear=3D"all"><div><br></div>-- <br><div dir=3D"ltr"=
><div dir=3D"ltr"><div><div dir=3D"ltr"><font color=3D"#c0c0c0"><i>Brian Bi=
</i></font><br><div></div><div></div><div></div></div></div></div></div></d=
iv>
</blockquote></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org" 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/7da1f33f-c2c1-482f-8fc2-c23a9767a5ec%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank">=
https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/7da1f33f-c2c1-=
482f-8fc2-c23a9767a5ec%40isocpp.org</a>.<br>
</blockquote></div><br clear=3D"all"><br>-- <br><div dir=3D"ltr" class=3D"g=
mail_signature" data-smartmail=3D"gmail_signature"><div dir=3D"ltr"><div><d=
iv dir=3D"ltr"><font color=3D"#c0c0c0"><i>Brian Bi</i></font><br><div></div=
><div></div><div></div></div></div></div></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CAMmfjbMHae%3DpbG7LMjjjqWAE-5Zaiwi3rp=
WXr-HpwBRo0bjvfA%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">h=
ttps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAMmfjbMHae%3Dp=
bG7LMjjjqWAE-5Zaiwi3rpWXr-HpwBRo0bjvfA%40mail.gmail.com</a>.<br />

--000000000000ad2b00057a6a6797--

.


Author: Jake Arkinstall <jake.arkinstall@gmail.com>
Date: Sun, 11 Nov 2018 22:26:01 +0000
Raw View
--0000000000006684eb057a6b1290
Content-Type: text/plain; charset="UTF-8"

On Sun, 11 Nov 2018, 21:38 Brian Bi <bbi5291@gmail.com wrote:

> It's only "magic" if you teach beginners that '\n' is a special magic
> command, rather than the literal representation of the newline character.
>

This. A thousand times this.

'\n' isn't magic in the same way that '\0' and '\t' aren't magic. They're
well known representations of special characters, and such ideas have been
in use in encodings in one form or another for well over a hundred years.
Avoiding them in any learning setting is fruitless in my opinion and,
perhaps, gives the opposite of the intended outcome - we replace a "magic"
that is consistent across dozens of languages with a "magic" command that
creates a newline.

I agree that endl is badly named, but it's one of those things where
deprecation (in terms of renaming) would cause a lot of friction. I'd
sooner just see a better (I.e. more efficient, better compile time support,
and less verbose - especially the disaster that is stream modifiers, that
make printf look user friendly) output approach and let std::endl die out -
not with a bang, but with a whimper.

>

--
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%2B0CCOudOQQYextom6SH8AvuK%2B4cPtbVaGNmNojkd%2BPFsEQcQ%40mail.gmail.com.

--0000000000006684eb057a6b1290
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto"><div class=3D"gmail_quote" dir=3D"auto"><div dir=3D"ltr">=
On Sun, 11 Nov 2018, 21:38 Brian Bi &lt;<a href=3D"mailto:bbi5291@gmail.com=
">bbi5291@gmail.com</a> wrote:</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"><div class=3D"gmail_quote"><div>It&#39;s only &quot;magic&quot; if=
 you teach beginners that &#39;\n&#39; is a special magic=20
command, rather than the literal representation of the newline=20
character.</div></div></div></blockquote></div><div dir=3D"auto"><br></div>=
<div dir=3D"auto">This. A thousand times this.=C2=A0</div><div dir=3D"auto"=
><br></div><div dir=3D"auto">&#39;\n&#39; isn&#39;t magic in the same way t=
hat &#39;\0&#39; and &#39;\t&#39; aren&#39;t magic. They&#39;re well known =
representations of special characters, and such ideas have been in use in e=
ncodings in one form or another for well over a hundred years. Avoiding the=
m in any learning setting is fruitless in my opinion and, perhaps, gives th=
e opposite of the intended outcome - we replace a &quot;magic&quot; that is=
 consistent across dozens of languages with a &quot;magic&quot; command tha=
t creates a newline.</div><div dir=3D"auto"><br></div><div dir=3D"auto">I a=
gree that endl is badly named, but it&#39;s one of those things where depre=
cation (in terms of renaming) would cause a lot of friction. I&#39;d sooner=
 just see a better (I.e. more efficient, better compile time support, and l=
ess verbose - especially the disaster that is stream modifiers, that make p=
rintf look user friendly) output approach and let std::endl die out - not w=
ith a bang, but with a whimper.</div><div class=3D"gmail_quote" dir=3D"auto=
"><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:=
1px #ccc solid;padding-left:1ex">
</blockquote></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CAC%2B0CCOudOQQYextom6SH8AvuK%2B4cPtb=
VaGNmNojkd%2BPFsEQcQ%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfoote=
r">https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAC%2B0CCOu=
dOQQYextom6SH8AvuK%2B4cPtbVaGNmNojkd%2BPFsEQcQ%40mail.gmail.com</a>.<br />

--0000000000006684eb057a6b1290--

.


Author: mihailnajdenov@gmail.com
Date: Sun, 11 Nov 2018 15:01:33 -0800 (PST)
Raw View
------=_Part_1671_639710727.1541977293548
Content-Type: multipart/alternative;
 boundary="----=_Part_1672_75946876.1541977293548"

------=_Part_1672_75946876.1541977293548
Content-Type: text/plain; charset="UTF-8"



On Monday, November 12, 2018 at 12:26:14 AM UTC+2, Jake Arkinstall wrote:
>
> On Sun, 11 Nov 2018, 21:38 Brian Bi <bbi...@gmail.com <javascript:> wrote:
>
>> It's only "magic" if you teach beginners that '\n' is a special magic
>> command, rather than the literal representation of the newline character.
>>
>
> This. A thousand times this.
>
> '\n' isn't magic in the same way that '\0' and '\t' aren't magic. They're
> well known representations of special characters, and such ideas have been
> in use in encodings in one form or another for well over a hundred years.
> Avoiding them in any learning setting is fruitless in my opinion and,
> perhaps, gives the opposite of the intended outcome - we replace a "magic"
> that is consistent across dozens of languages with a "magic" command that
> creates a newline.
>

By no mean I suggest avoiding them altogether. I only point out that
 - A beginner will have to be abruptly introduced to special characters in
his first day (in an API that does not used any special characters!)
 - It is a glaring API inconsistency on its own


>
> I agree that endl is badly named, but it's one of those things where
> deprecation (in terms of renaming) would cause a lot of friction. I'd
> sooner just see a better (I.e. more efficient, better compile time support,
> and less verbose - especially the disaster that is stream modifiers, that
> make printf look user friendly) output approach and let std::endl die out -
> not with a bang, but with a whimper.
>

We all do, but I don't see that coming anytime soon.

Maybe we could just deprecate endl and advocate using '\n' "until something
better comes along".
This will play nicely with format() as people will get used to adding it as
part of the formating string.

As mentioned, deprecating it will (hopefully) prevent teaching it.



--
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/7ea647c8-9bfb-4cd9-b55f-4e8b83160451%40isocpp.org.

------=_Part_1672_75946876.1541977293548
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><br>On Monday, November 12, 2018 at 12:26:14 AM UTC+2,=
 Jake Arkinstall wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0=
;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div di=
r=3D"auto"><div class=3D"gmail_quote" dir=3D"auto"><div dir=3D"ltr">On Sun,=
 11 Nov 2018, 21:38 Brian Bi &lt;<a href=3D"javascript:" target=3D"_blank" =
gdf-obfuscated-mailto=3D"WMtkPFSCBQAJ" rel=3D"nofollow" onmousedown=3D"this=
..href=3D&#39;javascript:&#39;;return true;" onclick=3D"this.href=3D&#39;jav=
ascript:&#39;;return true;">bbi...@gmail.com</a> wrote:</div><blockquote cl=
ass=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;p=
adding-left:1ex"><div dir=3D"ltr"><div class=3D"gmail_quote"><div>It&#39;s =
only &quot;magic&quot; if you teach beginners that &#39;\n&#39; is a specia=
l magic=20
command, rather than the literal representation of the newline=20
character.</div></div></div></blockquote></div><div dir=3D"auto"><br></div>=
<div dir=3D"auto">This. A thousand times this.=C2=A0</div><div dir=3D"auto"=
><br></div><div dir=3D"auto">&#39;\n&#39; isn&#39;t magic in the same way t=
hat &#39;\0&#39; and &#39;\t&#39; aren&#39;t magic. They&#39;re well known =
representations of special characters, and such ideas have been in use in e=
ncodings in one form or another for well over a hundred years. Avoiding the=
m in any learning setting is fruitless in my opinion and, perhaps, gives th=
e opposite of the intended outcome - we replace a &quot;magic&quot; that is=
 consistent across dozens of languages with a &quot;magic&quot; command tha=
t creates a newline.</div></div></blockquote><div><br></div><div>By no mean=
 I suggest avoiding them altogether. I only point out that</div><div>=C2=A0=
- A beginner will have to be abruptly introduced to special characters in h=
is first day (in an API that does not used any special characters!)</div><d=
iv>=C2=A0- It is a glaring API inconsistency on its own</div><div>=C2=A0</d=
iv><blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;=
border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"auto"><div dir=
=3D"auto"><br></div><div dir=3D"auto">I agree that endl is badly named, but=
 it&#39;s one of those things where deprecation (in terms of renaming) woul=
d cause a lot of friction. I&#39;d sooner just see a better (I.e. more effi=
cient, better compile time support, and less verbose - especially the disas=
ter that is stream modifiers, that make printf look user friendly) output a=
pproach and let std::endl die out - not with a bang, but with a whimper.</d=
iv></div></blockquote><div><br></div><div>We all do, but I don&#39;t see th=
at coming anytime soon.=C2=A0</div><div><br></div><div>Maybe we could just =
deprecate endl and advocate using &#39;\n&#39; &quot;until something better=
 comes along&quot;.</div><div>This will play nicely with format() as people=
 will get used to adding it as part of the formating string.=C2=A0</div><di=
v><br></div><div>As mentioned, deprecating it will (hopefully) prevent teac=
hing it.=C2=A0</div><div><br></div><div>=C2=A0</div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/7ea647c8-9bfb-4cd9-b55f-4e8b83160451%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/7ea647c8-9bfb-4cd9-b55f-4e8b83160451=
%40isocpp.org</a>.<br />

------=_Part_1672_75946876.1541977293548--

------=_Part_1671_639710727.1541977293548--

.


Author: Brian Bi <bbi5291@gmail.com>
Date: Sun, 11 Nov 2018 18:07:30 -0500
Raw View
--000000000000dc4466057a6ba6e6
Content-Type: text/plain; charset="UTF-8"

On Sun, Nov 11, 2018 at 6:01 PM <mihailnajdenov@gmail.com> wrote:

>
>
> On Monday, November 12, 2018 at 12:26:14 AM UTC+2, Jake Arkinstall wrote:
>>
>> On Sun, 11 Nov 2018, 21:38 Brian Bi <bbi...@gmail.com wrote:
>>
>>> It's only "magic" if you teach beginners that '\n' is a special magic
>>> command, rather than the literal representation of the newline character.
>>>
>>
>> This. A thousand times this.
>>
>> '\n' isn't magic in the same way that '\0' and '\t' aren't magic. They're
>> well known representations of special characters, and such ideas have been
>> in use in encodings in one form or another for well over a hundred years.
>> Avoiding them in any learning setting is fruitless in my opinion and,
>> perhaps, gives the opposite of the intended outcome - we replace a "magic"
>> that is consistent across dozens of languages with a "magic" command that
>> creates a newline.
>>
>
> By no mean I suggest avoiding them altogether. I only point out that
>  - A beginner will have to be abruptly introduced to special characters in
> his first day (in an API that does not used any special characters!)
>  - It is a glaring API inconsistency on its own
>

How is it an API inconsistency? The way the API works is that you pass it a
character, and it prints that character out. Escape sequences are entirely
orthogonal to the API.


>
>
>>
>> I agree that endl is badly named, but it's one of those things where
>> deprecation (in terms of renaming) would cause a lot of friction. I'd
>> sooner just see a better (I.e. more efficient, better compile time support,
>> and less verbose - especially the disaster that is stream modifiers, that
>> make printf look user friendly) output approach and let std::endl die out -
>> not with a bang, but with a whimper.
>>
>
> We all do, but I don't see that coming anytime soon.
>
> Maybe we could just deprecate endl and advocate using '\n' "until
> something better comes along".
> This will play nicely with format() as people will get used to adding it
> as part of the formating string.
>
> As mentioned, deprecating it will (hopefully) prevent teaching it.
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "ISO C++ Standard - Future Proposals" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to std-proposals+unsubscribe@isocpp.org.
> To post to this group, send email to std-proposals@isocpp.org.
> To view this discussion on the web visit
> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/7ea647c8-9bfb-4cd9-b55f-4e8b83160451%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/7ea647c8-9bfb-4cd9-b55f-4e8b83160451%40isocpp.org?utm_medium=email&utm_source=footer>
> .
>


--
*Brian Bi*

--
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/CAMmfjbPBWa-QQ8c9zxQrzSOWKU83sjEw%2BA-U%3D_%3DffVfSt832Ag%40mail.gmail.com.

--000000000000dc4466057a6ba6e6
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><br><div class=3D"gmail_quote"><div dir=3D"ltr">On Sun=
, Nov 11, 2018 at 6:01 PM &lt;<a href=3D"mailto:mihailnajdenov@gmail.com">m=
ihailnajdenov@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:1=
ex"><div dir=3D"ltr"><br><br>On Monday, November 12, 2018 at 12:26:14 AM UT=
C+2, Jake Arkinstall wrote:<blockquote class=3D"gmail_quote" style=3D"margi=
n:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=
=3D"auto"><div class=3D"gmail_quote" dir=3D"auto"><div dir=3D"ltr">On Sun, =
11 Nov 2018, 21:38 Brian Bi &lt;<a rel=3D"nofollow">bbi...@gmail.com</a> wr=
ote:</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bord=
er-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div class=3D"gma=
il_quote"><div>It&#39;s only &quot;magic&quot; if you teach beginners that =
&#39;\n&#39; is a special magic=20
command, rather than the literal representation of the newline=20
character.</div></div></div></blockquote></div><div dir=3D"auto"><br></div>=
<div dir=3D"auto">This. A thousand times this.=C2=A0</div><div dir=3D"auto"=
><br></div><div dir=3D"auto">&#39;\n&#39; isn&#39;t magic in the same way t=
hat &#39;\0&#39; and &#39;\t&#39; aren&#39;t magic. They&#39;re well known =
representations of special characters, and such ideas have been in use in e=
ncodings in one form or another for well over a hundred years. Avoiding the=
m in any learning setting is fruitless in my opinion and, perhaps, gives th=
e opposite of the intended outcome - we replace a &quot;magic&quot; that is=
 consistent across dozens of languages with a &quot;magic&quot; command tha=
t creates a newline.</div></div></blockquote><div><br></div><div>By no mean=
 I suggest avoiding them altogether. I only point out that</div><div>=C2=A0=
- A beginner will have to be abruptly introduced to special characters in h=
is first day (in an API that does not used any special characters!)</div><d=
iv>=C2=A0- It is a glaring API inconsistency on its own</div></div></blockq=
uote><div><br></div><div>How is it an API inconsistency? The way the API wo=
rks is that you pass it a character, and it prints that character out. Esca=
pe sequences are entirely orthogonal to the API.<br></div><div>=C2=A0</div>=
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div>=C2=A0</div><blockquot=
e class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px=
 #ccc solid;padding-left:1ex"><div dir=3D"auto"><div dir=3D"auto"><br></div=
><div dir=3D"auto">I agree that endl is badly named, but it&#39;s one of th=
ose things where deprecation (in terms of renaming) would cause a lot of fr=
iction. I&#39;d sooner just see a better (I.e. more efficient, better compi=
le time support, and less verbose - especially the disaster that is stream =
modifiers, that make printf look user friendly) output approach and let std=
::endl die out - not with a bang, but with a whimper.</div></div></blockquo=
te><div><br></div><div>We all do, but I don&#39;t see that coming anytime s=
oon.=C2=A0</div><div><br></div><div>Maybe we could just deprecate endl and =
advocate using &#39;\n&#39; &quot;until something better comes along&quot;.=
</div><div>This will play nicely with format() as people will get used to a=
dding it as part of the formating string.=C2=A0</div><div><br></div><div>As=
 mentioned, deprecating it will (hopefully) prevent teaching it.=C2=A0</div=
><div><br></div><div>=C2=A0</div></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org" 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/7ea647c8-9bfb-4cd9-b55f-4e8b83160451%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank">=
https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/7ea647c8-9bfb-=
4cd9-b55f-4e8b83160451%40isocpp.org</a>.<br>
</blockquote></div><br clear=3D"all"><br>-- <br><div dir=3D"ltr" class=3D"g=
mail_signature" data-smartmail=3D"gmail_signature"><div dir=3D"ltr"><div><d=
iv dir=3D"ltr"><font color=3D"#c0c0c0"><i>Brian Bi</i></font><br><div></div=
><div></div><div></div></div></div></div></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CAMmfjbPBWa-QQ8c9zxQrzSOWKU83sjEw%2BA=
-U%3D_%3DffVfSt832Ag%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfoote=
r">https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAMmfjbPBWa=
-QQ8c9zxQrzSOWKU83sjEw%2BA-U%3D_%3DffVfSt832Ag%40mail.gmail.com</a>.<br />

--000000000000dc4466057a6ba6e6--

.


Author: mutant.sheepdog@gmail.com
Date: Sun, 11 Nov 2018 15:27:30 -0800 (PST)
Raw View
------=_Part_1615_1779089983.1541978850302
Content-Type: multipart/alternative;
 boundary="----=_Part_1616_1411622611.1541978850302"

------=_Part_1616_1411622611.1541978850302
Content-Type: text/plain; charset="UTF-8"

I think there's great value in teaching people about escape sequences
early, it's a useful cross-language concept that they'll run into forever.
I'm also not convinced it's harder to learn than std::endl, In fact I think
it's much simpler because it's part of the string meaning multi-line
strings are easy to work with instead of something magical that comes from
streaming in objects that come from elsewhere in the standard library.

Teaching someone 'put \n where you want a line break' seems easier to me
than 'if you want a line break, end your string, stream in std::endl, then
start streaming a new string'. The first says, 'this string has a line
break in it', the second is 'there are two strings, in the middle we're
doing the magical end-line operation.

On Friday, 9 November 2018 00:37:54 UTC+11, mihailn...@gmail.com wrote:
>
> Wouldn't it be miles better to instead of un-teaching people from
> std::endl and advertise '\n'
> <https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#slio50-avoid-endl>
> to have equally attractive alternative?
>
> The point is - '\n' is not in any way beginner friendly as it is not an
> std or build in "command"/object, but some alien symbol (to a new comer)
> like, literally nothing else - it does not even look a single character.
> Even for a non-beginner, some prefer typing std::endl as it is just simple
> letters, not rarely used symbols (double colon, is not rarely used a t all)
>
> Also, if we have a friendly new line alternative we could deprecate endl
> and teach to new-line-and-flush-if-needed.
> Without deprecating it, we might add confusion.
>
>
>
>

--
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/4810f3c9-3d28-4ef3-b867-efa821dcdf50%40isocpp.org.

------=_Part_1616_1411622611.1541978850302
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>I think there&#39;s great value in teaching people ab=
out escape sequences early, it&#39;s a useful cross-language concept that t=
hey&#39;ll run into forever.</div><div>I&#39;m also not convinced it&#39;s =
harder to learn than std::endl, In fact I think it&#39;s much simpler becau=
se it&#39;s part of the string meaning multi-line strings are easy to work =
with instead of something magical that comes from streaming in objects that=
 come from elsewhere in the standard library.</div><div><br></div><div>Teac=
hing someone &#39;put \n where you want a line break&#39; seems easier to m=
e than &#39;if you want a line break, end your string, stream in std::endl,=
 then start streaming a new string&#39;. The first says, &#39;this string h=
as a line break in it&#39;, the second is &#39;there are two strings, in th=
e middle we&#39;re doing the magical end-line operation.<br></div><br>On Fr=
iday, 9 November 2018 00:37:54 UTC+11, mihailn...@gmail.com  wrote:<blockqu=
ote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left=
: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr">Wouldn&#39;t it be mi=
les better to instead of <a href=3D"https://github.com/isocpp/CppCoreGuidel=
ines/blob/master/CppCoreGuidelines.md#slio50-avoid-endl" target=3D"_blank" =
rel=3D"nofollow" onmousedown=3D"this.href=3D&#39;https://www.google.com/url=
?q\x3dhttps%3A%2F%2Fgithub.com%2Fisocpp%2FCppCoreGuidelines%2Fblob%2Fmaster=
%2FCppCoreGuidelines.md%23slio50-avoid-endl\x26sa\x3dD\x26sntz\x3d1\x26usg\=
x3dAFQjCNHj0c7DLOozJmEULOfU2G9-3_DJOw&#39;;return true;" onclick=3D"this.hr=
ef=3D&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fisocpp=
%2FCppCoreGuidelines%2Fblob%2Fmaster%2FCppCoreGuidelines.md%23slio50-avoid-=
endl\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHj0c7DLOozJmEULOfU2G9-3_DJOw&#=
39;;return true;">un-teaching people from std::endl and advertise &#39;\n&#=
39;</a> to have equally attractive alternative?<div><br></div><div>The poin=
t is - &#39;\n&#39; is not in any way beginner friendly as it is not an std=
 or build in &quot;command&quot;/object, but some alien symbol (to a new co=
mer) like, literally nothing else - it does not even look a single characte=
r.</div><div>Even for a non-beginner, some prefer typing std::endl as it is=
 just simple letters, not rarely used symbols (double colon, is not rarely =
used a t all)=C2=A0</div><div><br></div><div>Also, if we have a friendly ne=
w line alternative we could deprecate endl and teach to new-line-and-flush-=
if-needed.=C2=A0</div><div>Without deprecating it, we might add confusion.=
=C2=A0=C2=A0<br><div><br></div><div><br></div><div><br></div></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&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/4810f3c9-3d28-4ef3-b867-efa821dcdf50%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/4810f3c9-3d28-4ef3-b867-efa821dcdf50=
%40isocpp.org</a>.<br />

------=_Part_1616_1411622611.1541978850302--

------=_Part_1615_1779089983.1541978850302--

.


Author: mutant.sheepdog@gmail.com
Date: Sun, 11 Nov 2018 15:31:30 -0800 (PST)
Raw View
------=_Part_1663_963630808.1541979090259
Content-Type: multipart/alternative;
 boundary="----=_Part_1664_1718384587.1541979090259"

------=_Part_1664_1718384587.1541979090259
Content-Type: text/plain; charset="UTF-8"

Furthermore I think teaching \n naturally leads into curiosity about how
strings work, the fact that a 'char' is an integer holding an ASCII value,
that there are other special escape characters like \t, and that you can
escape integer literals for the other ones too.

Teaching people to use a separate std::endl doesn't teach people about
strings, it teaches them about iostreams.

--
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/5d70ae59-7519-4db4-94cc-fadd1b13d467%40isocpp.org.

------=_Part_1664_1718384587.1541979090259
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Furthermore I think teaching \n naturally leads into =
curiosity about how strings work, the fact that a &#39;char&#39; is an inte=
ger holding an ASCII value, that there are other special escape characters =
like \t, and that you can escape integer literals for the other ones too.</=
div><div><br></div><div>Teaching people to use a separate std::endl doesn&#=
39;t teach people about strings, it teaches them about iostreams.<br></div>=
</div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/5d70ae59-7519-4db4-94cc-fadd1b13d467%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/5d70ae59-7519-4db4-94cc-fadd1b13d467=
%40isocpp.org</a>.<br />

------=_Part_1664_1718384587.1541979090259--

------=_Part_1663_963630808.1541979090259--

.


Author: Bryce Adelstein Lelbach aka wash <brycelelbach@gmail.com>
Date: Sun, 11 Nov 2018 17:26:28 -0800
Raw View
--000000000000d4010b057a6d97f5
Content-Type: text/plain; charset="UTF-8"

I'd rather just focus on providing a modern replacement for iostreams for
C++26, and aim to deprecate iostreams in the future.

Standard library dynamic constructors violate the zero cost abstraction
principle. std::cout and friends must go.

On Thu, Nov 8, 2018, 5:37 AM <mihailnajdenov@gmail.com wrote:

> Wouldn't it be miles better to instead of un-teaching people from
> std::endl and advertise '\n'
> <https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#slio50-avoid-endl>
> to have equally attractive alternative?
>
> The point is - '\n' is not in any way beginner friendly as it is not an
> std or build in "command"/object, but some alien symbol (to a new comer)
> like, literally nothing else - it does not even look a single character.
> Even for a non-beginner, some prefer typing std::endl as it is just simple
> letters, not rarely used symbols (double colon, is not rarely used a t all)
>
> Also, if we have a friendly new line alternative we could deprecate endl
> and teach to new-line-and-flush-if-needed.
> Without deprecating it, we might add confusion.
>
>
>
> --
> 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/e17189bf-51be-496d-845a-3707a516a210%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/e17189bf-51be-496d-845a-3707a516a210%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/CAP3wax_sPnk2FVbZj%2BKPoVcakkBAkGSP6ZcQZUSts52hc2E60g%40mail.gmail.com.

--000000000000d4010b057a6d97f5
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto"><div>I&#39;d rather just focus on providing a modern repl=
acement for iostreams for C++26, and aim to deprecate iostreams in the futu=
re.</div><div dir=3D"auto"><br></div><div dir=3D"auto">Standard library dyn=
amic constructors violate the zero cost abstraction principle. std::cout an=
d friends must go.</div><div dir=3D"auto"><br><div class=3D"gmail_quote" di=
r=3D"auto"><div dir=3D"ltr">On Thu, Nov 8, 2018, 5:37 AM  &lt;<a href=3D"ma=
ilto:mihailnajdenov@gmail.com">mihailnajdenov@gmail.com</a> wrote:<br></div=
><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1=
px #ccc solid;padding-left:1ex"><div dir=3D"ltr">Wouldn&#39;t it be miles b=
etter to instead of <a href=3D"https://github.com/isocpp/CppCoreGuidelines/=
blob/master/CppCoreGuidelines.md#slio50-avoid-endl" target=3D"_blank" rel=
=3D"noreferrer">un-teaching people from std::endl and advertise &#39;\n&#39=
;</a> to have equally attractive alternative?<div><br></div><div>The point =
is - &#39;\n&#39; is not in any way beginner friendly as it is not an std o=
r build in &quot;command&quot;/object, but some alien symbol (to a new come=
r) like, literally nothing else - it does not even look a single character.=
</div><div>Even for a non-beginner, some prefer typing std::endl as it is j=
ust simple letters, not rarely used symbols (double colon, is not rarely us=
ed a t all)=C2=A0</div><div><br></div><div>Also, if we have a friendly new =
line alternative we could deprecate endl and teach to new-line-and-flush-if=
-needed.=C2=A0</div><div>Without deprecating it, we might add confusion.=C2=
=A0=C2=A0<br><div><br></div><div><br></div><div><br></div></div></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org" 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/e17189bf-51be-496d-845a-3707a516a210%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank" =
rel=3D"noreferrer">https://groups.google.com/a/isocpp.org/d/msgid/std-propo=
sals/e17189bf-51be-496d-845a-3707a516a210%40isocpp.org</a>.<br>
</blockquote></div></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CAP3wax_sPnk2FVbZj%2BKPoVcakkBAkGSP6Z=
cQZUSts52hc2E60g%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">h=
ttps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAP3wax_sPnk2FV=
bZj%2BKPoVcakkBAkGSP6ZcQZUSts52hc2E60g%40mail.gmail.com</a>.<br />

--000000000000d4010b057a6d97f5--

.


Author: Thiago Macieira <thiago@macieira.org>
Date: Sun, 11 Nov 2018 18:06:48 -0800
Raw View
On Sunday, 11 November 2018 15:01:33 PST mihailnajdenov@gmail.com wrote:
>  - A beginner will have to be abruptly introduced to special characters in
> his first day (in an API that does not used any special characters!)

A beginner needs to be taught the basics of the language. The difference
between "a" and 'a' is a lot more confusing than the presence of escape
sequences.

--
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center



--
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/1682503.RS7KKTmsOS%40tjmaciei-mobl1.

.


Author: olafvdspek@gmail.com
Date: Mon, 12 Nov 2018 03:17:39 -0800 (PST)
Raw View
------=_Part_545_1051076119.1542021459981
Content-Type: multipart/alternative;
 boundary="----=_Part_546_133315879.1542021459981"

------=_Part_546_133315879.1542021459981
Content-Type: text/plain; charset="UTF-8"



Op vrijdag 9 november 2018 07:22:26 UTC+1 schreef PeterSommerlad:
>
> So the better way is do better teaching. I show my students that they
> should not use endl, except when they need it.
>

When does one need std::endl?
AFAIK std::endl could / should be deprecated.
Write "\n" << std::flush; if that's what you need.

--
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/c9f26898-5980-43de-9313-1d271bf43aa0%40isocpp.org.

------=_Part_546_133315879.1542021459981
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><br>Op vrijdag 9 november 2018 07:22:26 UTC+1 schreef =
PeterSommerlad:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-=
left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"aut=
o">So the better way is do better teaching. I show my students that they sh=
ould not use endl, except when they need it.</div></blockquote><div><br></d=
iv><div>When does one need std::endl?</div><div>AFAIK std::endl could / sho=
uld be deprecated.</div><div>Write &quot;\n&quot; &lt;&lt; std::flush; if t=
hat&#39;s what you need.=C2=A0</div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/c9f26898-5980-43de-9313-1d271bf43aa0%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/c9f26898-5980-43de-9313-1d271bf43aa0=
%40isocpp.org</a>.<br />

------=_Part_546_133315879.1542021459981--

------=_Part_545_1051076119.1542021459981--

.


Author: Matthew Woehlke <mwoehlke.floss@gmail.com>
Date: Tue, 13 Nov 2018 13:16:20 -0500
Raw View
On 10/11/2018 10.24, mihailnajdenov@gmail.com wrote:
> There is some sort of miscommunication.
> The fact there no C++ way to insert a new line (only a UNIX special
> character way) is what I state an issue,
> considering the rest of the API

Huh?

'\n' is not "a UNIX special character". It is an escape sequence that
refers to the NEWLINE character.

Escape sequences are important. Not only should most programmers be
familiar with at least '\n', but also '\'', '\"' and of course '\\'.
Lacking this familiarity is just a recipe for getting into trouble when
needing to have these characters in a string.

As for NEWLINE, it is not UNIX specific. It is true that "UNIX" the the
line ending standard that uses '\n' by itself to mark the ends of lines
of files on disk, but it is *also* the standard for files being
processed in "text" mode. *On ALL platforms*. In fact, it is more
possible to be ignorant of the existence of other line ending
conventions than to be ignorant that at a code level, '\n' is *the*
correct way to end lines.

> But C++ streams are different, having to spell out a special character is
> odd and unintuitive for a beginner and a design deficiency in general.

So how do you print quote characters? Or backslashes? Or *any*
"non-printable" character?

Trying to avoid teaching escaped characters, which exist in virtually
EVERY computer language (not just "programming" languages, but markup
languages as well) is just dumb.

--
Matthew

--
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/59b3971f-53bf-e0c3-f9f5-3d7a82646852%40gmail.com.

.


Author: Matthew Woehlke <mwoehlke.floss@gmail.com>
Date: Tue, 13 Nov 2018 13:19:39 -0500
Raw View
On 11/11/2018 18.01, mihailnajdenov@gmail.com wrote:
> By no mean I suggest avoiding them altogether. I only point out that
>  - A beginner will have to be abruptly introduced to special characters in
> his first day (in an API that does not used any special characters!)
>  - It is a glaring API inconsistency on its own

It sounds like what you *really* want is the equivalent of Python's
print(), which prints a line of text and automatically adds the newline.

Maybe you could propose that?

BTW, Qt's QDebug also does that, and some other stuff:

  qInfo() << "Hello" << "world";

....will print "Hello world\n", modulo any additional logging formatting
(e.g. prepending with the time) that is configured.

--
Matthew

--
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/6339a868-071b-e5c5-a19d-49a4a4d1ba43%40gmail.com.

.


Author: Eyal Rozenberg <eyalroz@technion.ac.il>
Date: Wed, 14 Nov 2018 00:16:54 +0200
Raw View
On 09/11/2018 0:07, Brian Bi wrote:
> Also, I think adding some hypothetical new "std::newline" constant in an
> attempt to "seduce" novices does them a disservice by making them waste
> keystrokes and tempting them to use "using namespace std" to save a few.

But it allows people (not only novices) to use literal strings with no
escapes; and that _is_ kind of useful, at least from an aesthetic
perspective. There is also the argument of a (slightly) reduced learning
curve for novices. Someone who has not programmed before will understand

    "hello world" << std::newline << "goodbye world"

faster than

    "hello world\ngoodbye world"


I'm not saying that's an important enough advantage, but still.

Eyal

--
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/be5afcef-5a22-e30b-59b6-c97bf17a8ac1%40technion.ac.il.

.


Author: Edward Catmur <ed@catmur.co.uk>
Date: Tue, 13 Nov 2018 16:26:54 -0800 (PST)
Raw View
------=_Part_622_1912918181.1542155214468
Content-Type: text/plain; charset="UTF-8"

Start them out with raw strings, then.

std::cout << R"(hello
world
)";

Escape characters can wait till a later lesson, once they're happy with getting a program to produce output.

--
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/46ea9857-ee43-49d0-9bd5-9ca4075c414e%40isocpp.org.

------=_Part_622_1912918181.1542155214468--

.


Author: FrankHB1989 <frankhb1989@gmail.com>
Date: Wed, 28 Nov 2018 20:14:29 -0800 (PST)
Raw View
------=_Part_2649_1159649684.1543464869404
Content-Type: multipart/alternative;
 boundary="----=_Part_2650_117724170.1543464869404"

------=_Part_2650_117724170.1543464869404
Content-Type: text/plain; charset="UTF-8"

It seems to be the cost of omission of line buffered stream notion (as in
ISO C) in C++.

That said, I don't see it a big deal to teach newbies '\n' or std::endl as
long as they can know the difference.

--
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/ad51d005-ece7-4102-aa42-aac554277733%40isocpp.org.

------=_Part_2650_117724170.1543464869404
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">It seems to be the cost of omission of line buffered strea=
m notion (as in ISO C) in C++.<br><br>That said, I don&#39;t see it a big d=
eal to teach newbies &#39;\n&#39; or std::endl as long as they can know the=
 difference.<br></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/ad51d005-ece7-4102-aa42-aac554277733%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/ad51d005-ece7-4102-aa42-aac554277733=
%40isocpp.org</a>.<br />

------=_Part_2650_117724170.1543464869404--

------=_Part_2649_1159649684.1543464869404--

.