@@ -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 >
6766This wording is relative to <paper num =" N5014" />.
6867</p >
@@ -166,6 +165,70 @@ constexpr <del>basic_vec<<i>integer-from</i><Bytes>, Abi></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< size_t Bytes, class Abi> class basic_mask {
190+ public:
191+ [… ]
192+ // <i ><sref ref =" [simd.mask.unary]" />, basic_mask unary operators</i >
193+ constexpr basic_mask operator!() const noexcept;
194+ constexpr <del >basic_vec< <i >integer-from</i >< Bytes> , Abi> </del ><ins ><i >see below</i ></ins > operator+() const noexcept;
195+ constexpr <del >basic_vec< <i >integer-from</i >< Bytes> , Abi> </del ><ins ><i >see below</i ></ins > operator-() const noexcept;
196+ constexpr <del >basic_vec< <i >integer-from</i >< Bytes> , Abi> </del ><ins ><i >see below</i ></ins > operator~() const noexcept;
197+ [… ]
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< <i >integer-from</i >< Bytes> , Abi> </del ><ins ><i >see below</i ></ins > operator+() const noexcept;
210+ constexpr <del >basic_vec< <i >integer-from</i >< Bytes> , Abi> </del ><ins ><i >see below</i ></ins > operator-() const noexcept;
211+ constexpr <del >basic_vec< <i >integer-from</i >< Bytes> , Abi> </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