Шесть чисел можно представить матрицей 2×3 без копирования элементов.
std::mdspan из C++23 связывает данные, размеры и способ преобразования индексов в смещение.Для буфера
10, 20, 30, 40, 50, 60 раскладка layout_right идёт по строкам, layout_left — по столбцам. В проверенном примере индекс [1,1] даёт соответственно 50 и 40. Запись через один вид меняет тот же буфер, который виден другому.Размеры и layout не управляют временем жизни данных. В этом примере обычный accessor работает с указателем на
std::array, поэтому массив должен жить дольше представлений. Поддержку C++23 нужно проверить и у компилятора, и у стандартной библиотеки.Устройство mdspan в P0009
📍 Навигация: Вакансии • Задачи • Собесы
#под_капотом
