Replaces v4. The important changes are:

  - Split the testcase into one per layout.
  - Fixed __slice_mapping and moved tests from `*_neg.cc` to
  generic.cc using concepts.
  - Make _BufferSize a regular parameter.
  - Fixed bug in __substrides.

I didn't change the logic for _S_is_unpadded_submdspan, because
it exactly matches the text of the standard; and this way there's to
fear that __slice_kinds[0] is invalid.

Luc Grosheintz (7):
  libstdc++: Silence warning in mdspan.
  libstdc++: Implement submdspan and submdspan_mapping for layout_left.
    [PR110352]
  libstdc++: Implement submdspan_mapping for layout_right. [PR110352]
  libstdc++: Implement submdspan_mapping for layout_stride. [PR110352]
  libstdc++: Implement submdspan_mapping for layout_left_padded.
    [PR110352]
  libstdc++: Implement submdspan_mapping for layout_right_padded.
    [PR110352]
  libstdc++: Set __cpp_lib_submdspan to 202411.

 libstdc++-v3/include/bits/version.def         |   6 +-
 libstdc++-v3/include/bits/version.h           |   7 +-
 libstdc++-v3/include/std/mdspan               | 718 ++++++++++++++++--
 libstdc++-v3/src/c++23/std.cc.in              |   2 +-
 .../23_containers/mdspan/layout_traits.h      |   4 +
 .../23_containers/mdspan/submdspan/generic.cc |  71 ++
 .../mdspan/submdspan/selections/left.cc       |   9 +
 .../submdspan/selections/left_padded_1.cc     |   9 +
 .../submdspan/selections/left_padded_8.cc     |   9 +
 .../submdspan/selections/left_padded_dyn.cc   |   9 +
 .../mdspan/submdspan/selections/right.cc      |   9 +
 .../submdspan/selections/right_padded_1.cc    |   9 +
 .../submdspan/selections/right_padded_8.cc    |   9 +
 .../submdspan/selections/right_padded_dyn.cc  |   9 +
 .../mdspan/submdspan/selections/stride.cc     |   9 +
 .../mdspan/submdspan/selections/testcases.h   | 360 +++++++++
 .../mdspan/submdspan/submdspan_mapping.cc     | 301 ++++++++
 .../mdspan/submdspan/submdspan_neg.cc         | 122 +++
 18 files changed, 1608 insertions(+), 64 deletions(-)
 create mode 100644 
libstdc++-v3/testsuite/23_containers/mdspan/submdspan/generic.cc
 create mode 100644 
libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/left.cc
 create mode 100644 
libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/left_padded_1.cc
 create mode 100644 
libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/left_padded_8.cc
 create mode 100644 
libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/left_padded_dyn.cc
 create mode 100644 
libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/right.cc
 create mode 100644 
libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/right_padded_1.cc
 create mode 100644 
libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/right_padded_8.cc
 create mode 100644 
libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/right_padded_dyn.cc
 create mode 100644 
libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/stride.cc
 create mode 100644 
libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/testcases.h
 create mode 100644 
libstdc++-v3/testsuite/23_containers/mdspan/submdspan/submdspan_mapping.cc
 create mode 100644 
libstdc++-v3/testsuite/23_containers/mdspan/submdspan/submdspan_neg.cc

-- 
2.52.0

Reply via email to