How do I construct and use std::mdspan (proposals) in C++?

The std::mdspan is a proposed addition to the C++ standard library that provides a multidimensional view into a contiguous block of data. It allows for efficient indexing and slicing operations, making it easier to work with multi-dimensional arrays or data structures.

Below is an example of how to construct and use std::mdspan in C++:

#include #include int main() { constexpr std::size_t rows = 4; constexpr std::size_t cols = 3; int data[rows][cols] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12} }; std::experimental::mdspan> mspan(data); for (std::size_t i = 0; i < mspan.extent(0); ++i) { for (std::size_t j = 0; j < mspan.extent(1); ++j) { std::cout << mspan(i, j) << " "; } std::cout << std::endl; } return 0; }

std::mdspan C++ multidimensional array C++ proposals C++ library data view indexing slicing operations