Skip to content

Commit 5a3aa91

Browse files
mattkretzjwakely
authored andcommitted
Updates to P/R for 4376 after LWG discussion
1 parent 16e8fb0 commit 5a3aa91

File tree

1 file changed

+66
-3
lines changed

1 file changed

+66
-3
lines changed

xml/issue4376.xml

Lines changed: 66 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,8 @@ Set priority to 1 after reflector poll.
6060
<p>
6161
"Should be addressed together with <iref ref="4238"/>."
6262
</p>
63-
</discussion>
6463

65-
<resolution>
64+
<superseded>
6665
<p>
6766
This wording is relative to <paper num="N5014"/>.
6867
</p>
@@ -166,6 +165,70 @@ constexpr <del>basic_vec&lt;<i>integer-from</i>&lt;Bytes&gt;, Abi&gt;</del><ins>
166165

167166
</li>
168167

169-
</ol></resolution>
168+
</ol></superseded>
169+
170+
<note>2025-11-04; Matthias Kretz provides new wording</note>
171+
<p>
172+
This also resolves <iref ref="4238"/> and addresses
173+
<a href="https://github.com/cplusplus/nbballot/issues/872">DE 297</a>.
174+
</p>
175+
</discussion>
176+
177+
<resolution>
178+
<p>
179+
This wording is relative to <paper num="N5014"/>.
180+
</p>
181+
182+
<ol>
183+
184+
<li><p>Modify <sref ref="[simd.mask.overview]"/>, class template `basic_mask overview` synopsis, as indicated:</p>
185+
186+
<blockquote>
187+
<pre>
188+
namespace std::simd {
189+
template&lt;size_t Bytes, class Abi&gt; class basic_mask {
190+
public:
191+
[&hellip;]
192+
// <i><sref ref="[simd.mask.unary]"/>, basic_mask unary operators</i>
193+
constexpr basic_mask operator!() const noexcept;
194+
constexpr <del>basic_vec&lt;<i>integer-from</i>&lt;Bytes&gt;, Abi&gt;</del><ins><i>see below</i></ins> operator+() const noexcept;
195+
constexpr <del>basic_vec&lt;<i>integer-from</i>&lt;Bytes&gt;, Abi&gt;</del><ins><i>see below</i></ins> operator-() const noexcept;
196+
constexpr <del>basic_vec&lt;<i>integer-from</i>&lt;Bytes&gt;, Abi&gt;</del><ins><i>see below</i></ins> operator~() const noexcept;
197+
[&hellip;]
198+
}
199+
</pre>
200+
</blockquote>
201+
202+
</li>
203+
204+
<li><p>Modify <sref ref="[simd.mask.unary]"/> as indicated:</p>
205+
206+
<blockquote>
207+
<pre>
208+
constexpr basic_mask operator!() const noexcept;
209+
constexpr <del>basic_vec&lt;<i>integer-from</i>&lt;Bytes&gt;, Abi&gt;</del><ins><i>see below</i></ins> operator+() const noexcept;
210+
constexpr <del>basic_vec&lt;<i>integer-from</i>&lt;Bytes&gt;, Abi&gt;</del><ins><i>see below</i></ins> operator-() const noexcept;
211+
constexpr <del>basic_vec&lt;<i>integer-from</i>&lt;Bytes&gt;, Abi&gt;</del><ins><i>see below</i></ins> operator~() const noexcept;
212+
</pre>
213+
<blockquote>
214+
<p>
215+
-1- Let <tt><i>op</i></tt> be the operator.
216+
<p/>
217+
-2- <i>Returns</i>: A data-parallel object where the <i>i</i>-th element is initialized to the
218+
results of applying <tt><i>op</i></tt> to <tt>operator[](<i>i</i>)</tt> for all <i>i</i> in the
219+
range of [0, <tt>size()</tt>).
220+
<p/>
221+
<ins>-?- <i>Remarks</i>: If there exists a vectorizable signed integral type <tt>I</tt> such that
222+
<tt>sizeof(I) == Bytes</tt>, <tt>operator+()</tt>, <tt>operator-()</tt>, and <tt>operator~()</tt>
223+
return an enabled specialization <tt>R</tt> of <tt>basic_vec</tt> such that <tt>R::value_type</tt>
224+
denotes <tt>I</tt> and <tt>R::size() == size()</tt> is <tt>true</tt>. Otherwise, these operators
225+
are deleted and the return type is unspecified.</ins>
226+
</p>
227+
</blockquote>
228+
</blockquote>
229+
</li>
230+
</ol>
231+
232+
</resolution>
170233

171234
</issue>

0 commit comments

Comments
 (0)