This follows up on:
https://gcc.gnu.org/pipermail/libstdc++/2025-May/061572.html

Note that this patch series can only be applied after merging:
https://gcc.gnu.org/pipermail/libstdc++/2025-May/061653.html

The important changes since v3 are:
  * Fixed and testsed several related overflow issues that occured in
    extents of size 0 by using `size_t` to compute products.
  * Fixed and tested default ctors.
  * Add missing code for module support.
  * Documented deviation from standard.

The smaller changes include:
  * Squashed the three small commits that make cosmetic changes to
    std::extents.
  * Remove layout_left related changes from the layout_stride commit.
  * Remove superfluous `mapping(extents_type(__exts))`.
  * Fix indenting and improve comment in layout_stride.
  * Add an easy check for representable required_span_size to
    layout_stride.
  * Inline __dynamic_extents_prod

Thank you Tomasz for all the great reviews!

Luc Grosheintz (8):
  libstdc++: Improve naming and whitespace for extents.
  libstdc++: Implement layout_left from mdspan.
  libstdc++: Add tests for layout_left.
  libstdc++: Implement layout_right from mdspan.
  libstdc++: Add tests for layout_right.
  libstdc++: Implement layout_stride from mdspan.
  libstdc++: Add tests for layout_stride.
  libstdc++: Make layout_left(layout_stride) noexcept.

 libstdc++-v3/include/std/mdspan               | 711 +++++++++++++++++-
 libstdc++-v3/src/c++23/std.cc.in              |   5 +-
 .../mdspan/layouts/class_mandate_neg.cc       |  42 ++
 .../23_containers/mdspan/layouts/ctors.cc     | 459 +++++++++++
 .../23_containers/mdspan/layouts/empty.cc     |  78 ++
 .../23_containers/mdspan/layouts/mapping.cc   | 568 ++++++++++++++
 .../23_containers/mdspan/layouts/stride.cc    | 500 ++++++++++++
 7 files changed, 2349 insertions(+), 14 deletions(-)
 create mode 100644 
libstdc++-v3/testsuite/23_containers/mdspan/layouts/class_mandate_neg.cc
 create mode 100644 libstdc++-v3/testsuite/23_containers/mdspan/layouts/ctors.cc
 create mode 100644 libstdc++-v3/testsuite/23_containers/mdspan/layouts/empty.cc
 create mode 100644 
libstdc++-v3/testsuite/23_containers/mdspan/layouts/mapping.cc
 create mode 100644 
libstdc++-v3/testsuite/23_containers/mdspan/layouts/stride.cc

-- 
2.49.0

Reply via email to