Add template keyword to <mdspan> for Clang

Luc Grosheintz luc.grosheintz@gmail.com
Mon Jul 7 11:25:50 GMT 2025



On 7/5/25 01:13, Jonathan Wakely wrote:
> Clang wants this change:
> 
> --- a/libstdc++-v3/include/std/mdspan
> +++ b/libstdc++-v3/include/std/mdspan
> @@ -509,7 +509,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> 
>      template<typename _Layout, typename _Mapping>
>        concept __mapping_of =
> -       is_same_v<typename _Layout::mapping<typename _Mapping::extents_type>,
> +       is_same_v<typename _Layout::template mapping<typename
> _Mapping::extents_type>,
>                   _Mapping>;
> 
>      template<typename _Mapping>
> 
> to fix:
> 
> /home/jwakely/gcc/latest/lib/gcc/x86_64-pc-linux-gnu/16.0.0/../../../../include/c++/16.0.0/mdspan:512:30:
> error: use 'template' keyword to treat 'mapping' a
> s a dependent template name
>   512 |         is_same_v<typename _Layout::mapping<typename
> _Mapping::extents_type>,
>       |                                     ^
> 
> 
> I'll push that on Monday.
> 

I've been dreading this. Unless, you're confident it's
the only issue (my gut says it's not), is now a good time
to ensure our implementation of mdspan is compatible with
other compilers?

Is there a good trick for doing this? (Better than
--gcc-toolkit and try to compile each non-neg test file.)

Which other compilers should I check?


More information about the Libstdc++ mailing list