O código a seguir funciona:
std::array Array{1, 2, 3, 4, 5, 6, 7, 8};
std::mdspan<int, std::dextents<size_t, 2>> Span(Array.data(), 4, 2 );
Este produz um erro de compilação:
std::array Array{1, 2, 3, 4, 5, 6, 7, 8};
std::span sp(Array.data(), 8);
std::mdspan<int, std::dextents<size_t, 2>> Span(sp, 4, 2 );
Por exemplo, o erro no clang:
<source>:26:48: error: no matching constructor for initialization of 'std::mdspan<int, std::dextents<size_t, 2>>' (aka 'mdspan<int, extents<unsigned long, 18446744073709551615UL, 18446744073709551615UL>>')
26 | std::mdspan<int, std::dextents<size_t, 2>> Span(sp), 4, 2);
<...some more lines...>
É possível construir um mdspan
a partir de um span
? Se sim, o que estou esquecendo? (é um código-fonte simplificado, obviamente não precisaríamos de extensões dinâmicas aqui)