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