-
Notifications
You must be signed in to change notification settings - Fork 18
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
Ucan be represented with typeToT, and - either
is_simd_v<T>is falseTis 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 falseTis a vectorizable type, oris_simd_v<T>andT::size() == simd<U, Abi>::size()isare true.
Metadata
Metadata
Assignees
Labels
No labels