Created on 2025-10-05.00:00:00 last changed 2 days ago
Proposed resolution:
This wording is relative to N5014.
Modify [simd.ctor] as indicated:
template<class U> constexpr explicit(see below) basic_vec(U&& value) noexcept;-1- Let `From` denote the type remove_cvref_t<U>.
[…] -4- Remarks: The expression inside `explicit` evaluates to `false` if and only if `U` satisfiesconvertible_to<value_type>
, and either
(4.1) — `From` is not an arithmetic type and does not satisfy
constexpr-wrapper-like
,(4.2) — `From` is an arithmetic type and the conversion from `From` to `value_type` is value-preserving ([simd.general]), or
(4.3) — `From` satisfies
constexpr-wrapper-like
,remove_cvref_t
is an arithmetic type, and `From::value` is representable by `value_type`.remove_const_t<decltype(From::value)>
`decltype(From::value)` would be const int&
if `From` is a type of std::cw<42>
,
so the reference also needs to be removed for checking the arithmetic type.
History | |||
---|---|---|---|
Date | User | Action | Args |
2025-10-10 15:25:59 | admin | set | messages: + msg15136 |
2025-10-05 00:00:00 | admin | create |