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