Thank you for the fast response and fixes.
I will next week experiment with running libc++ test, so will confirm here
if they are all fixed.

On Wed, Jul 16, 2025 at 3:47 PM Luc Grosheintz <luc.groshei...@gmail.com>
wrote:

> These three commits fix PR121061. The first prepares the tests, and then
> the next two each fix one of the bugs reported in PR121061.
>
> One issue to consider is that the effect of Layout::mapping::operator()
> is specified to be equivalent to [1]:
>
>   return ((static_cast<index_type>(i) * stride(P)) + ... + 0);
>
> Which doesn't mention `std::move`. I've added std::move, since I believe
> that's the intended behaviour.
>
> [1]: https://eel.is/c++draft/mdspan.layout.left#obs-4

This is bug indeed, and we should report it.

>
>
> Luc Grosheintz (3):
>   libstdc++: Refactor mdspan tests [PR121061]
>   libstdc++: Fix constraint for custom integer types in mdspan
>     [PR121061]
>   libstdc++: Fix forwarding of custom IndexType in mdspan [PR121061]
>
>  libstdc++-v3/include/std/mdspan               |  42 ++---
>  .../mdspan/extents/custom_integer.cc          | 102 ++++++++----
>  .../23_containers/mdspan/extents/int_like.h   |  30 ----
>  .../testsuite/23_containers/mdspan/int_like.h |  63 ++++++++
>  .../23_containers/mdspan/layouts/mapping.cc   | 114 +++++++-------
>  .../23_containers/mdspan/layouts/stride.cc    |  21 +--
>  .../testsuite/23_containers/mdspan/mdspan.cc  | 147 ++++++++++++------
>  7 files changed, 315 insertions(+), 204 deletions(-)
>  delete mode 100644
> libstdc++-v3/testsuite/23_containers/mdspan/extents/int_like.h
>  create mode 100644 libstdc++-v3/testsuite/23_containers/mdspan/int_like.h
>
> --
> 2.50.0
>
>

Reply via email to