Skip to content

Commit 66683e5

Browse files
author
github-actions
committed
Automatic update from GitHub Actions workflow
1 parent a723d6c commit 66683e5

22 files changed

+315
-48
lines changed

issue3855.html

Lines changed: 92 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
<p><em>This page is a snapshot from the LWG issues list, see the <a href="lwg-active.html">Library Active Issues List</a> for more information and the meaning of <a href="lwg-active.html#New">New</a> status.</em></p>
6565
<h3 id="3855"><a href="lwg-active.html#3855">3855</a>. <code><i>tiny-range</i></code> is not quite right</h3>
6666
<p><b>Section:</b> 25.7.16.2 <a href="https://wg21.link/range.lazy.split.view">[range.lazy.split.view]</a> <b>Status:</b> <a href="lwg-active.html#New">New</a>
67-
<b>Submitter:</b> Hewill Kang <b>Opened:</b> 2023-01-07 <b>Last modified:</b> 2023-02-01</p>
67+
<b>Submitter:</b> Hewill Kang <b>Opened:</b> 2023-01-07 <b>Last modified:</b> 2025-04-27</p>
6868
<p><b>Priority: </b>4
6969
</p>
7070
<p><b>View other</b> <a href="lwg-index-open.html#range.lazy.split.view">active issues</a> in [range.lazy.split.view].</p>
@@ -94,9 +94,9 @@ <h3 id="3855"><a href="lwg-active.html#3855">3855</a>. <code><i>tiny-range</i></
9494
Maybe use <code>requires bool_constant&lt;ranges::size(r) &lt;= 1&gt;</code>.
9595
</p>
9696

97+
<p><strong>Previous resolution [SUPERSEDED]:</strong></p>
98+
<blockquote class="note">
9799

98-
99-
<p id="res-3855"><b>Proposed resolution:</b></p>
100100
<p>
101101
This wording is relative to <a href="https://wg21.link/N4917" title=" Working Draft, Standard for Programming Language C++">N4917</a>.
102102
</p>
@@ -152,6 +152,95 @@ <h3 id="3855"><a href="lwg-active.html#3855">3855</a>. <code><i>tiny-range</i></
152152
</li>
153153

