From Jason Turner

[simd.flags]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpilpe83kk/{from.md → to.md} +36 -0
tmp/tmpilpe83kk/{from.md → to.md} RENAMED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ### Load and store flags <a id="simd.flags">[[simd.flags]]</a>
2
+
3
+ #### Class template `flags` overview <a id="simd.flags.overview">[[simd.flags.overview]]</a>
4
+
5
+ ``` cpp
6
+ namespace std::simd {
7
+ template<class... Flags> struct flags {
8
+ // [simd.flags.oper], flags operators
9
+ template<class... Other>
10
+ friend consteval auto operator|(flags, flags<Other...>);
11
+ };
12
+ }
13
+ ```
14
+
15
+ [*Note 1*: The class template `flags` acts like an integer bit-flag for
16
+ types. — *end note*]
17
+
18
+ *Constraints:* Every type in the parameter pack `Flags` is one of
19
+ `convert-flag`, `aligned-flag`, or `overaligned-{flag}<N>`.
20
+
21
+ #### `flags` operators <a id="simd.flags.oper">[[simd.flags.oper]]</a>
22
+
23
+ ``` cpp
24
+ template<class... Other>
25
+ friend consteval auto operator|(flags a, flags<Other...> b);
26
+ ```
27
+
28
+ *Returns:* A default-initialized object of type `flags<Flags2...>` for
29
+ some `Flags2` where every type in `Flags2` is present either in template
30
+ parameter pack `Flags` or in template parameter pack `Other`, and every
31
+ type in template parameter packs `Flags` and `Other` is present in
32
+ `Flags2`. If the packs `Flags` and `Other` contain two different
33
+ specializations *`overaligned-flag`*`<N1>` and
34
+ *`overaligned-flag`*`<N2>`, `Flags2` is not required to contain the
35
+ specialization *`overaligned-flag`*`<std::min(N1, N2)>`.
36
+