<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:"Yu Gothic";
        panose-1:2 11 4 0 0 0 0 0 0 0;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@Yu Gothic";
        panose-1:2 11 4 0 0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
tt
        {mso-style-priority:99;
        font-family:"Courier New";}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";
        color:black;}
p.xmsonormal, li.xmsonormal, div.xmsonormal
        {mso-style-name:x_msonormal;
        margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.xxmsonormal, li.xxmsonormal, div.xxmsonormal
        {mso-style-name:x_x_msonormal;
        margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.xxxmsonormal, li.xxxmsonormal, div.xxxmsonormal
        {mso-style-name:x_x_x_msonormal;
        margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">><span style="color:black"> This is exactly why the original wording I proposed stated that the result is unspecified if the run-time locale encoding is not compatible with the encoding used for the execution character set.</span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The problem is that wording doesn’t say “us might be used”, it says “if one of these specific conditions happens, us may be used,” and streams have no means of detecting those specific conditions.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">“If "µs" is used but the implementation's native character set lacks representation for U+00B5
<b><span style="color:red">and the stream is associated with a terminal or console</span></b><span style="color:red">,
</span>or <b><span style="color:red">if the stream is imbued with a std::codecvt facet that lacks conversion support for the character</span></b><span style="color:red">,</span> then the result is unspecified.”.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Streams can’t detect either of the red conditions. basic_filebuf might know if the target is a console, but the stream certainly doesn’t. And streams don’t talk to std::codecvt facets at all; again that’s in basic_filebuf. It seems the
P/R without this second sentience resolves the issue completely?</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I think </p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Billy3</p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="border:none;padding:0in"><b>From: </b><a href="mailto:tom@honermann.net">Tom Honermann</a><br>
<b>Sent: </b>Thursday, November 7, 2019 3:37 AM<br>
<b>To: </b><a href="mailto:bion@microsoft.com">Billy O'Neal (VC LIBS)</a>; <a href="mailto:lib@lists.isocpp.org">
lib@lists.isocpp.org</a>; <a href="mailto:corentin.jabot@gmail.com">Corentin</a><br>
<b>Cc: </b><a href="mailto:lib-ext@lists.isocpp.org">C++ Library Evolution Working Group</a>;
<a href="mailto:unicode@open-std.org">unicode@isocpp.open-std.org</a><br>
<b>Subject: </b>Re: [isocpp-lib] [SG16-Unicode] [isocpp-lib-ext] [time.duration.io] : Is stream insertion behavior locale dependent when Period::type is micro?</p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">On 11/7/19 11:23 AM, Billy O'Neal (VC LIBS) wrote:<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p>> The library doesn't need to assume. An example implementation (ignoring support for non-char types) could be: […]</p>
<p class="MsoNormal">That does not do the correct thing because the locale on the target is often not the locale when compiling. At compile time we usually consider our ‘execution character set’ to be the ASCII subset for maximum resistance to changes in locale
at runtime, but the compiler will generally pass through more strict settings if the user has set them.<o:p></o:p></p>
</blockquote>
<p class="MsoNormal"><span style="color:black">This is exactly why the original wording I proposed stated that the result is unspecified if the run-time locale encoding is not compatible with the encoding used for the execution character set.<br>
<br>
<o:p></o:p></span></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p>> I think the Windows 10 comment is only relevant with respect to the run-time locale and choice of encoding for the console/terminal. Execution character set is independent of both of those.</p>
<p class="MsoNormal">It is dependent with both of those in that the choice of execution character set is constrained by the environment in which the program will run.<o:p></o:p></p>
</blockquote>
<p>Indeed. But if a programmer compiles their code with /execution-charset:utf-8, it seems a clear indication that they intend to constrain the environment in which the program is run to one that supports UTF-8 (e.g., Windows 10, with UTF-8 ACP, and the new
Windows Terminal). I recognize that such a deployment target is an uncommon reality today, but that is a direction to be encouraged.</p>
<p>Tom.</p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">Billy3<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"><img border="0" width="701" height="1" style="width:7.302in;height:.0104in" id="Horizontal_x0020_Line_x0020_1" src="cid:image001.png@01D5994E.CDDA1CE0"><span style="color:black"><o:p></o:p></span></p>
<div id="divRplyFwdMsg">
<p class="MsoNormal"><b><span style="color:black">From:</span></b><span style="color:black"> Tom Honermann
</span><a href="mailto:tom@honermann.net"><tom@honermann.net></a><span style="color:black"><br>
<b>Sent:</b> Wednesday, November 6, 2019 10:58:17 PM<br>
<b>To:</b> Billy O'Neal (VC LIBS) </span><a href="mailto:bion@microsoft.com"><bion@microsoft.com></a><span style="color:black">;
</span><a href="mailto:lib@lists.isocpp.org">lib@lists.isocpp.org</a><span style="color:black">
</span><a href="mailto:lib@lists.isocpp.org"><lib@lists.isocpp.org></a><span style="color:black">; Corentin
</span><a href="mailto:corentin.jabot@gmail.com"><corentin.jabot@gmail.com></a><span style="color:black"><br>
<b>Cc:</b> C++ Library Evolution Working Group </span><a href="mailto:lib-ext@lists.isocpp.org"><lib-ext@lists.isocpp.org></a><span style="color:black">;
</span><a href="mailto:unicode@isocpp.open-std.org">unicode@isocpp.open-std.org</a><span style="color:black">
</span><a href="mailto:unicode@open-std.org"><unicode@open-std.org></a><span style="color:black"><br>
<b>Subject:</b> Re: [isocpp-lib] [SG16-Unicode] [isocpp-lib-ext] [time.duration.io] : Is stream insertion behavior locale dependent when Period::type is micro?
<o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="color:black">On 11/6/19 10:20 PM, Billy O'Neal (VC LIBS) wrote:<o:p></o:p></span></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p style="background:white"><span style="color:black">> That isn't what it (is intended to) say, nor how I read it. </span></p>
<p style="background:white"><span style="color:black">Then remove the qualifications about terminals or codecvt facets and talk only about the execution character set, and things are OK. (As Corentin’s PR does)</span></p>
<p style="background:white"><span style="color:black">> The intent of the wording was to allow Microsoft to use "µs" when the compiler is invoked with /execution-charset:utf-8 and to use "us" otherwise.</span></p>
<p class="xmsonormal" style="background:white"><span style="color:black">Given that UTF-8 support is still a rarely used user opt-in at this time only available on recent versions of Windows 10, it isn’t an assumption the library is going to be able to make
soon (i.e. the next decade)</span></p>
</div>
</blockquote>
<p style="background:white"><span style="color:black">The library doesn't need to assume. An example implementation (ignoring support for non-char types) could be:</span></p>
<pre style="background:white">template<class traits, class Rep, class Period><tt><o:p></o:p></tt></pre>
<pre style="background:white"><tt>void print_fancy_suffix(basic_ostream<char, traits>& os, const duration<Rep, Period>& d)<o:p></o:p></tt></pre>
<pre style="background:white"><tt>{<o:p></o:p></tt></pre>
<pre style="background:white"><tt> static const char micro_sign[] = "\u00B5s";<o:p></o:p></tt></pre>
<pre style="background:white"><tt> if (as_unsigned(micro_sign[0]) == 0xC2u &&<o:p></o:p></tt></pre>
<pre style="background:white"><tt> as_unsigned(micro_sign[1]) == 0xB5u)<o:p></o:p></tt></pre>
<pre style="background:white"><tt> {<o:p></o:p></tt></pre>
<pre style="background:white"><tt> // execution character set smells like UTF-8.<o:p></o:p></tt></pre>
<pre style="background:white"><tt> os << d.count() << micro_sign;<o:p></o:p></tt></pre>
<pre style="background:white"><tt> } else {<o:p></o:p></tt></pre>
<pre style="background:white"><tt> // execution character set smells like bad.<o:p></o:p></tt></pre>
<pre style="background:white"><tt> os << d.count() << "us";<o:p></o:p></tt></pre>
<pre style="background:white"><tt> }<o:p></o:p></tt></pre>
<pre style="background:white"><tt>}</tt></pre>
<p style="background:white"><span style="color:black">There are, of course, better ways to do this if the compiler has the ability to inform the library what the execution character set really is (e.g., a predefined macro).</span></p>
<p style="background:white"><span style="color:black">I'm not arguing for any particular choice on Microsoft's part.</span></p>
<p style="background:white"><span style="color:black">I think the Windows 10 comment is only relevant with respect to the run-time locale and choice of encoding for the console/terminal. Execution character set is independent of both of those.</span></p>
<p style="background:white"><span style="color:black">Tom.</span></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="xmsonormal" style="background:white"><span style="color:black"> </span></p>
<p class="xmsonormal" style="background:white"><span style="color:black">Billy3</span></p>
<p class="xmsonormal" style="background:white"><span style="color:black"> </span></p>
</div>
<p class="MsoNormal" style="background:white"><span style="color:black"><img border="0" width="694" height="1" style="width:7.2291in;height:.0104in" id="Horizontal_x0020_Line_x0020_2" src="cid:image002.png@01D5994E.CDDA1CE0"></span><span style="color:black"><o:p></o:p></span></p>
<div id="x_divRplyFwdMsg">
<p class="MsoNormal" style="background:white"><b><span style="color:black">From:</span></b><span style="color:black"> Tom Honermann
</span><span style="color:black"><a href="mailto:tom@honermann.net"><tom@honermann.net></a></span><span style="color:black"><br>
<b>Sent:</b> Wednesday, November 6, 2019 5:38:34 PM<br>
<b>To:</b> Billy O'Neal (VC LIBS) </span><span style="color:black"><a href="mailto:bion@microsoft.com"><bion@microsoft.com></a></span><span style="color:black">;
</span><span style="color:black"><a href="mailto:lib@lists.isocpp.org">lib@lists.isocpp.org</a></span><span style="color:black">
</span><span style="color:black"><a href="mailto:lib@lists.isocpp.org"><lib@lists.isocpp.org></a></span><span style="color:black">; Corentin
</span><span style="color:black"><a href="mailto:corentin.jabot@gmail.com"><corentin.jabot@gmail.com></a></span><span style="color:black"><br>
<b>Cc:</b> C++ Library Evolution Working Group </span><span style="color:black"><a href="mailto:lib-ext@lists.isocpp.org"><lib-ext@lists.isocpp.org></a></span><span style="color:black">;
</span><span style="color:black"><a href="mailto:unicode@isocpp.open-std.org">unicode@isocpp.open-std.org</a></span><span style="color:black">
</span><span style="color:black"><a href="mailto:unicode@open-std.org"><unicode@open-std.org></a></span><span style="color:black"><br>
<b>Subject:</b> Re: [isocpp-lib] [SG16-Unicode] [isocpp-lib-ext] [time.duration.io] : Is stream insertion behavior locale dependent when Period::type is micro?
<o:p></o:p></span></p>
<div>
<p class="MsoNormal" style="background:white"><span style="color:black"> <o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="color:black">On 11/6/19 5:30 PM, Billy O'Neal (VC LIBS) wrote:<o:p></o:p></span></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="xxmsonormal" style="margin-bottom:12.0pt;background:white"><span style="color:black">Corentin’s PR says “if char (the execution encoding) can always represent µ for your implementation, use that. Otherwise use u.” Which means on my implementation
where char can’t always represent such a thing as that is locale dependent. we will statically use u (and µ for wchar_t); but an implementation that assumes char is UTF-8 could use µ.</span></p>
<p class="xxmsonormal" style="background:white"><span style="color:black">The LWG issue’s PR says “if the stream can detect that it is targeting a console or codecvt facet that don’t support µ, an implementation may use u, otherwise they use µ”. But streams
have no means of doing that detection. (And the answer can even change if someone changes the streambuf)</span></p>
</div>
</blockquote>
<p style="background:white"><span style="color:black">That isn't what it (is intended to) say, nor how I read it. It states that the suffix is determined by the execution character set (the character set used for string literals and known at compile time);
that is in the first sentence. The second sentence acknowledges that if the native character set (the run-time locale dependent character set) lacks representation for the character, then all bets are off with regard to how the character is actually displayed
(or converted by a codecvt facet).</span></p>
<p style="background:white"><span style="color:black">The intent of the wording was to allow Microsoft to use "µs" when the compiler is invoked with /execution-charset:utf-8 and to use "us" otherwise.</span></p>
<p style="background:white"><span style="color:black">Tom.</span></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="xxmsonormal" style="background:white"><span style="color:black"> </span></p>
<p class="xxmsonormal" style="background:white"><span style="color:black">Billy3</span></p>
<p class="xxmsonormal" style="background:white"><span style="color:black"> </span></p>
</div>
<p class="MsoNormal" style="background:white"><span style="color:black"><img border="0" width="700" height="1" style="width:7.2916in;height:.0104in" id="Horizontal_x0020_Line_x0020_3" src="cid:image003.png@01D5994E.CDDA1CE0"></span><span style="color:black"><o:p></o:p></span></p>
<div id="x_x_divRplyFwdMsg">
<p class="MsoNormal" style="background:white"><b><span style="color:black">From:</span></b><span style="color:black"> Tom Honermann
</span><span style="color:black"><a href="mailto:tom@honermann.net"><tom@honermann.net></a></span><span style="color:black"><br>
<b>Sent:</b> Wednesday, November 6, 2019 5:14:18 PM<br>
<b>To:</b> Billy O'Neal (VC LIBS) </span><span style="color:black"><a href="mailto:bion@microsoft.com"><bion@microsoft.com></a></span><span style="color:black">;
</span><span style="color:black"><a href="mailto:lib@lists.isocpp.org">lib@lists.isocpp.org</a></span><span style="color:black">
</span><span style="color:black"><a href="mailto:lib@lists.isocpp.org"><lib@lists.isocpp.org></a></span><span style="color:black">; Corentin
</span><span style="color:black"><a href="mailto:corentin.jabot@gmail.com"><corentin.jabot@gmail.com></a></span><span style="color:black"><br>
<b>Cc:</b> C++ Library Evolution Working Group </span><span style="color:black"><a href="mailto:lib-ext@lists.isocpp.org"><lib-ext@lists.isocpp.org></a></span><span style="color:black">;
</span><span style="color:black"><a href="mailto:unicode@isocpp.open-std.org">unicode@isocpp.open-std.org</a></span><span style="color:black">
</span><span style="color:black"><a href="mailto:unicode@open-std.org"><unicode@open-std.org></a></span><span style="color:black"><br>
<b>Subject:</b> Re: [isocpp-lib] [SG16-Unicode] [isocpp-lib-ext] [time.duration.io] : Is stream insertion behavior locale dependent when Period::type is micro?
<o:p></o:p></span></p>
<div>
<p class="MsoNormal" style="background:white"><span style="color:black"> <o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="color:black">On 11/6/19 4:30 PM, Billy O'Neal (VC LIBS) wrote:<o:p></o:p></span></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="xxxmsonormal" style="margin-bottom:12.0pt;background:white">> Please read the wording again. Note that it says that, if those conditions are true, then the result is unspecified. </p>
<p class="xxxmsonormal" style="background:white">If “the wording” means the P/R of
<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcplusplus.github.io%2FLWG%2Fissue3314&data=02%7C01%7Cbion%40microsoft.com%7Cfa7a7c5a0fdb4025e2f508d76376e659%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637087234642923282&sdata=G%2FjD0wLAhNgaM%2B3FBWdMK93mVP%2F0lWEKaty41iDQSrc%3D&reserved=0">
https://cplusplus.github.io/LWG/issue3314</a>, the wording there implies that we must make some effort to determine that the condition is true, which in practice we cannot do because the interface between streams and streambufs is public.</p>
</div>
</blockquote>
<p style="background:white"><span style="color:black">Yes, that is the wording I meant. The intent is to ensure the implementation does *not* have to put forth such effort. I don't understand where such an implication is coming from, but that wording has
confused at least three experienced wordsmiths, so I acknowledge there is an issue, but I don't understand what it is.</span></p>
<p style="background:white"><span style="color:black">I think it is important to say something here. Otherwise, one could claim that the terminal failing to display
</span><tt><span style="font-size:10.0pt;color:black">"μs"</span></tt><span style="color:black"> because it is configured for an incompatible encoding is non-conforming. Well, to the extent that the standard addresses such devices.</span></p>
<p style="background:white"><span style="color:black">Tom.</span></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="xxxmsonormal" style="background:white"> </p>
<p class="xxxmsonormal" style="background:white">Corentin’s P/R below seems to not have this concern.</p>
<p class="xxxmsonormal" style="background:white"> </p>
<p class="xxxmsonormal" style="background:white">Billy3</p>
<p class="xxxmsonormal" style="background:white"> </p>
</div>
<p class="MsoNormal" style="background:white"><span style="color:black"><img border="0" width="699" height="1" style="width:7.2812in;height:.0104in" id="Horizontal_x0020_Line_x0020_4" src="cid:image004.png@01D5994E.CDDA1CE0"></span><span style="color:black"><o:p></o:p></span></p>
<div id="x_x_x_divRplyFwdMsg">
<p class="MsoNormal" style="background:white"><b><span style="color:black">From:</span></b><span style="color:black"> Lib
</span><span style="color:black"><a href="mailto:lib-bounces@lists.isocpp.org"><lib-bounces@lists.isocpp.org></a></span><span style="color:black"> on behalf of Tom Honermann via Lib
</span><span style="color:black"><a href="mailto:lib@lists.isocpp.org"><lib@lists.isocpp.org></a></span><span style="color:black"><br>
<b>Sent:</b> Wednesday, November 6, 2019 1:12:48 PM<br>
<b>To:</b> Corentin </span><span style="color:black"><a href="mailto:corentin.jabot@gmail.com"><corentin.jabot@gmail.com></a></span><span style="color:black"><br>
<b>Cc:</b> Tom Honermann </span><span style="color:black"><a href="mailto:tom@honermann.net"><tom@honermann.net></a></span><span style="color:black">; C++ Library Evolution Working Group
</span><span style="color:black"><a href="mailto:lib-ext@lists.isocpp.org"><lib-ext@lists.isocpp.org></a></span><span style="color:black">; Library Working Group
</span><span style="color:black"><a href="mailto:lib@lists.isocpp.org"><lib@lists.isocpp.org></a></span><span style="color:black">;
</span><span style="color:black"><a href="mailto:unicode@isocpp.open-std.org">unicode@isocpp.open-std.org</a></span><span style="color:black">
</span><span style="color:black"><a href="mailto:unicode@open-std.org"><unicode@open-std.org></a></span><span style="color:black"><br>
<b>Subject:</b> Re: [isocpp-lib] [SG16-Unicode] [isocpp-lib-ext] [time.duration.io] : Is stream insertion behavior locale dependent when Period::type is micro?
<o:p></o:p></span></p>
<div>
<p class="MsoNormal" style="background:white"><span style="color:black"> <o:p></o:p></span></p>
</div>
</div>
<div>
<p class="MsoNormal" style="background:white"><span style="color:black">The intent of the wording is to say that implementors do *not* need to be aware of terminals or codecvt facets. Without this, the wording could be read that implementations must implement
magic to make the character display correctly. <o:p></o:p></span></p>
<div>
<p class="MsoNormal" style="background:white"><span style="color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt;background:white"><span style="color:black">Please read the wording again. Note that it says that, if those conditions are true, then the result is unspecified. <o:p></o:p></span></p>
<div id="x_x_x_x_AppleMailSignature">
<p class="MsoNormal" style="background:white"><span style="color:black">Tom.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt;background:white"><span style="color:black"><br>
On Nov 6, 2019, at 12:07 PM, Corentin <</span><span style="color:black"><a href="mailto:corentin.jabot@gmail.com">corentin.jabot@gmail.com</a></span><span style="color:black">> wrote:<o:p></o:p></span></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="color:black">Then I would just say associated execution encoding with charT
<o:p></o:p></span></p>
<div>
<p class="MsoNormal" style="background:white"><span style="color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="background:white"><span style="color:black">Extremely uncomfortable with involving stream, console or anything else not known at compile time <o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal" style="background:white"><span style="color:black"><o:p> </o:p></span></p>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="color:black">On Wed, 6 Nov 2019 at 04:51, Tom Honermann <</span><span style="color:black"><a href="mailto:tom@honermann.net">tom@honermann.net</a></span><span style="color:black">> wrote:<o:p></o:p></span></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<div>
<p class="MsoNormal" style="margin-left:369.6pt;background:white"><span style="color:black">On 11/6/19 8:30 AM, Howard Hinnant wrote:<br>
<br>
<o:p></o:p></span></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<pre style="background:white">You can comment the LWG issue (if you want) by emailing said comment to <a href="mailto:lwgchair@gmail.com" target="_blank">lwgchair@gmail.com</a>, specifying which issue you wish to comment and supplying the comment.</pre>
<pre style="background:white"><o:p> </o:p></pre>
<pre style="background:white">Howard</pre>
<pre style="background:white"><o:p> </o:p></pre>
<pre style="background:white">On Nov 5, 2019, at 10:32 PM, Corentin via Lib-Ext <a href="mailto:lib-ext@lists.isocpp.org" target="_blank"><lib-ext@lists.isocpp.org></a> wrote:</pre>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<pre style="background:white">Not sure how to do that proceduraly but here is some alternative wording.</pre>
<pre style="background:white">The "runtime" locale-tied encoding is *assumed to be* a super set of the execution encoding - to the extent the standard doesn't distinguish between the two</pre>
<pre style="background:white"><o:p> </o:p></pre>
<pre style="background:white"><o:p> </o:p></pre>
<pre style="background:white">If Period::type is micro, but the <ins>abstract</ins> character <ins>µ , which has the universal character name </ins> U+00B5 cannot be represented in the <ins>execution</ins> encoding <del>used for</del><ins> associated with the character type </ins> charT, the unit suffix "us" is used instead of "µs".</pre>
</blockquote>
</blockquote>
<p class="MsoNormal" style="margin-left:369.6pt;background:white"><span style="color:black"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:369.6pt;background:white"><span style="color:black">Howard and I discussed the wording I proposed today and we're now on the same page with regard to the intent.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:369.6pt;background:white"><span style="color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:369.6pt;background:white"><span style="color:black">With regard to Corentin's suggested wording above, "abstract character" and "execution encoding" are not current terms in the standard (well, the former is inherited
from our reference to the Unicode standard but is otherwise unused at present).
</span><span style="color:black"><a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwg21.link%2Fp1859r0&data=02%7C01%7Cbion%40microsoft.com%7Cfa7a7c5a0fdb4025e2f508d76376e659%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637087234642933273&sdata=%2FORYjQ55sYl4GhsFX0CTEpocoAAAcy%2Bom7H%2BXX4XhDA%3D&reserved=0" target="_blank">P1859R0</a></span><span style="color:black">
does intend to standardize new terminology, but we don't yet have consensus for what the new terms should be named. I think we should avoid using candidate names until we have such consensus.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:369.6pt;background:white"><span style="color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:369.6pt;background:white"><span style="color:black">Tom.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:369.6pt;background:white"><span style="color:black"><o:p> </o:p></span></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<pre style="background:white">On Mon, 4 Nov 2019 at 15:42, Tom Honermann via Lib-Ext <a href="mailto:lib-ext@lists.isocpp.org" target="_blank"><lib-ext@lists.isocpp.org></a> wrote:</pre>
<pre style="background:white">A new LWG issue was filed for this question today:</pre>
<pre style="background:white">- <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcplusplus.github.io%2FLWG%2Fissue3314&data=02%7C01%7Cbion%40microsoft.com%7Cfa7a7c5a0fdb4025e2f508d76376e659%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637087234642943267&sdata=Juy31tMGH2dxzmMF9Y%2FBRX1ra1%2BP4I1ZayTbEizrhQ0%3D&reserved=0" target="_blank">https://cplusplus.github.io/LWG/issue3314</a></pre>
<pre style="background:white"><o:p> </o:p></pre>
<pre style="background:white">This issue concerns the ostream inserters added for std::chrono::duration in C++20 and what the intended behavior is for a duration when period::type is micro.</pre>
<pre style="background:white"><o:p> </o:p></pre>
<pre style="background:white">[<a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Ftime.duration.io&data=02%7C01%7Cbion%40microsoft.com%7Cfa7a7c5a0fdb4025e2f508d76376e659%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637087234642943267&sdata=l1AbcrR%2BwVrCF8kMgSQ4rctBTHv5oBJCtGH0RhISgAA%3D&reserved=0" target="_blank">time.duration.io</a>]p4 states:</pre>
<pre style="background:white"><o:p> </o:p></pre>
<pre style="background:white"><o:p> </o:p></pre>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<pre style="background:white">If Period<span style="font-family:"Cambria Math",serif"></span>::<span style="font-family:"Cambria Math",serif"></span>type is micro, but the character U+00B5 cannot be represented in the encoding used for charT, the unit suffix "us" is used instead of "μs".</pre>
<pre style="background:white"><o:p> </o:p></pre>
</blockquote>
<pre style="background:white">The question is with regard to which one of the encodings used for charT is referred to here; the compile-time execution character set or the run-time locale dependent native character set?</pre>
<pre style="background:white"><o:p> </o:p></pre>
<pre style="background:white">The proposed resolution specifies that the compile-time execution character set is the intended one. My expectation is that this aligns with existing implementations, but I haven't checked.</pre>
<pre style="background:white"><o:p> </o:p></pre>
<pre style="background:white">Tom.</pre>
<pre style="background:white"><o:p> </o:p></pre>
</blockquote>
<pre style="background:white">_______________________________________________</pre>
<pre style="background:white">Lib-Ext mailing list</pre>
<pre style="background:white"><a href="mailto:Lib-Ext@lists.isocpp.org" target="_blank">Lib-Ext@lists.isocpp.org</a></pre>
<pre style="background:white">Subscription: <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.isocpp.org%2Fmailman%2Flistinfo.cgi%2Flib-ext&data=02%7C01%7Cbion%40microsoft.com%7Cfa7a7c5a0fdb4025e2f508d76376e659%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637087234642953264&sdata=4S9xhpGRJiGcLQUrPRTs87tEVJjoEK5p%2Bz99arrZKEA%3D&reserved=0" target="_blank">https://lists.isocpp.org/mailman/listinfo.cgi/lib-ext</a></pre>
<pre style="background:white">Link to this post: <a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.isocpp.org%2Flib-ext%2F2019%2F11%2F13309.php&data=02%7C01%7Cbion%40microsoft.com%7Cfa7a7c5a0fdb4025e2f508d76376e659%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637087234642963257&sdata=aLsS3c9lQEeFIJSg7fGx8z0h3Ev7OqM2yM3zMRLnHSw%3D&reserved=0" target="_blank">http://lists.isocpp.org/lib-ext/2019/11/13309.php</a></pre>
<pre style="background:white">_______________________________________________</pre>
<pre style="background:white">Lib-Ext mailing list</pre>
<pre style="background:white"><a href="mailto:Lib-Ext@lists.isocpp.org" target="_blank">Lib-Ext@lists.isocpp.org</a></pre>
<pre style="background:white">Subscription: <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.isocpp.org%2Fmailman%2Flistinfo.cgi%2Flib-ext&data=02%7C01%7Cbion%40microsoft.com%7Cfa7a7c5a0fdb4025e2f508d76376e659%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637087234642963257&sdata=Mm5a4PcNosOjAvyu6iQkL%2Fp3fbMOZngnwWDTFvXfuvw%3D&reserved=0" target="_blank">https://lists.isocpp.org/mailman/listinfo.cgi/lib-ext</a></pre>
<pre style="background:white">Link to this post: <a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.isocpp.org%2Flib-ext%2F2019%2F11%2F13325.php&data=02%7C01%7Cbion%40microsoft.com%7Cfa7a7c5a0fdb4025e2f508d76376e659%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637087234642973250&sdata=RfG9Uu%2BU8vgsIcPxAZkbLFfruv8WVKp%2Fn1ig3%2F7RP%2F4%3D&reserved=0" target="_blank">http://lists.isocpp.org/lib-ext/2019/11/13325.php</a></pre>
</blockquote>
<p class="MsoNormal" style="margin-left:441.6pt;background:white"><span style="color:black"><br>
<br>
<o:p></o:p></span></p>
<pre style="background:white">_______________________________________________</pre>
<pre style="background:white">SG16 Unicode mailing list</pre>
<pre style="background:white"><a href="mailto:Unicode@isocpp.open-std.org" target="_blank">Unicode@isocpp.open-std.org</a></pre>
<pre style="background:white"><a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.open-std.org%2Fmailman%2Flistinfo%2Funicode&data=02%7C01%7Cbion%40microsoft.com%7Cfa7a7c5a0fdb4025e2f508d76376e659%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637087234642973250&sdata=oD3lJy0hAQ3sSEogwFznvSjV0kmdkyCm%2BaeLIT8Prfw%3D&reserved=0" target="_blank">http://www.open-std.org/mailman/listinfo/unicode</a></pre>
</blockquote>
<p style="background:white"><o:p> </o:p></p>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
<p style="background:white"><o:p> </o:p></p>
</div>
</blockquote>
<p style="background:white"><o:p> </o:p></p>
</div>
</blockquote>
<p style="background:white"><o:p> </o:p></p>
</div>
</blockquote>
<p><o:p> </o:p></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
</div>
</body>
</html>