29.10.9.4 basic_simd_mask exposition only conditional operators [simd.mask.cond]
friend constexpr basic_simd_mask simd-select-impl(
const basic_simd_mask& mask, const basic_simd_mask& a, const basic_simd_mask& b) noexcept;
Returns: A
basic_simd_mask object where the
ith element equals
mask[i] ? a[i] : b[i] for all
i in the range of
[
0, size())
. friend constexpr basic_simd_mask
simd-select-impl(const basic_simd_mask& mask, same_as<bool> auto a, same_as<bool> auto b) noexcept;
Returns: A
basic_simd_mask object where the
ith element equals
mask[i] ? a : b for all
i in the range of [
0, size())
. template<class T0, class T1>
friend constexpr simd<see below, size()>
simd-select-impl(const basic_simd_mask& mask, const T0& a, const T1& b) noexcept;
Constraints:
- same_as<T0, T1> is true,
- T0 is a vectorizable type, and
- sizeof(T0) == Bytes.
Returns: A
simd<T0, size()> object where the
ith element equals
mask[i] ? a : b for all
i in the range of [
0, size())
.