[gcc r16-8667] libstdc++: Implement LWG4403: CTAD misses difference type casting

Matthias Kretz mkretz@gcc.gnu.org
Wed Apr 15 07:43:29 GMT 2026


https://gcc.gnu.org/g:17e0482487914380a63b8b716aa2863a35b18d80

commit r16-8667-g17e0482487914380a63b8b716aa2863a35b18d80
Author: Matthias Kretz <m.kretz@gsi.de>
Date:   Tue Apr 14 14:54:03 2026 +0200

    libstdc++: Implement LWG4403: CTAD misses difference type casting
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/simd_vec.h (basic_vec deduction guide): Explicit
            cast to simd-size-type from range size type.
    
    Signed-off-by: Matthias Kretz <m.kretz@gsi.de>

Diff:
---
 libstdc++-v3/include/bits/simd_vec.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libstdc++-v3/include/bits/simd_vec.h b/libstdc++-v3/include/bits/simd_vec.h
index da194824e724..2574bf7c3ad7 100644
--- a/libstdc++-v3/include/bits/simd_vec.h
+++ b/libstdc++-v3/include/bits/simd_vec.h
@@ -2264,9 +2264,9 @@ namespace simd
     -> basic_vec<ranges::range_value_t<_Rg>,
 		 __deduce_abi_t<ranges::range_value_t<_Rg>,
 #if 0 // PR117849
-				ranges::size(__r)>>;
+				static_cast<__simd_size_type>(ranges::size(__r))>>;
 #else
-				decltype(std::span(__r))::extent>>;
+				static_cast<__simd_size_type>(decltype(std::span(__r))::extent)>>;
 #endif
 
   template <size_t _Bytes, typename _Ap>


More information about the Libstdc++-cvs mailing list