[gcc r16-2153] libstdc++: Add more template keywords to <mdspan> for Clang

Jonathan Wakely redi@gcc.gnu.org
Wed Jul 9 16:56:46 GMT 2025


https://gcc.gnu.org/g:4d24612a2e453aa4755821a4d168bbc338a20036

commit r16-2153-g4d24612a2e453aa4755821a4d168bbc338a20036
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Jul 8 22:04:29 2025 +0100

    libstdc++: Add more template keywords to <mdspan> for Clang
    
    This fixes:
    
    include/c++/16.0.0/mdspan:1182:33: error: use 'template' keyword to treat 'mapping' as a dependent template name
     1182 |               const typename _OLayout::mapping<_OExtents>&>
          |                                        ^
    include/c++/16.0.0/mdspan:1185:31: error: use 'template' keyword to treat 'mapping' as a dependent template name
     1185 |             const typename _OLayout::mapping<_OExtents>&, mapping_type>
          |                                      ^
    
    libstdc++-v3/ChangeLog:
    
            * include/std/mdspan (mdspan): Add template keyword for
            dependent name.

Diff:
---
 libstdc++-v3/include/std/mdspan | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libstdc++-v3/include/std/mdspan b/libstdc++-v3/include/std/mdspan
index 5d16de5d9072..b34116a85e67 100644
--- a/libstdc++-v3/include/std/mdspan
+++ b/libstdc++-v3/include/std/mdspan
@@ -1179,10 +1179,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       template<typename _OElementType, typename _OExtents, typename _OLayout,
 	       typename _OAccessor>
 	requires is_constructible_v<mapping_type,
-	      const typename _OLayout::mapping<_OExtents>&>
+	      const typename _OLayout::template mapping<_OExtents>&>
 	  && is_constructible_v<accessor_type, const _OAccessor&>
 	constexpr explicit(!is_convertible_v<
-	    const typename _OLayout::mapping<_OExtents>&, mapping_type>
+	    const typename _OLayout::template mapping<_OExtents>&, mapping_type>
 	  || !is_convertible_v<const _OAccessor&, accessor_type>)
 	mdspan(const mdspan<_OElementType, _OExtents, _OLayout, _OAccessor>&
 		 __other)


More information about the Libstdc++-cvs mailing list