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

-- 
2.50.1

Reply via email to