[libcxx-commits] [libcxx] [libc++] <experimental/simd> Add implicit type conversion constructor for class simd/simd_mask (PR #71132)
via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Nov 14 11:35:25 PST 2023
================
@@ -46,6 +46,16 @@ class simd {
template <class _Up, enable_if_t<__can_broadcast_v<value_type, __remove_cvref_t<_Up>>, int> = 0>
_LIBCPP_HIDE_FROM_ABI simd(_Up&& __v) noexcept : __s_(_Impl::__broadcast(static_cast<value_type>(__v))) {}
+ // implicit type conversion constructor
+ template <class _Up,
+ class = enable_if_t<!is_same_v<_Up, _Tp> && is_same_v<abi_type, simd_abi::fixed_size<size()>> &&
+ __is_non_narrowing_convertible_v<_Up, value_type>>>
----------------
philnik777 wrote:
```suggestion
enable_if_t<!is_same_v<_Up, _Tp> && is_same_v<abi_type, simd_abi::fixed_size<size()>> &&
__is_non_narrowing_convertible_v<_Up, value_type>, int> = 0>
```
https://github.com/llvm/llvm-project/pull/71132
More information about the libcxx-commits
mailing list