Noo! These have already been sent and reviewed. Please IGNORE.
On 9/23/25 3:07 PM, Luc Grosheintz wrote:
Changes since v1:
- Use cmp_* when comparing two integers of differnt types.
- Remove the FTM submdspan and replace it with an unofficial
purely internal FTM called padded_layouts.
- Make __get_static_stride consteval.
- Make __is_*_padded_layout only available inside
__glibcxx_padded_layout regions.
- Use size_t for __least_multiple_at_least.
- Implement checks (mandate and prerequisite) for representable padded
static stride.
- Implement checks for representable padded "size", i.e. the product
of padded extents. This product might be larger than the
required_span_size, but the standard requires the product to be
representable (not just required_span_size).
- New overload for __static_extents(__begin, __end).
- Remove the double checked prerequisite.
- Skip some calculations for static first stride (2x).
- Replace array<..., ...> with _Stride.
- s/_S_stride_type/_Stride
- Test additional cases for default ctor.
- Rename ConversionRule::Conventional to Regular.
- Remove empty file testsuite/mdspan/layouts/debug/padded_neg.cc.
- Ensure all tests are run.
- Test remaining prerequisite in mapping(layout_stride).
I also noticed that some of the changes can be split into separate
commits.
Luc Grosheintz (5):
libstdc++: Refactor layout mapping tests to use a concept.
libstdc++: Fix bug in layout mapping tests.
libstdc++: Prepare mapping layout tests for left padded.
libstdc++: Refactor __mdspan::__static_quotient.
libstdc++: Implement std::layout_left_padded.
libstdc++-v3/include/bits/version.def | 10 +
libstdc++-v3/include/bits/version.h | 9 +
libstdc++-v3/include/std/mdspan | 541 +++++++++++++++-
libstdc++-v3/src/c++23/std.cc.in | 8 +-
.../mdspan/layouts/class_mandate_neg.cc | 1 +
.../23_containers/mdspan/layouts/ctors.cc | 61 +-
.../mdspan/layouts/debug/padded_neg.cc | 22 +
.../23_containers/mdspan/layouts/empty.cc | 12 +-
.../23_containers/mdspan/layouts/mapping.cc | 204 ++++--
.../23_containers/mdspan/layouts/padded.cc | 611 ++++++++++++++++++
.../mdspan/layouts/padded_neg.cc | 280 ++++++++
11 files changed, 1692 insertions(+), 67 deletions(-)
create mode 100644
libstdc++-v3/testsuite/23_containers/mdspan/layouts/debug/padded_neg.cc
create mode 100644
libstdc++-v3/testsuite/23_containers/mdspan/layouts/padded.cc
create mode 100644
libstdc++-v3/testsuite/23_containers/mdspan/layouts/padded_neg.cc