Technically, this is the second iteration of these patches. Previous discussion can be found here:
https://gcc.gnu.org/pipermail/libstdc++/2025-May/061350.html` The implementation of `layout_stride::mapping::is_exhaustive` needs to be discussed, because for empty extents, the standard seems to require implementing a formula that doesn't require returning true in all cases. Luc Grosheintz (6): libstdc++: Implement layout_left from mdspan. libstdc++: Add tests for layout_left. libstdc++: Implement layout_right from mdspan. libstdc++: Add tests for layout_right. libstdc++: Implement layout_stride from mdspan. libstdc++: Add tests for layout_stride. libstdc++-v3/include/std/mdspan | 604 ++++++++++++++++++ .../mdspan/layouts/class_mandate_neg.cc | 42 ++ .../23_containers/mdspan/layouts/ctors.cc | 421 ++++++++++++ .../23_containers/mdspan/layouts/mapping.cc | 573 +++++++++++++++++ .../23_containers/mdspan/layouts/stride.cc | 494 ++++++++++++++ 5 files changed, 2134 insertions(+) create mode 100644 libstdc++-v3/testsuite/23_containers/mdspan/layouts/class_mandate_neg.cc create mode 100644 libstdc++-v3/testsuite/23_containers/mdspan/layouts/ctors.cc create mode 100644 libstdc++-v3/testsuite/23_containers/mdspan/layouts/mapping.cc create mode 100644 libstdc++-v3/testsuite/23_containers/mdspan/layouts/stride.cc -- 2.49.0