[simd.flags.oper]

# 29 Numerics library [[numerics]](./#numerics)

## 29.10 Data-parallel types [[simd]](simd#flags.oper)

### 29.10.5 Load and store flags [[simd.flags]](simd.flags#oper)

#### 29.10.5.2 flags operators [simd.flags.oper]

[ð](#lib:operator%7c,simd::flags)

`template<class... Other>
  friend consteval auto operator|(flags a, flags<Other...> b);
`

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L17274)

*Returns*: A default-initialized object of type flags<Flags2...> for some Flags2 where every type in Flags2 is present either in template parameter pack Flags or in template parameter pack Other, and every type in template parameter
 packs Flags and Other is present in Flags2[.](#1.sentence-1)

If the packs Flags and Other contain two
 different specializations *overaligned-flag*<N1> and *overaligned-flag*<N2>, Flags2 is not required to contain the
 specialization *overaligned-flag*<std​::​min(N1, N2)>[.](#1.sentence-2)
