<div dir="ltr">Thank you, Tom, for your leadership during your tenure as chair.<br><br><div>-- HT</div><div><br></div><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Sat, Mar 14, 2026 at 10:34 PM Tom Honermann 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"><u></u>

  
    
  
  <div>
    <p>My notes for this meeting are available on the (✨NEW!✨) WG21 wiki
      <a href="https://wiki.isocpp.org/2026_Telecons:SG16Teleconference2026-03-11" target="_blank">here</a>.</p>
    <p>The <a href="https://github.com/cplusplus/papers/issues/2083" target="_blank">P3412
        GH issue</a> and the <a href="https://github.com/cplusplus/papers/issues/2602" target="_blank">P3951 GH
        issue</a> have been updated to record the poll that was taken
      and to note that SG16 has not completed its review of these
      proposals.</p>
    <p>This was my last time acting as SG16 chair for an SG16 meeting. I
      don&#39;t expect further review of these papers to be disrupted by the
      change in chairs and will assist Steve, at his request, with any
      scheduling, preparation, or other planning for further review.</p>
    <p>Tom.</p>
    <p></p>
    <div>On 3/10/26 4:11 PM, Tom Honermann via
      SG16 wrote:<br>
    </div>
    <blockquote type="cite">
      
      <p>SG16 will hold a meeting <b>tomorrow</b>, Wednesday, March
        11th, at 19:30 UTC (<a href="https://www.timeanddate.com/worldclock/converter.html?iso=20260311T193000&amp;p1=1440&amp;p2=tz_pdt&amp;p3=tz_mdt&amp;p4=tz_cdt&amp;p5=tz_edt&amp;p6=tz_cet" target="_blank">timezone conversion</a>).</p>
      <p><b>Note that daylight savings time has started in North
          America, so this meeting will start one hour later relative to
          the local time of our previous meeting. There is no local time
          difference for those attending from Europe.</b></p>
      <p>The agenda is:</p>
      <ul>
        <li><a href="https://wg21.link/p3412r3" target="_blank">P3412R3:
            String interpolation</a>.</li>
        <li><a href="https://isocpp.org/files/papers/D3951R1.html" target="_blank">D3951R1: String Interpolation with
            Template Strings</a>.</li>
      </ul>
      <p>We began review of these proposals during the <a href="https://wiki.isocpp.org/2026_Telecons:SG16Teleconference2026-02-25" target="_blank">2026-02-25
          SG16 meeting</a>, but did not conclude discussion (we reviewed
        an earlier revision of <a href="https://wg21.link/p3412r1" target="_blank">P3412R1</a> during the <a href="https://wiki.isocpp.org/2025_Telecons:SG16Teleconference2025-02-26" target="_blank">2025-02-26
          SG16 meeting</a> a year ago). D3951R1 remains a draft
        revision, but was updated since our last meeting to include
        support for UDLs; see <a href="https://isocpp.org/files/papers/D3951R1.html#support-for-user-defined-literals" target="_blank">section
          3.10, &quot;Support for User-Defined Literals&quot;</a>.</p>
      <p>Discussion in our last meeting suggested an emerging preference
        for the lambda-like synthesis of an unnamed type model proposed
        by D3951R1 over the <font face="monospace">__format__</font>
        mechanism of P3412R3. The representation of interpolated strings
        is not a core SG16 concern, but it is relevant to other concerns
        that we should be expected to provide guidance on. For example,
        whether the selected model should be amenable to support for
        other formatting facilities such as <font face="monospace">printf()</font>
        or logging frameworks. Both proposals discuss support for <font face="monospace">printf()</font> via translation of a <font face="monospace"><a>std::format</a></font>-like
        <i>format-specifier</i> field, but other options are possible.
        For example, the <i>format specifier</i> could allow the
        specifiers to be context dependent; e.g., <font face="monospace"><a>std::printf(f</a>&quot;{<a>name:%s</a>}\n&quot;)</font>. The details
        of how such support might be provided are not so important right
        now, but it would be helpful to provide direction on whether
        these proposals should be extensible to <font face="monospace">printf()</font>
        and other formatting facilities. Candidate polls:</p>
      <ul>
        <li>Poll: Interpolated strings should be usable as the format
          argument to <font face="monospace"><a>std::printf()</a></font>.</li>
        <li>Poll: Interpolated strings should be consumable by arbitrary
          formatting facilities.</li>
      </ul>
      <p>Full support for <font face="monospace"><a>std::format()</a></font>, <font face="monospace"><a>std::print()</a></font>,
        and <font face="monospace"><a>std::printf()</a></font>
        requires support for <font face="monospace">char</font> and the
        L (<font face="monospace">wchar_t</font>) encoding prefix. It
        would be helpful to establish guidance for support of the other
        encoding prefixes and character types. Candidate polls:</p>
      <ul>
        <li>Poll: The u8 (<font face="monospace">char8_t</font>)
          encoding prefix should be supported.</li>
        <li>Poll: The u (<font face="monospace">char16_t</font>)
          encoding prefix should be supported.</li>
        <li>Poll: The U (<font face="monospace">char32_t</font>)
          encoding prefix should be supported.</li>
      </ul>
      <p>Previous discussion has concerned lexing of interpolated
        strings, but we haven&#39;t established positions on how alternate
        tokens, digraphs, UCNs, escape sequences, and UDLs should be
        handled, particularly with regard to support for raw-string
        literals. Consider <font face="monospace">fR&quot;xxx(<font color="#ff7800">{foo(<b>u8&#39;\t&#39;</b>)}</font>)xxx&quot;</font>. Is
        the expression well-formed because <font face="monospace">\t</font>
        denotes the tab character or is it ill-formed because
        multicharacter literals cannot have an encoding prefix? If the
        latter, can string literal concatenation be used to avoid the
        problem? e.g., <font face="monospace">fR&quot;xxx(<font color="#ff7800">{foo(</font>)xxx&quot; <b>&quot;<font color="#ff7800">u8&#39;\t&#39;</font>&quot;</b>
          R&quot;xxx(<font color="#ff7800">)}</font>)xxx&quot;</font>? If so, does
        concatenation within an extraction field create implementation
        challenges? Candidate polls:</p>
      <ul>
        <li>Poll: Lexing of interpolated strings should scan for
          characters within extraction fields (not tokens; e.g., <font face="monospace">::</font> is two colon characters, not the
          scope resolution operator).</li>
        <li>Poll: Extraction fields may span concatenated string
          literals (e.g., <font face="monospace">f&quot;{&quot; &quot;name&quot; &quot;}&quot;</font>).</li>
        <li>Poll: Alternate tokens and digraphs behave the same as their
          primary token when present in an extraction field (but not in
          the literal portions of the interpolated string).</li>
        <li>Poll: UCNs may not designate members of the basic character
          set when present in an extraction field (but may in the
          literal portions of the (non-raw) interpolated string or in a
          nested literal).</li>
        <li>Poll: Escape sequences (simple, numeric, and conditional)
          are not processed as escape sequences when present in an
          extraction field (e.g., they are initially treated as in raw
          string literals, but may act as an escape sequence in a nested
          literal).</li>
      </ul>
      <p>Tom.</p>
      <br>
      <fieldset></fieldset>
    </blockquote>
  </div>

-- <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>
Link to this post: <a href="http://lists.isocpp.org/sg16/2026/03/4699.php" rel="noreferrer" target="_blank">http://lists.isocpp.org/sg16/2026/03/4699.php</a><br>
</blockquote></div></div>

