Follows up on:
https://gcc.gnu.org/pipermail/libstdc++/2025-May/061535.html
To improve naming conventions, this series includes three new commits:
* Two commits to rename _ExtentsStorage::_M_dynamic_extents, and
extents::_M_dynamic_extents.
* One commit to cleanup whitespace errors in extents.
The changes to the existing commits are:
* Fix division by zero bug.
* Rename subextents -> extents.
* Default arguments for __{static,dynamic}_extents.
* Default argument for __static_quotient.
* Four times: use range-based for.
* Eliminate __has_static_zero
* Short-circuit in __static_quotient.
* Optimize __exts_prod for rank == rank_dynamic.
This review suggestion was intentionally skipped:
* Inline helper of __exts_prod, because with the additional
optimization for rank == rank_dynamic, having two separate
functions makes the highlevel structure a little bit more
obvious. Additionally, there's numerous changes planned that
might make one of the two functions much more verbose.
Luc Grosheintz (9):
libstdc++: Rename _ExtentsStorage::_M_dynamic_extents.
libstdc++: Rename extents::_M_dynamic_extents.
libstdc++: Cleanup formatting in mdspan.
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++-v3/include/std/mdspan | 692 +++++++++++++++++-
.../mdspan/layouts/class_mandate_neg.cc | 42 ++
.../23_containers/mdspan/layouts/ctors.cc | 401 ++++++++++
.../23_containers/mdspan/layouts/mapping.cc | 569 ++++++++++++++
.../23_containers/mdspan/layouts/stride.cc | 494 +++++++++++++
5 files changed, 2185 insertions(+), 13 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/mapping.cc
create mode 100644
libstdc++-v3/testsuite/23_containers/mdspan/layouts/stride.cc
--
2.49.0