Skip to content

Commit 6b4dfce

Browse files
committed
Set priority to 3 and add new P/R for 4510
1 parent 91d15ed commit 6b4dfce

File tree

1 file changed

+45
-3
lines changed

1 file changed

+45
-3
lines changed

xml/issue4510.xml

Lines changed: 45 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<section><sref ref="[range.iter.op.advance]"/><sref ref="[range.iter.op.next]"/></section>
77
<submitter>Jiang An</submitter>
88
<date>09 Jan 2026</date>
9-
<priority>99</priority>
9+
<priority>3</priority>
1010

1111
<discussion>
1212
<p>
@@ -57,9 +57,25 @@ wrapping iterators that trigger ADL for the value type like the `FwdIter` in thi
5757
are common in standard library implementations, so ambiguity can be easily raised from
5858
containers with such `OmniConv` being their element type.
5959
</p>
60-
</discussion>
6160

62-
<resolution>
61+
<note>2026-02-20; Reflector poll.</note>
62+
<p>
63+
Set priority to 3 after reflector poll.
64+
</p>
65+
<p>
66+
The type in the example is basically a `std::any` that additionally type-erases
67+
equality. That causes a problem for templated iterators that have their
68+
value type's namespace as an associated namespace for ADL.
69+
</p>
70+
<p>
71+
Instead of allowing integers to be sentinels in general but just restricting
72+
them from being used with these overloads, we could just change the concept
73+
so that integers do not model `sentinel_for`.
74+
That's similar to what we did for `span`'s constructor which has a similar
75+
problem (though that one's more aggressive due to compatibility constraints).
76+
</p>
77+
78+
<superseded>
6379
<p>
6480
This wording is relative to <paper num="N5032"/>.
6581
</p>
@@ -146,6 +162,32 @@ template&lt;input_or_output_iterator I, <del>sentinel_for&lt;I&gt;</del><ins>cla
146162

147163
</ol>
148164

165+
</superseded>
166+
167+
<note>2026-02-20; Jonathan provides new wording</note>
168+
169+
</discussion>
170+
171+
<resolution>
172+
<p>
173+
This wording is relative to <paper num="N5032"/>.
174+
</p>
175+
176+
<ol>
177+
<li><p>Modify <sref ref="[iterator.concept.sentinel]"/> as indicated:</p>
178+
179+
<blockquote>
180+
<pre>
181+
template&lt;class S, class I&gt;
182+
concept sentinel_for =
183+
semiregular&lt;S&gt; &amp;&amp;
184+
<ins>!<i>is-integer-like</i>&lt;S&gt; &amp;&amp;</ins>
185+
input_or_output_iterator&lt;I&gt; &amp;&amp;
186+
weakly-equality-comparable-with&lt;S, I&gt;; <i>// see <sref ref="[concept.equalitycomparable]"/></i>
187+
</pre>
188+
</blockquote>
189+
</li>
190+
</ol>
149191

150192
</resolution>
151193

0 commit comments

Comments
 (0)