[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