<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta http-equiv="Content-Style-Type" content="text/css" />
  <meta name="generator" content="pandoc" />
  <title>Editor’s Report for the Ranges TS</title>
  <style type="text/css">code{white-space: pre;}</style>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="607">
  <tr>
    <td width="172" align="left" valign="top">Document number:</td>
    <td width="435">
      N4652
    </td>
  </tr>
  <tr>
    <td width="172" align="left" valign="top">Date:</td>
    <td width="435">2017-03-15</td>
  </tr>
  <tr>
    <td width="172" align="left" valign="top">Project:</td>
    <td width="435">C++ Extensions for Ranges</td>
  </tr>
  <tr>
    <td width="172" align="left" valign="top">Reply-to:</td>
    <td width="435">
      Casey Carter &lt;<a href="mailto:Casey@Carter.net">Casey@Carter.net</a>&gt;<br>
    </td>
  </tr>
</table>
<div id="header">
<h1 class="title">Editor’s Report for the Ranges TS</h1>
</div>
<div id="TOC">
<ul>
<li><a href="#new-papers"><span class="toc-section-number">1</span> New Papers</a></li>
<li><a href="#changes-since-n4620"><span class="toc-section-number">2</span> Changes since N4620</a><ul>
<li><a href="#motions-incorprated-into-the-working-draft-in-kona"><span class="toc-section-number">2.1</span> Motions incorprated into the working draft in Kona:</a><ul>
<li><a href="#lwg-motion-23-p0621r0-ready-ranges-ts-issues"><span class="toc-section-number">2.1.1</span> LWG Motion 23: P0621R0 “Ready Ranges TS Issues”</a></li>
</ul></li>
<li><a href="#notable-editorial-changes"><span class="toc-section-number">2.2</span> Notable editorial changes:</a></li>
<li><a href="#less-notable-editorial-changes"><span class="toc-section-number">2.3</span> Less notable editorial changes</a></li>
</ul></li>
</ul>
</div>
<h1 id="new-papers"><span class="header-section-number">1</span> New Papers</h1>
<ul>
<li>N4651 is the prospective working draft of the Ranges TS. It is intended to replace N4620.</li>
<li>N4652 is this Editor’s Report.</li>
</ul>
<h1 id="changes-since-n4620"><span class="header-section-number">2</span> Changes since N4620</h1>
<h2 id="motions-incorprated-into-the-working-draft-in-kona"><span class="header-section-number">2.1</span> Motions incorprated into the working draft in Kona:</h2>
<h3 id="lwg-motion-23-p0621r0-ready-ranges-ts-issues"><span class="header-section-number">2.1.1</span> LWG Motion 23: P0621R0 “Ready Ranges TS Issues”</h3>
<ul>
<li><p><a href="https://github.com/ericniebler/stl2/issues/189">189</a> concept <code>Callable</code> should perfectly forward its function to <code>invoke</code></p>
<p>Applied in <a href="https://github.com/ericniebler/stl2/commit/ea4bd6e63f12a0a24e61f889bcca1ee6a79c8652">ea4bd6e6</a>.</p></li>
<li><p><a href="https://github.com/ericniebler/stl2/issues/236">236</a> <code>projected&lt;I&gt;::value_type</code> incorrectly decays arrays to pointers</p>
<p>Applied in <a href="https://github.com/ericniebler/stl2/commit/66cb441a80e489f436b5141ba04962e79ded6e55">66cb441a</a>.</p></li>
<li><p><a href="https://github.com/ericniebler/stl2/issues/237">237</a> <code>IndirectCallable</code> should use <code>value_type_t&lt;I&gt;&amp;</code> instead of <code>value_type_t&lt;I&gt;</code></p>
<p>Applied in <a href="https://github.com/ericniebler/stl2/commit/ea4bd6e63f12a0a24e61f889bcca1ee6a79c8652">ea4bd6e6</a>.</p></li>
<li><p><a href="https://github.com/ericniebler/stl2/issues/238">238</a> P0022 broke <code>indirect_result_of</code></p>
<p>Applied in <a href="https://github.com/ericniebler/stl2/commit/f75c16db5b09a33016b6fe3112a0270a2dec16c9">f75c16db</a>.</p></li>
<li><p><a href="https://github.com/ericniebler/stl2/issues/239">239</a> Remove the “Experimental additional constraints” from <code>Readable</code></p>
<p>Applied in <a href="https://github.com/ericniebler/stl2/commit/822e3d65b31ef8a97fe14892ceff8950310508df">822e3d65</a>.</p></li>
<li><p><a href="https://github.com/ericniebler/stl2/issues/240">240</a> Should <code>Writable</code> require <code>Semiregular</code>, or “Move-Defaultable”</p>
<p>Applied in <a href="https://github.com/ericniebler/stl2/commit/916be231250e8a7e1a7db7c59e8074237176fddf">916be231</a>.</p></li>
<li><p><a href="https://github.com/ericniebler/stl2/issues/241">241</a> <code>IndirectlySwappable</code> is broken</p>
<p>Applied in <a href="https://github.com/ericniebler/stl2/commit/54457f93b929e82c8f223f441a966d8d18e41662">54457f93</a>.</p></li>
<li><p><a href="https://github.com/ericniebler/stl2/issues/242">242</a> Customizing <code>iter_move</code> and <code>iter_swap</code> is needlessly complicated</p>
<p>Applied in <a href="https://github.com/ericniebler/stl2/commit/f016416f8f81e2e2389338f018d401828a9eaf22">f016416f</a>.</p></li>
<li><p><a href="https://github.com/ericniebler/stl2/issues/243">243</a> <code>difference_type</code> of arrays</p>
<p>Applied in <a href="https://github.com/ericniebler/stl2/commit/8c035d377f73e2e7ea8f1717ccfd37d0444b934a">8c035d37</a>.</p></li>
<li><p><a href="https://github.com/ericniebler/stl2/issues/244">244</a> <code>move_iterator::operator*</code> should be defined in terms of <code>iter_move</code></p>
<p>Applied in <a href="https://github.com/ericniebler/stl2/commit/ff2a878e1003e4035cefc434f637a921ec0438bf">ff2a878e</a>, with an editorial correction of the wording for [move.iter.op.star] from “Equivalent to: <code>return iter_move(i + n);</code>” to “Equivalent to: <code>return iter_move(current + n);</code>”.</p></li>
<li><p><a href="https://github.com/ericniebler/stl2/issues/258">258</a>: Remove subsection “C library algorithms” from <code>&lt;experimental/ranges/algorithm&gt;</code></p>
<p>Applied in <a href="https://github.com/ericniebler/stl2/commit/c9e4cc8db9faf83012f47026ee0fb2ae3739036d">c9e4cc8d</a>.</p></li>
</ul>
<h2 id="notable-editorial-changes"><span class="header-section-number">2.2</span> Notable editorial changes:</h2>
<ul>
<li><p><a href="https://github.com/ericniebler/stl2/commit/e15540b17427724af926455e951b0cf53f4594cc">e15540b1</a> major reorg of <code>&lt;iterator&gt;</code>; add concepts to the synopsis</p>
<p>Cleanup of the <code>&lt;experimental/ranges/iterator&gt;</code> header, most significantly including the iterator concepts in the header synposis. (Partially addresses <a href="https://github.com/ericniebler/stl2/issues/11">issue 11</a>.)</p></li>
<li><p><a href="https://github.com/ericniebler/stl2/commit/1862bd89cda5bde44993c0e8c4b6c0103825d594">1862bd89</a> add <code>&lt;experimental/ranges/concepts&gt;</code> synopsis</p>
<p>Adds the missing synopsis of the <code>&lt;experimental/ranges/concepts&gt;</code> header. (Partially addresses <a href="https://github.com/ericniebler/stl2/issues/11">issue 11</a>; directly addresses <a href="https://github.com/ericniebler/stl2/issues/349">NB comment US-6 / issue 349</a>.)</p></li>
<li><p><a href="https://github.com/ericniebler/stl2/commit/aced8dc9a1b82d224460750c1c4c0bbd8e8e7127">aced8dc9</a> Relocate deprecated algorithm overloads completely to Annex A</p>
<p>As requested by <a href="https://github.com/ericniebler/stl2/issues/359">NB US-8 / issue 359</a>, move the deprecated overloads of <code>equal</code>, <code>is_permutation</code>, <code>mismatch</code>, <code>swap_ranges</code>, and <code>transform</code> completely into the Annex.</p></li>
<li><p><a href="https://github.com/ericniebler/stl2/commit/a8f86656bfa047f5e327166cf7201d8f19d309f6">a8f86656</a> Replace <code>distance(f, l)</code> with <code>l - f</code> in [alg.is_permutation]/3</p>
<p>As requested by <a href="https://github.com/ericniebler/stl2/issues/356">NB JP-2 / issue 356</a>.</p></li>
<li><p><a href="https://github.com/ericniebler/stl2/commit/ade5d7a0abc19d7b645a1c70abc58691c97a96c1">ade5d7a0</a> Relocate header table; macros are not entities</p>
<p>As requested by <a href="https://github.com/ericniebler/stl2/issues/347">NB US-4 / issue 347</a>, clarify that macros are not entities.</p></li>
<li><p><a href="https://github.com/ericniebler/stl2/commit/85b5918362094e59529adbd6e7c1e7737c5e1775">85b59183</a> “equal” for customization point objects means [concepts.lib.general.equality]</p>
<p>As requested by <a href="https://github.com/ericniebler/stl2/issues/346">NB US-3 / issue 346</a>, clarify the meaning of “equal” as used in the definition of <em>customization point object</em>.</p></li>
<li><p><a href="https://github.com/ericniebler/stl2/commit/99da7818db38773fac5e95ab665715cc85161a10">99da7818</a> Directory? What’s a directory?</p>
<p>As requested by <a href="https://github.com/ericniebler/stl2/issues/344">NB US-1 / issue 344</a>, don’t use the term “directory” to describe the new headers.</p></li>
<li><p><a href="https://github.com/ericniebler/stl2/commit/3bcd694f1d23486c9943cbec9feb1ec02dd5e0e4">3bcd694f</a> Setup clauses 1-3 per ISO/IEC directives part 2</p>
<p>ISO/IEC directives part 2 demands that clauses 1-3 are exactly “Scope,” “References,” and “Terms and Definitions.” This pushes the pre-existing section numbers up by three relative to their numbering in N4620. This change was also requested by <a href="https://github.com/ericniebler/stl2/issues/341">NB CA-1 / issue 341</a>.</p></li>
<li><p><a href="https://github.com/ericniebler/stl2/commit/6d2ff48e4acfe1bda3444cce5c6a24320d550dc1">6d2ff48e</a> argument expressions to <code>ranges::swap</code> reference, rather than denote, objects</p>
<p>Clarification confusion caused by the specifications of <code>ranges::swap</code> and <code>ranges::iter_swap</code> both using the term “denote” but with differing meanings, per <a href="https://github.com/ericniebler/stl2/issues/306">issue 306</a>.</p></li>
<li><p><a href="https://github.com/ericniebler/stl2/commit/283fa47b088d23f9a535dc8e8dfba616d05b9151">283fa47b</a> Clarify iterators.bidi/3.3</p>
<p>Clarify [iterators.bidirectional]/3.3 “If <code>bool(a == b)</code>, then <code>bool((a--, a) == --b)</code>.”, as requested during LWG review in Issaquah recorded in <a href="https://github.com/ericniebler/stl2/issues/292">issue 292</a>.</p></li>
<li><p><a href="https://github.com/ericniebler/stl2/commit/9f81821b1018ef19e04d76520a43d16d7aa377e6">9f81821b</a> Reorganize iterator.requirements.general to clarify presentation</p>
<p>As requested by <a href="https://github.com/ericniebler/stl2/issues/352">NB GB-3 / issue 352</a>.</p></li>
<li><p><a href="https://github.com/ericniebler/stl2/commit/484b24a2624a89fd35208b6d43fe5cba2388d35b">484b24a2</a> Define “projection”; Fixes #221.</p>
<p>As requested by LWG during the third Ranges review telecon, recorded in <a href="https://github.com/ericniebler/stl2/issues/221">issue 221</a>.</p></li>
<li><p><a href="https://github.com/ericniebler/stl2/commit/f191094bb9c10d3ad0970ce44f8a4f4f7fb457cf">f191094b</a> Patch for #353 (#376)</p>
<p>Clarify the <code>&amp;i == &amp;++i</code> semantic requirement for <code>WeaklyIncrementable</code>, as requested by <a href="https://github.com/ericniebler/stl2/issues/353">NB GB-4 / issue 353</a>.</p></li>
</ul>
<h2 id="less-notable-editorial-changes"><span class="header-section-number">2.3</span> Less notable editorial changes</h2>
<p>Several less significant editorial changes occurred between publishing N4620 and N4651 (See the git revision history at <a href="https://github.com/ericniebler/stl2/compare/N4620...N4651"><code>https://github.com/ericniebler/stl2/compare/N4620...N4651</code></a>) with git log entries:</p>
<pre>
commit c4ab9e9dde3cf7705ed7ea2d422fc6c66cbec19d
Author: Casey Carter &lt;Casey@Carter.net>
Date:   Wed Mar 15 13:28:54 2017 -0700

    [EDITORIAL] Clarify the specification of some of the comparison concepts

    per LWG Kona direction.

commit d966cba02986d7154ac3c2346653afcb4fb566ae
Author: Casey Carter &lt;Casey@Carter.net>
Date:   Mon Mar 13 17:53:51 2017 -0700

    [EDITORIAL] Remove unneeded std:: qualifications

    per LWG Kona direction.

commit 28572c54e719038531afe04248da1a58ec846950
Author: Casey Carter &lt;Casey@Carter.net>
Date:   Thu Mar 9 18:13:49 2017 -0800

    [EDITORIAL] swap u and v in CopyConstructible's "v is equal to u"

    per LWG Kona direction

commit caa3aa7e7f4baf0dbffb10552358a2b81f4c28a4
Author: Casey Carter &lt;Casey@Carter.net>
Date:   Thu Mar 9 18:07:40 2017 -0800

    [EDITORIAL] Note that Destructible forbids noexcept(false) destructors
    per LWG Kona direction

commit 206705564f3ef9928ef70f82a1e2bb801149a647
Author: Casey Carter &lt;Casey@Carter.net>
Date:   Thu Mar 9 17:52:38 2017 -0800

    [EDITORIAL] Rename Readable's parameter to In per LWG Kona direction

    Also correct the declaration of Writable in the &lt;iterator> synopsis.

commit c684161853eedf56952a4a416624ac57e2742f27
Author: Casey Carter &lt;Casey@Carter.net>
Date:   Thu Mar 9 17:47:38 2017 -0800

    [EDITORIAL] Don't qualify addressof per LWG Kona review

commit d4354511ef0f4197b28ba01a951afa24b39cdd7d
Author: Casey Carter &lt;Casey@Carter.net>
Date:   Thu Mar 9 17:44:40 2017 -0800

    [EDITORIAL] Clarify Assignable per LWG Kona review

commit f04054827b39ee5e8a8bac48c7c36255feccbe98
Author: Casey Carter &lt;Casey@Carter.net>
Date:   Thu Mar 9 17:04:33 2017 -0800

    [EDITORIAL] Replace "valid but unspecified" notes with references to lib.types.movedfrom

    Per LWG Kona instructions.

commit 04a5b098c050759486c982c8fcc65d00e73db7f7
Author: Casey Carter &lt;Casey@Carter.net>
Date:   Thu Mar 9 16:53:30 2017 -0800

    Cleanup "previous value" language in Swappable and MoveConstructible

    Addresses #293.

commit 9ad5341e9dd7e476e27fb647ae2cf3ba07f99c29
Author: Christopher Di Bella &lt;cjdb.ns@gmail.com>
Date:   Sat Feb 18 15:42:03 2017 +1100

    Patched #297 (#333)

    Annex C is not normative, so this change is editorial.

commit 923b7b5552db8cb0f850accd66b5ebec3f1c94f5
Author: Casey Carter &lt;Casey@Carter.net>
Date:   Wed Mar 8 14:02:07 2017 -0800

    [EDITORIAL] Remove redundant redefinition of indirect_result_of in [indirectcallable.indirectinvocable]

commit 01d47a592bb6ba8d3c16626816dc6252412c3d9a
Author: Eric Niebler &lt;eniebler@boost.org>
Date:   Wed Feb 15 09:49:16 2017 -0800

    [EDITORIAL] correct template parameter order for generate and generate_n

commit d4283046c1ae548131050b60722efc56f2f8acc1
Author: Eric Niebler &lt;eniebler@boost.org>
Date:   Mon Jan 30 15:04:45 2017 -0800

    [EDITORIAL] s/equivalent the/equivalent to the/

commit 1836cccdca8af0f81004f7eccc0ccb0633238147
Merge: 8532228 98f5cc6
Author: Casey Carter &lt;Casey@Carter.net>
Date:   Tue Feb 14 17:12:37 2017 -0800

    Minor editorial fixes to [iterator].

commit 98f5cc643e922a03f2934930b99848bb161aae33
Author: Casey Carter &lt;Casey@Carter.net>
Date:   Tue Feb 14 16:59:33 2017 -0800

    Minor cleanup

commit db3b675cfed327c6c5215f1a5118e5aa5d58b2aa
Author: Eric Niebler &lt;eniebler@boost.org>
Date:   Tue Feb 14 10:25:19 2017 -0800

    [EDITORIAL] Fix cross-reference to CommonReference concept

commit a0bd2cc2aa0babe0c6553a7a21ae4533938ec610
Author: Eric Niebler &lt;eniebler@boost.org>
Date:   Tue Jan 31 16:29:15 2017 -0800

    [EDITORIAL] give common_iterator::operator-> its own subsection and stable name, refs #318

commit 64a074e839a1ba38453ddb185d7f5a5659032e07
Author: Eric Niebler &lt;eniebler@boost.org>
Date:   Mon Jan 23 11:41:37 2017 -0800

    [Editorial] Table 5 has separate rows for iterator, indirect callable, and common algorithm requirements; fixes #308

commit a5c611a4a8137c86387e014085d5cdd13a14db82
Author: Casey Carter &lt;Casey@Carter.net>
Date:   Mon Jan 23 07:59:19 2017 -0800

    [Editorial] The concepts TS was not published in 2105.

commit 7cb4787b1a0039da157eefd61c9997b80b8a67a2
Author: Casey Carter &lt;Casey@Carter.net>
Date:   Tue Jan 17 14:23:13 2017 -0800

    [Editorial] "This paper" => "This document"

    Fixes #303.

commit 63921fc7c061de93f758dab593f58cb05287547e
Author: Casey Carter &lt;Casey@Carter.net>
Date:   Mon Nov 28 04:56:36 2016 -0800

    Editorial fixes I forgot to checkin for DTS
    [concepts.lib.compare.boolean]: Don't \tcode the entirety of 2.5 and 2.6.
    [iterator.stdtraits] and &lt;iterator> synopsis: qualify "experimental::ranges::Sentinel" when used in namespace std.
</pre>
<div id="refs" class="references">

</div>
</body>
</html>
