<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
  <head>
    <meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
    <title>N4921 Editor's Report: C++ Library Fundamentals v3 TS</title>
    <style type="text/css">
      html { margin: 0; padding: 0; color: black; background-color: white; }
      body { padding: 2em; font-size: medium; font-family: "DejaVu Serif", serif; line-height: 150%; }
      code { font-family: "DejaVu Sans Mono", monospace; color: #006; }

      h1, h2, h3 { margin: 1.5em 0 .75em 0; line-height: 125%; }

      .docinfo p { margin: 0; }
      .docinfo address { font-style: normal; }

      div.code { white-space: pre-line; font-family: "DejaVu Sans Mono", monospace;
                 border: thin solid #E0E0E0; background-color: #F8F8F8; padding: 1em;
                 border-radius: 4px; line-height: 200%; }

      div.strictpre { white-space: pre; }

      sup, sub { line-height: 0; }

      .quote { display: inline-block; clear: both; margin-left: 1ex;
                 border: thin solid #E0E0E0; background-color: #F8F8F8; padding: 1ex; }

      .modify { border-left: thick solid #999; border-right: thick solid #999; padding: 0 1em; }
      .insert { border-left: thick solid #0A0; border-right: thick solid #0A0; padding: 0 1em; }
      .comment { color: #753; }
      .comment a:link, .comment a:visited { color: #A51; }

      table { border-top: 2px solid black; border-bottom: 2px solid black; border-collapse: collapse; margin: 3em auto; }
      thead th { border-bottom: 2px solid black; }
      th.sep { border-top: 2px solid black; border-bottom: 2px solid black; }
      th, td { text-align: left; padding: 0; margin: 0; }
      tr:first-child td { padding-top: 1ex; }
      tr:last-child td { padding-bottom: 1ex; }

      td.code { white-space: pre-line; font-family: "DejaVu Sans Mono", monospace;
                padding: 1em; line-height: 150%; }

      table.x { caption-side: bottom; }
      table.x caption { padding-top: 1ex; }
      .x th, .x td { padding: 1ex 1ex 1ex 1ex; }
      .x th:first-child, .x td:first-child { padding-left: 1ex; }
      td.y { padding: 0 1em; }

      p.skip { margin-top: 1em; }

      ins { color: #090; }
      del { color: #A00; }
      ins code, del code { color: inherit; }

      span.new { color: #080; font-weight: bold; }
      span.old { color: #800; font-weight: bold; }

      #toggleparams:checked ~ * .params { display: none; }
    </style>
  </head>
  <body>
    <h1>N4921 Editor&rsquo;s Report: C++ Extensions for Library Fundamentals, Version 3</h1>

    <div class="docinfo">
      <p>Date: 2022-08-15</p>
      <address>Thomas K&ouml;ppe, Editor (Google DeepMind)  &lt;<a href="mailto:tkoeppe@google.com">tkoeppe@google.com</a>&gt;</address>
    </div>

    <h2>New papers</h2>

    <ul>
      <li><a href="http://open-std.org/jtc1/sc22/wg21/docs/papers/2022/n4920.html">N4920</a>
        is the current working draft. It revises
        <a href="http://open-std.org/jtc1/sc22/wg21/docs/papers/2022/n4908.html">N4908</a>.</li>
      <li><a href="http://open-std.org/jtc1/sc22/wg21/docs/papers/2022/n4921.html">N4921</a>
        is this Editor&rsquo;s Report.</li>
    </ul>

    <h2>Change history and (no) motions</h2>

    <p>There have not been any motions to modify the working draft since the previous revision;
      this revision has only seen editorial changes. Notably, the draft has been brought in line
      with ISO's requirement to avoid hanging paragraphs. See the commit history below for details.</p>

    <h2>Commit history</h2>

    <p>From the <a href="https://github.com/cplusplus/fundamentals-ts">draft sources on GitHub</a>.</p>

    <div class="code"><!--
-->commit c9567ae8c4a0ba664fc270263c74534f466db95a
Author: Thomas Köppe &lt;tkoeppe@google.com&gt;
Date:   Fri Jul 8 13:34:33 2022 +0100

    [scopeguard.uniqueres.assign] Add missing "Returns:" element.
    
    A "Returns: *this" element is clearly intended here, but was missing in the original proposal P0052R10.</div>

    <div class="code"><!--
-->commit ec7e2890bc56949c8e0ca5e2e7e26c0f38b81071
Author: Thomas Köppe &lt;tkoeppe@google.com&gt;
Date:   Thu Jul 28 14:08:32 2022 +0100

    [futures.promise, futures.task] Change "sub-clause" to "subclause.
    
    Also remove reference to non-existent subclauses.</div>

    <div class="code"><!--
-->commit 6872490565d766e159bb7df6560882d0465e8233
Author: Thomas Köppe &lt;tkoeppe@google.com&gt;
Date:   Thu Jul 28 14:09:50 2022 +0100

    [propagate_const, meta.trans.other] Change "sub-clause" to "subclause.</div>

    <div class="code"><!--
-->commit 6e3a227ad10310156be817b5e179eea36730e5ce
Author: Thomas Köppe &lt;tkoeppe@google.com&gt;
Date:   Thu Jul 28 14:09:09 2022 +0100

    [func.wrap.func] Insert "overview" subclause.
    
    Also change "sub-clause" to "subclause" and reword the reference to
    "subclause [func.wrap.func] to match the new structure.</div>

    <div class="code"><!--
-->commit eeb2687de54147d2e5b982dd7f395956ff6b757e
Author: A. Jiang &lt;de34@live.cn&gt;
Date:   Thu Jul 28 22:52:25 2022 +0800

    [mods.allocator.uses] Fix naming of std::pmr::memory_resource and xref
    
    The previous `std::experimental::pmr::memory_resource` feature has been adopted by C++17
    and is not part of the LFTS v3; `std::pmr::memory_resource` should be used instead.
    
    Also update the IS label index with the new lable "mem.res".</div>

    <div class="code"><!--
-->commit 88765065868b793c09762095b2250012970d40b2
Author: Thomas Köppe &lt;tkoeppe@google.com&gt;
Date:   Thu Jul 28 16:05:49 2022 +0100

    [propagate_const] Restructure "requirements" subclauses.
    
    The new structure avoids hanging paragraphs in
    [propagate_const.requirements] and removes overly deep nesting.</div>

    <div class="code"><!--
-->commit 1535ed5bb65f2562bfe3e7fad50c8ce68f4f337b
Author: Thomas Köppe &lt;tkoeppe@google.com&gt;
Date:   Thu Jul 28 16:52:08 2022 +0100

    [iterator.ostream.joiner] Move opening to new "Overview" subclause.
    
    This avoids hanging paragraphs in [iterator.ostream.joiner].</div>

    <div class="code"><!--
-->commit c154c2ebda6af63bf3ed43f28e56daddec668835
Author: Thomas Köppe &lt;tkoeppe@google.com&gt;
Date:   Thu Jul 28 17:26:36 2022 +0100

    [memory.observer.ptr] Move opening paragraphs into Overview.
    
    This avoids hanging paragraphs, and the resulting structure works
    nicely. We also rename the major subclause from "Non-owning pointers"
    to "Non-owning (observer) pointers", since the observer_ptr is the
    only content of this subclause.</div>

  </body>
</html>
