You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Constructs an object with each element initialized to the value of the argument after conversion to <code>value_type</code>.
1220
+
</ins>
1221
+
</cxx-effects>
1222
+
1223
+
<cxx-throws>
1224
+
<ins>
1225
+
Any exception thrown while converting the argument to <code>value_type</code>.
1226
+
</ins>
1227
+
</cxx-throws>
1228
+
1229
+
<cxx-remarks>
1230
+
<ins>
1231
+
Let <code>From</code> identify the type <code>remove_cv_t<remove_reference_t<U>></code>. This constructor shall not participate in overload resolution unless:
1232
+
1233
+
<br>
1234
+
<br>
1235
+
1236
+
<bl>
1237
+
<li>
1238
+
<code>From</code> is a vectorizable type and every possibly value of <code>From</code> can be represented with type <code>value_type</code>, or
1239
+
</li>
1240
+
1241
+
<li>
1242
+
<code>From</code> is not an arithmetic type and is implicitly convertible to <code>value_type</code>, or
1243
+
</li>
1244
+
1245
+
<li>
1246
+
<code>From</code> is <code>int</code>, or
1247
+
1248
+
<li>
1249
+
<code>From</code> is <code>unsigned int</code> and <code>value_type</code> is an unsigned integral type.
Constructs an object where the <em>i</em>-th element equals <code>static_cast<T>(x[i])</code> for all <code>i</code> ∊ <code>[0, size())</code>.
1263
+
</ins>
1264
+
</cxx-effects>
1265
+
1266
+
<cxx-remarks>
1267
+
<ins>
1268
+
This constructor shall not participate in overload resolution unless
1269
+
</ins>
1270
+
1271
+
<bl>
1272
+
<li>
1273
+
<ins>
1274
+
<code>abi_type</code> is <code>simd_abi::fixed_size<size()></code>, and
1275
+
</ins>
1276
+
</li>
1277
+
1278
+
<li>
1279
+
<ins>
1280
+
every possible value of <code>U</code> can be represented with type <code>value_type</code>, and
1281
+
</ins>
1282
+
</li>
1283
+
1284
+
<li>
1285
+
<ins>
1286
+
if both <code>U</code> and <code>value_type</code> are integral, the integer conversion rank [conv.rank] of <code>value_type</code> is greater than the integer conversion rank of <code>U</code>.
Constructs an object where the <em>i</em>-th element is initialized to <code>gen(integral_constant<size_t, i>())</code>.
1299
+
</ins>
1300
+
</cxx-effects>
1301
+
1302
+
<cxx-remarks>
1303
+
<ins>
1304
+
This constructor shall not participate in overload resolution unless <code>simd(gen(integral_constant<size_t, i>()))</code> is well-formed for all <code>i</code> ∊ <code>[0, size())</code>.
1305
+
</ins>
1306
+
</cxx-remarks>
1307
+
1308
+
<p>
1309
+
<ins>
1310
+
The calls to <code>gen</code> are unsequenced with respect to each other. Vectorization-unsafe standard library functions may not be invoked by <code>gen</code> ([algorithms.parallel.exec]).
1311
+
</ins>
1312
+
</p>
1313
+
</cxx-function>
1314
+
1315
+
<cxx-function>
1316
+
<cxx-signature><ins>template<class U, class Flags> simd(const U* mem, Flags);</ins></cxx-signature>
1317
+
1318
+
<cxx-requires>
1319
+
<ins>
1320
+
If the template parameter <code>Flags</code> is <code>vector_aligned_tag</code>, <code>mem</code> shall point to storage aligend by <code>memory_alignment_v<simd, U></code>. If the template parameter <code>Flags</code> is <code>overaligned_tag<N></code>, <code>mem</code> shall point to storage aligned by <code>N</code>. If the template parameter <code>Flags</code> is <code>element_aligned_tag</code>, <code>mem</code> shall point to storage aligned by <code>alignon(U)</code>. <code>[mem, mem + size())</code> is a valid range.
1321
+
</ins>
1322
+
</cxx-requires>
1323
+
1324
+
<cxx-effects>
1325
+
<ins>
1326
+
Constructs an object where the <em>i</em>-th element is initialized to <code>static_cast<T>(mem[i])</code> for all <code>i</code> ∊ <code>[0, size())</code>.
1327
+
</ins>
1328
+
</cxx-effects>
1329
+
1330
+
<cxx-remarks>
1331
+
<ins>
1332
+
This constructor shall not participate in overload resolution unless
1333
+
1334
+
<bl>
1335
+
<li>
1336
+
<ins>
1337
+
<code>is_simd_flag_type_v<Flags></code> is <code>true</code>, and
0 commit comments