-
Notifications
You must be signed in to change notification settings - Fork 20
Open
Description
[parallel.simd.casts] p5 and p11 allow all non-simd types T. p5 has a implicit requirement of an arithmetic type, since it must be able to represent all possible values of U
(note a misspelled To
, that should be T
in p5). But one could argue that a UDT can fulfill this requirement. Since only vectorizable types T
are valid for simd<T>
, the constraint should use this term instead.
Proposed resolution:
9.4.5/5
Remarks: The function shall not participate in overload resolution unless
- every possible value of type
U
can be represented with typeTo
T
, and - either
is_simd_v<T>
is falseT
is a vectorizable type, oris_simd_v<T>
andT::size() == simd<U, Abi>::size()
isare true.
9.4.5/11
Remarks: The function shall not participate in overload resolution unless either
is_simd_v<T>
is falseT
is a vectorizable type, oris_simd_v<T>
andT::size() == simd<U, Abi>::size()
isare true.
Metadata
Metadata
Assignees
Labels
No labels