@@ -47,9 +47,8 @@ the overload set ambiguous</p></li>
4747<li ><p >`float` is convertible to `bool`, thus
4848<tt >simd::mask< float> (1.f)</tt > continues to compile</p ></li >
4949</ol >
50- </discussion >
5150
52- <resolution >
51+ <superseded >
5352<p >
5453This wording is relative to <paper num =" N5014" />.
5554</p >
@@ -85,6 +84,85 @@ namespace std::simd {
8584
8685</li >
8786
87+ </ol >
88+ </superseded >
89+
90+ <note >2025-10-06; Matthias Kretz improves wording after reflector discussion</note >
91+ </discussion >
92+
93+ <resolution >
94+ <p >
95+ This wording is relative to <paper num =" N5014" />.
96+ </p >
97+
98+ <ol >
99+
100+ <li ><p >Modify <sref ref =" [simd.mask.overview]" />, <tt >class template basic_mask</tt > synopsis, as indicated:</p >
101+
102+ <blockquote >
103+ <pre >
104+ namespace std::simd {
105+ template< size_t Bytes, class Abi> class basic_mask {
106+ public:
107+ [… ]
108+
109+ constexpr basic_mask() noexcept = default;
110+
111+ // <i ><sref ref =" [simd.mask.ctor]" />, basic_mask constructors</i >
112+ constexpr explicit basic_mask(<ins >same_as< </ins >value_type<ins >> auto</ins >) noexcept;
113+ template< size_t UBytes, class UAbi>
114+ constexpr explicit basic_mask(const basic_mask< UBytes, UAbi>& ) noexcept;
115+ template< class G>
116+ constexpr explicit basic_mask(G&& gen) noexcept;
117+ <ins >template< same_as< bitset< size()>> T> </ins >
118+ constexpr basic_mask(const <ins >T</ins ><del >bitset< size()> </del >& b) noexcept;
119+ <ins >template< unsigned_integral T> requires (!same_as< T, value_type> )</ins >
120+ constexpr explicit basic_mask(<ins >T</ins ><del >unsigned_integral auto</del > val) noexcept;
121+
122+ [… ]
123+ };
124+ }
125+ </pre >
126+ </blockquote >
127+
128+ </li >
129+
130+ <li ><p >Modify <sref ref =" [simd.mask.ctor]" /> as indicated:</p >
131+
132+ <blockquote >
133+ <pre >
134+ constexpr explicit basic_mask(<ins >same_as< </ins >value_type<ins >> auto</ins > x) noexcept;
135+ </pre >
136+ <blockquote >
137+ <p >
138+ -1- <i >Effects</i >: Initializes each element with `x`.
139+ </p >
140+ </blockquote >
141+ [… ]
142+ <pre >
143+ <ins >template< same_as< bitset< size()>> T> </ins >
144+ constexpr basic_mask(const <ins >T</ins ><del >bitset< size()> </del >& b) noexcept;
145+ </pre >
146+ <blockquote >
147+ <p >
148+ -7- <i >Effects</i >: Initializes the <tt ><i >i</i ></tt ><sup >th</sup > element with <tt >b[<i >i</i >]</tt >
149+ for all <tt ><i >i</i ></tt > in the range `[0, size())`.
150+ </p >
151+ </blockquote >
152+ <pre >
153+ <ins >template< unsigned_integral T> requires (!same_as< T, value_type> )</ins >
154+ constexpr explicit basic_mask(<ins >T</ins ><del >unsigned_integral auto</del > val) noexcept;
155+ </pre >
156+ <blockquote >
157+ <p >
158+ -8- <i >Effects</i >: Initializes the first <tt ><i >M</i ></tt > elements to the corresponding bit values
159+ in `val`, [… ]
160+ </p >
161+ </blockquote >
162+ </blockquote >
163+
164+ </li >
165+
88166</ol >
89167</resolution >
90168
0 commit comments