Partially specialize simd
for unscoped enumerations
#77
Labels
needs discussion
Needs discussion in the paper
Milestone
Given
simd<T, A>
whereT
is an unscoped enum (U
is a shorthand forstd::underlying_type_t<T>
):mask_type
issimd<U, A>::mask_type
T
simd<U, A>
(enables explicit broadcast fromU
andint
)simd<T1, A1>
, requiressimd_size_v<T, A> == simd_size_v<T1, A1>
T
const T*
andconst U*
T*
andU*
T
!
,+
, and-
, defined in such a way that program-defined non-member overloads of those operators take precedence.!
returnsmask_type
,+
and-
returnsimd<U, A>
.simd<U, A>
+
,-
,*
,/
,%
,&
,|
,^
,<<
,>>
,==
,!=
,<
,<=
,>
, and>=
mask_type
, the remaining binary operators returnsimd<U, A>
simd<T, A>
, the other operand has to be convertible tosimd<U, A>
(which includessimd<T, A>
)<<
and>>
where the type of the second operand isint
operator?:
overloads forbool
andmask_type
bool
overload is short-circuiting and definessimd<U, A>
as the common type forsimd<T, A>
and any type convertible tosimd<U, A>
mask_type
overload blends two objects of typesimd<T, A>
.mask_type
conditional operator take precedenceconstexpr
except loads and storesThe text was updated successfully, but these errors were encountered: