<div dir="ltr">Phase 1 the bare accent is translated to universal-character-name, so I don&#39;t think there is a detectable difference, at least that way, for 

<span style="color:rgb(80,0,80)">#define accent(x) x ## \u0300 vs </span>

<span style="color:rgb(80,0,80)">#define accent(x) x ## `<br></span>Now, in phase 3 we are converting to preprocessor-tokens and whitespace. So we get {x}{white-space}{##}{white-space} and then I think {\u0300}, not {\}{u}{0}{3}{0}{0}, because \u0300 is a &quot;each non-white-space character that cannot be one of the above&quot; , on the theory that if it wasn&#39;t a combining character, but instead something valid, like \00C0,  À, we would expect the result to be the two characters pasted together? That is a &#39;universal-character-name&#39; names a character. <br><br>One of the reasons to eventually get back to my paper trying to clean up &#39;character&#39; and related terms, because they turn out to be much more complex and vague than expected. It needs substantive revision, though, because some parts that are a bit ambiguous I had interpreted other than how it seems to be intended to be interpreted. </div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Apr 8, 2020 at 6:00 PM Jens Maurer via SG16 &lt;<a href="mailto:sg16@lists.isocpp.org">sg16@lists.isocpp.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 08/04/2020 23.49, Zach Laine via SG16 wrote:<br>
&gt; On Wed, Apr 8, 2020 at 4:38 PM Jens Maurer via SG16 &lt;<a href="mailto:sg16@lists.isocpp.org" target="_blank">sg16@lists.isocpp.org</a> &lt;mailto:<a href="mailto:sg16@lists.isocpp.org" target="_blank">sg16@lists.isocpp.org</a>&gt;&gt; wrote:<br>
&gt;<br>
&gt;     On 08/04/2020 23.27, Hubert Tong via SG16 wrote:<br>
&gt;     &gt; Seems GCC is right again...<br>
&gt;     &gt;<br>
&gt;     &gt; \u0300, whether the result of forming a UCN or physically present as a UCN is a string of six characters from the basic source character set...<br>
&gt;<br>
&gt;     So, it&#39;s six characters, so<br>
&gt;<br>
&gt;     #define accent(x) x ## \u0300<br>
&gt;<br>
&gt;     becomes<br>
&gt;<br>
&gt;<br>
&gt;     #define accent(x) x ## \ u0300<br>
&gt;<br>
&gt;     with \ a lone character and u0300 a separate preprocessing-token / identifier.<br>
&gt;<br>
&gt;     Disturbing UCNs like that is really counter-intuitive.<br>
&gt;     We should fix that.<br>
&gt;<br>
&gt;     Jens<br>
&gt;<br>
&gt;<br>
&gt; Does that also imply that this:<br>
&gt;<br>
&gt; #define accent(x) x ## \u0300<br>
&gt;<br>
&gt; and this:<br>
&gt;<br>
&gt; #define accent(x) x ## `<br>
&gt;<br>
&gt; are not equivalent?  If so, I&#39;m even more disturbed.<br>
<br>
Yes.  Be disturbed.<br>
<br>
Jens<br>
<br>
-- <br>
SG16 mailing list<br>
<a href="mailto:SG16@lists.isocpp.org" target="_blank">SG16@lists.isocpp.org</a><br>
<a href="https://lists.isocpp.org/mailman/listinfo.cgi/sg16" rel="noreferrer" target="_blank">https://lists.isocpp.org/mailman/listinfo.cgi/sg16</a><br>
</blockquote></div>

