The previous iteration can be found here: https://gcc.gnu.org/pipermail/libstdc++/2025-May/061781.html
Changes since v5: * Fixed tests on 32-bit systems. * Expand tests to check absense of UB while multiplying dynamic extents. * Formatting (several places). * static_assert for size of OMapping::extents_type in layout_stride and associated neg tests. Thank you for the review of v5. Luc Grosheintz (8): libstdc++: Improve naming, whitespace and silence warnings for extents. 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++: Make layout_left(layout_stride) noexcept. libstdc++-v3/include/std/mdspan | 726 +++++++++++++++++- libstdc++-v3/src/c++23/std.cc.in | 5 +- .../mdspan/extents/ctor_default.cc | 2 +- .../mdspan/layouts/class_mandate_neg.cc | 46 ++ .../23_containers/mdspan/layouts/ctors.cc | 436 +++++++++++ .../23_containers/mdspan/layouts/empty.cc | 131 ++++ .../23_containers/mdspan/layouts/mapping.cc | 568 ++++++++++++++ .../23_containers/mdspan/layouts/stride.cc | 526 +++++++++++++ 8 files changed, 2425 insertions(+), 15 deletions(-) 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/empty.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