This patch series contains everything up to submdspan_extents and
implements them as described in N5014, i.e. without P3663.

The reasons to not include P3663 are:

  - Doing both allows us to benchmark the change.

  - Carefully implementing both, automatically leads to looking at the
    problem from different angles. We can spot differences between the
    two proposals. One such difference is that P3663 seems to allow
    ambiguous slices, e.g. slices that convert to both full_extent and
    index_type.

  - P3663 hasn't been finalized yet, if we implement it now we'll need
    to keep track of the difference. That's easier (or at least not
    harder) if we have a commit containing the already applied changes
    from N5014.

  - With a casting layer in place, the changes in the paper are quite
    contained, e.g. remove cases for handling tuple, slightly refine
    the range checks of slices (more can be done at compile-time).

  - We could easily revert P3663 if needed.

Luc Grosheintz (4):
  libstdc++: Implement strided_slice from <mdspan>. [PR110352]
  libstdc++: Implement full_extent_t. [PR110352]
  libstdc++: Implement submdspan_mapping_result. [PR110352]
  libstdc++: Implement submdspan_extents. [PR110352]

 libstdc++-v3/include/bits/version.def         |   9 +
 libstdc++-v3/include/bits/version.h           |   9 +
 libstdc++-v3/include/std/mdspan               | 311 ++++++++++++++++++
 libstdc++-v3/src/c++23/std.cc.in              |   7 +-
 .../testsuite/23_containers/mdspan/int_like.h |   9 +
 .../mdspan/submdspan/strided_slice.cc         |  46 +++
 .../mdspan/submdspan/strided_slice_neg.cc     |  19 ++
 .../mdspan/submdspan/submdspan_extents.cc     | 159 +++++++++
 .../mdspan/submdspan/submdspan_extents_neg.cc |  66 ++++
 9 files changed, 633 insertions(+), 2 deletions(-)
 create mode 100644 
libstdc++-v3/testsuite/23_containers/mdspan/submdspan/strided_slice.cc
 create mode 100644 
libstdc++-v3/testsuite/23_containers/mdspan/submdspan/strided_slice_neg.cc
 create mode 100644 
libstdc++-v3/testsuite/23_containers/mdspan/submdspan/submdspan_extents.cc
 create mode 100644 
libstdc++-v3/testsuite/23_containers/mdspan/submdspan/submdspan_extents_neg.cc

-- 
2.50.1

Reply via email to