154154
</ol>
155+
</blockquote>
156+
157+
<p><i>[2025-04-27, Hewill provides alternative wording]</i></p>
158+
159+
160+
161+
<p id="res-3855"><b>Proposed resolution:</b></p>
162+
<p>
163+
This wording is relative to <a href="https://wg21.link/N5008">N5008</a>.
164+
</p>
165+
166+
<ol>
167+
<li><p>Modify 25.7.16.2 <a href="https://wg21.link/range.lazy.split.view">[range.lazy.split.view]</a> as indicated:</p>
168+
169+
<blockquote class="note">
170+
<p>
171+
[<i>Drafting note:</i> This benefits from <a href="https://wg21.link/P2280" title=" Using unknown references in constant expressions">P2280</a> that a call to a
172+
member function of a non-constexpr object can be a constant expression if it does
173+
not actually access the member.
174+
<p/>
175+
This would make <code>views::lazy_split(r, span&lt;int, 0&gt;{})</code>
176+
well-formed, which can be seen as an enhancement.]
177+
</p>
178+
</blockquote>
179+
180+
<blockquote>
181+
<pre>
182+
namespace std::ranges {
183+
<del>template&lt;auto&gt; struct <i>require-constant</i>; // <i>exposition only</i></del>
184+
185+
template&lt;class R&gt;
186+
concept <i>tiny-range</i> = // <i>exposition only</i>
187+
sized_range&lt;R&gt; &amp;&amp;
188+
<ins>requires (R&amp; r) { requires bool_constant&lt;ranges::size(r) &lt;= 1&gt;::value; }</ins>
189+
<del>requires { typename <i>require-constant</i>&lt;remove_reference_t&lt;R&gt;::size()>; } &amp;&amp;
190+
(remove_reference_t&lt;R&gt;::size() &lt;= 1)</del>;
191+
192+
template&lt;input_range V, forward_range Pattern&gt;
193+
requires view&lt;V&gt; &amp;&amp; view&lt;Pattern&gt; &amp;&amp;
194+
indirectly_comparable&lt;iterator_t&lt;V&gt;, iterator_t&lt;Pattern&gt;, ranges::equal_to&gt; &amp;&amp;
195+
(forward_range&lt;V&gt; || <i>tiny-range</i>&lt;Pattern&gt;)
196+
class lazy_split_view::view_interface&lt;lazy_split_view&lt;V, Pattern&gt;&gt; {
197+
[&hellip;]
198+
};
199+
[&hellip;]
200+
}
201+
</pre>
202+
</blockquote>
203+
</li>
204+
205+
<li><p>Modify 25.7.16.5 <a href="https://wg21.link/range.lazy.split.inner">[range.lazy.split.inner]</a> as indicated:</p>
206+
207+
<blockquote class="note">
208+
<p>
209+
[<i>Drafting note:</i>
210+
We can't use <code>if constexpr (ranges::size(<i>i_</i>.<i>parent_</i>-&gt;<i>pattern_</i>) == 0)</code>
211+
here because it is not a constant expression, and it seems more intuitive to just use
212+
<code>ranges::empty</code> which is always well-formed. Note that the PR does not seek the
213+
aggressive optimization that minimizes the instantiation as this is not the intent of the
214+
current design (for example, <code><i>outer-iterator</i>&amp; operator++()</code> can be
215+
specialized for the case where <code>Pattern::size() == 0</code>), library implementations
216+
are free to optimize as it pleases.]
217+
</p>
218+
</blockquote>
219+
220+
<blockquote>
221+
<pre>
222+
constexpr <i>inner-iterator</i>&amp; operator++();
223+
</pre>
224+
<blockquote>
225+
<p>
226+
-5- <i>Effects:</i> Equivalent to:
227+
</p>
228+
<blockquote><pre>
229+
<i>incremented_</i> = true;
230+
if constexpr (!forward_range&lt;<i>Base</i>&gt;) {
231+
<ins>if (ranges::empty(<i>i_</i>.<i>parent_</i>-&gt;<i>pattern_</i>))</ins>
232+
<del>if constexpr (Pattern::size() == 0) {</del>
233+
return *this;
234+
}
235+
}
236+
++<i>i_</i>.<i>current</i>;
237+
return *this;
238+
</pre></blockquote>
239+
</blockquote>
240+
</blockquote>
241+
</li>
242+
243+
</ol>
155244

156245

157246

lwg-active.html

Lines changed: 93 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
</tr>
8080
</table>
8181
<h1>C++ Standard Library Active Issues List (Revision D125)</h1>
82-
<p>Revised 2025-04-27 at 16:10:19 UTC
82+
<p>Revised 2025-04-27 at 16:28:29 UTC
8383
</p>
8484
<p>Reference ISO/IEC IS 14882:2020(E)</p>
8585
<p>Also see:</p>
@@ -45734,7 +45734,7 @@ <h3 id="3854"><a href="#3854">3854</a><sup><a href="https://cplusplus.github.io/
4573445734
<hr>
4573545735
<h3 id="3855"><a href="#3855">3855</a><sup><a href="https://cplusplus.github.io/LWG/issue3855">(i)</a></sup>. <code><i>tiny-range</i></code> is not quite right</h3>
4573645736
<p><b>Section:</b> 25.7.16.2 <a href="https://wg21.link/range.lazy.split.view">[range.lazy.split.view]</a> <b>Status:</b> <a href="lwg-active.html#New">New</a>
45737-
<b>Submitter:</b> Hewill Kang <b>Opened:</b> 2023-01-07 <b>Last modified:</b> 2023-02-01</p>
45737+
<b>Submitter:</b> Hewill Kang <b>Opened:</b> 2023-01-07 <b>Last modified:</b> 2025-04-27</p>
4573845738
<p><b>Priority: </b>4
4573945739
</p>
4574045740
<p><b>View other</b> <a href="lwg-index-open.html#range.lazy.split.view">active issues</a> in [range.lazy.split.view].</p>
@@ -45764,9 +45764,9 @@ <h3 id="3855"><a href="#3855">3855</a><sup><a href="https://cplusplus.github.io/
4576445764
Maybe use <code>requires bool_constant&lt;ranges::size(r) &lt;= 1&gt;</code>.
4576545765
</p>
4576645766

