On Thu, Sep 11, 2025 at 1:50 PM Luc Grosheintz <[email protected]>
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.
>
Hi,
The first four patches LGTM, however I will put them in one patch,
that just least all made changes, they are really small.
I do not think I will be able to review layout_left_padded today fully,
and I will continue review in two weeks. I will post a partial notes
marking them as so.


>
> 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
>
> --
> 2.50.1
>
>

Reply via email to