45767+
<p><strong>Previous resolution [SUPERSEDED]:</strong></p>
45768+
<blockquote class="note">
4576745769

45768-
45769-
<p id="res-3855"><b>Proposed resolution:</b></p>
4577045770
<p>
4577145771
This wording is relative to <a href="https://wg21.link/N4917" title=" Working Draft, Standard for Programming Language C++">N4917</a>.
4577245772
</p>
@@ -45822,6 +45822,95 @@ <h3 id="3855"><a href="#3855">3855</a><sup><a href="https://cplusplus.github.io/
4582245822
</li>
4582345823

4582445824
</ol>
45825+
</blockquote>
45826+
45827+
<p><i>[2025-04-27, Hewill provides alternative wording]</i></p>
45828+
45829+
45830+
45831+
<p id="res-3855"><b>Proposed resolution:</b></p>
45832+
<p>
45833+
This wording is relative to <a href="https://wg21.link/N5008">N5008</a>.
45834+
</p>
45835+
45836+
<ol>
45837+
<li><p>Modify 25.7.16.2 <a href="https://wg21.link/range.lazy.split.view">[range.lazy.split.view]</a> as indicated:</p>
45838+
45839+
<blockquote class="note">
45840+
<p>
45841+
[<i>Drafting note:</i> This benefits from <a href="https://wg21.link/P2280" title=" Using unknown references in constant expressions">P2280</a> that a call to a
45842+
member function of a non-constexpr object can be a constant expression if it does
45843+
not actually access the member.
45844+
<p/>
45845+
This would make <code>views::lazy_split(r, span&lt;int, 0&gt;{})</code>
45846+
well-formed, which can be seen as an enhancement.]
45847+
</p>
45848+
</blockquote>
45849+
45850+
<blockquote>
45851+
<pre>
45852+
namespace std::ranges {
45853+
<del>template&lt;auto&gt; struct <i>require-constant</i>; // <i>exposition only</i></del>
45854+
45855+
template&lt;class R&gt;
45856+
concept <i>tiny-range</i> = // <i>exposition only</i>
45857+
sized_range&lt;R&gt; &amp;&amp;
45858+
<ins>requires (R&amp; r) { requires bool_constant&lt;ranges::size(r) &lt;= 1&gt;::value; }</ins>
45859+
<del>requires { typename <i>require-constant</i>&lt;remove_reference_t&lt;R&gt;::size()>; } &amp;&amp;
45860+
(remove_reference_t&lt;R&gt;::size() &lt;= 1)</del>;
45861+
45862+
template&lt;input_range V, forward_range Pattern&gt;
45863+
requires view&lt;V&gt; &amp;&amp; view&lt;Pattern&gt; &amp;&amp;
45864+
indirectly_comparable&lt;iterator_t&lt;V&gt;, iterator_t&lt;Pattern&gt;, ranges::equal_to&gt; &amp;&amp;
45865+
(forward_range&lt;V&gt; || <i>tiny-range</i>&lt;Pattern&gt;)
45866+
class lazy_split_view::view_interface&lt;lazy_split_view&lt;V, Pattern&gt;&gt; {
45867+
[&hellip;]
45868+
};
45869+
[&hellip;]
45870+
}
45871+
</pre>
45872+
</blockquote>
45873+
</li>
45874+
45875+
<li><p>Modify 25.7.16.5 <a href="https://wg21.link/range.lazy.split.inner">[range.lazy.split.inner]</a> as indicated:</p>
45876+
45877+
<blockquote class="note">
45878+
<p>
45879+
[<i>Drafting note:</i>
45880+
We can't use <code>if constexpr (ranges::size(<i>i_</i>.<i>parent_</i>-&gt;<i>pattern_</i>) == 0)</code>
45881+
here because it is not a constant expression, and it seems more intuitive to just use
45882+
<code>ranges::empty</code> which is always well-formed. Note that the PR does not seek the
45883+
aggressive optimization that minimizes the instantiation as this is not the intent of the
45884+
current design (for example, <code><i>outer-iterator</i>&amp; operator++()</code> can be
45885+
specialized for the case where <code>Pattern::size() == 0</code>), library implementations
45886+
are free to optimize as it pleases.]
45887+
</p>
45888+
</blockquote>
45889+
45890+
<blockquote>
45891+
<pre>
45892+
constexpr <i>inner-iterator</i>&amp; operator++();
45893+
</pre>
45894+
<blockquote>
45895+
<p>
45896+
-5- <i>Effects:</i> Equivalent to:
45897+
</p>
45898+
<blockquote><pre>
45899+
<i>incremented_</i> = true;
45900+
if constexpr (!forward_range&lt;<i>Base</i>&gt;) {
45901+
<ins>if (ranges::empty(<i>i_</i>.<i>parent_</i>-&gt;<i>pattern_</i>))</ins>
45902+
<del>if constexpr (Pattern::size() == 0) {</del>
45903+
return *this;
45904+
}
45905+
}
45906+
++<i>i_</i>.<i>current</i>;
45907+
return *this;
45908+
</pre></blockquote>
45909+
</blockquote>
45910+
</blockquote>
45911+
</li>
45912+
45913+
</ol>
4582545914

4582645915

4582745916

lwg-closed.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
</tr>
8080
</table>
8181
<h1>C++ Standard Library Closed Issues List (Revision D125)</h1>
82-
<p>Revised 2025-04-27 at 16:10:19 UTC
82+
<p>Revised 2025-04-27 at 16:28:29 UTC
8383
</p>
8484
<p>Reference ISO/IEC IS 14882:2020(E)</p>
8585
<p>Also see:</p>

lwg-defects.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
</tr>
8080
</table>
8181
<h1>C++ Standard Library Defect Reports and Accepted Issues (Revision D125)</h1>
82-
<p>Revised 2025-04-27 at 16:10:19 UTC
82+
<p>Revised 2025-04-27 at 16:28:29 UTC
8383
</p>
8484
<p>Reference ISO/IEC IS 14882:2020(E)</p>
8585
<p>Also see:</p>

lwg-immediate.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ <h1>C++ Standard Library Issues Resolved Directly In [INSERT CURRENT MEETING HER
6262
</tr>
6363
<tr>
6464
<td align="left">Date:</td>
65-
<td align="left">Revised 2025-04-27 at 16:10:19 UTC
65+
<td align="left">Revised 2025-04-27 at 16:28:29 UTC
6666
</td>
6767
</tr>
6868
<tr>

lwg-index-open.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ <h1>Index by Section</h1>
6666
<p>This document is the Index by Section for the <a href="lwg-active.html">Library Active Issues List</a>.</p>
6767
<h2>Index by Section (non-Ready active issues only)</h2>
6868
<p><a href="lwg-index.html">(view all issues)</a></p>
69-
<p>Revised 2025-04-27 at 16:10:19 UTC
69+
<p>Revised 2025-04-27 at 16:28:29 UTC
7070
</p><h2 id="Section_3">Section 3 (2 issues)</h2>
7171
<p><a href="lwg-index.html#Section_3">(view all issues)</a></p>
7272
<table class="issues-index">

lwg-index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ <h1>Index by Section</h1>
6666
<p>This document is the Index by Section for the <a href="lwg-active.html">Library Active Issues List</a>, <a href="lwg-defects.html">Library Defect Reports and Accepted Issues</a>, and <a href="lwg-closed.html">Library Closed Issues List</a>.</p>
6767
<h2>Index by Section</h2>
6868
<p><a href="lwg-index-open.html">(view only non-Ready open issues)</a></p>
69-
<p>Revised 2025-04-27 at 16:10:19 UTC
69+
<p>Revised 2025-04-27 at 16:28:29 UTC
7070
</p><h2 id="Section_2">Section 2 (2 issues)</h2>
7171
<table class="issues-index">
7272
<tr>

lwg-ready.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ <h1>C++ Standard Library Issues to be moved in [INSERT CURRENT MEETING HERE]</h1
6262
</tr>
6363
<tr>
6464
<td align="left">Date:</td>
65-
<td align="left">Revised 2025-04-27 at 16:10:19 UTC
65+
<td align="left">Revised 2025-04-27 at 16:28:29 UTC
6666
</td>
6767
</tr>
6868
<tr>

lwg-status-date.html

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ <h1>Index by Status and Date</h1>
6767
This document is the Index by Status and Date for the <a href="lwg-active.html">Library Active Issues List</a>,
6868
<a href="lwg-defects.html">Library Defect Reports and Accepted Issues</a>, and <a href="lwg-closed.html">Library Closed Issues List</a>.
6969
</p>
70-
<p>Revised 2025-04-27 at 16:10:19 UTC
70+
<p>Revised 2025-04-27 at 16:28:29 UTC
7171
</p><h2 id="Ready">Ready (7 issues)</h2>
7272
<table class="issues-index">
7373
<tr>
@@ -323,6 +323,15 @@ <h2 id="New">New (487 issues)</h2>
323323
<td></td>
324324
</tr>
325325
<tr>
326+
<td id="3855"><a href="lwg-active.html#3855" title="tiny-range is not quite right (Status: New)">3855</a><sup><a href="https://cplusplus.github.io/LWG/issue3855">(i)</a></sup></td>
327+
<td><a href="lwg-active.html#New">New</a></td>
328+
<td>25.7.16.2 [range.lazy.split.view]</td>
329+
<td><code><i>tiny-range</i></code> is not quite right</td>
330+
<td>Yes</td>
331+
<td>4</td>
332+
<td></td>
333+
</tr>
334+
<tr>
326335
<td id="4249"><a href="lwg-active.html#4249" title="The past end issue for lazy_split_view (Status: New)">4249</a><sup><a href="https://cplusplus.github.io/LWG/issue4249">(i)</a></sup></td>
327336
<td><a href="lwg-active.html#New">New</a></td>
328337
<td>25.7.16.3 [range.lazy.split.outer]</td>
@@ -2588,15 +2597,6 @@ <h2 id="New">New (487 issues)</h2>
25882597
<td></td>
25892598
</tr>
25902599
<tr>
2591-
<td id="3855"><a href="lwg-active.html#3855" title="tiny-range is not quite right (Status: New)">3855</a><sup><a href="https://cplusplus.github.io/LWG/issue3855">(i)</a></sup></td>
2592-
<td><a href="lwg-active.html#New">New</a></td>
2593-
<td>25.7.16.2 [range.lazy.split.view]</td>
2594-
<td><code><i>tiny-range</i></code> is not quite right</td>
2595-
<td>Yes</td>
2596-
<td>4</td>
2597-
<td></td>
2598-
</tr>
2599-
<tr>
26002600
<td id="3229"><a href="lwg-active.html#3229" title="&sect;[res.on.exception.handling]#3 cannot apply to types with implicitly declared destructors (Status: New)">3229</a><sup><a href="https://cplusplus.github.io/LWG/issue3229">(i)</a></sup></td>
26012601
<td><a href="lwg-active.html#New">New</a></td>
26022602
<td>16.4.6.14 [res.on.exception.handling]</td>

lwg-status.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ <h1>Index by Status and Section</h1>
6262
<a href="lwg-defects.html">Library Defect Reports and Accepted Issues</a>, and <a href="lwg-closed.html">Library Closed Issues List</a>.
6363
</p>
6464

65-
<p>Revised 2025-04-27 at 16:10:19 UTC
65+
<p>Revised 2025-04-27 at 16:28:29 UTC
6666
</p><h2 id="Ready">Ready (7 issues)</h2>
6767
<table class="issues-index">
6868
<tr>

0 commit comments

Comments
 (0)