All patches were merged. I will double check that we got all the papers listed and the issue, and close it. Thanks again for your submissions.
On Tue, Jul 8, 2025 at 10:26 AM Luc Grosheintz <luc.groshei...@gmail.com> wrote: > Patches 1/5 ... 4/5 aren't sent because corresponding commits from v3 > should be used. The changes for 5/5 are: > > * Fix ADL issue in swap and create tests. > * Replace pragma once with include guard in layout_like.h. > * Use VERIFY(md.empty()) when checking value initialization. > > Since the code for swap is identical for all three members of mdspan, > this commit intentionally checks that the accessor is ADL swappable, but > not the other two memebers. Doing so allows us to have a single, short > class purely dedicated to ADL. Otherwise we'd need to put OpaqueLayout > and LayoutLike into a namespace and add ADL related logic. I tried it > and wasn't too happy with the result. This felt shorter, more directly > to the point while still checking that the implemented swap function > allows ADL for swapping all members variables. I tested effectiveness > of the test by reverting the fix and making sure the test fails. > > This version of the patch series also adds the commit to update the > FTM. The changes are: > > * Update the commit message to mention the related ticket. > * Rename the file. > * Implement a more verbose version of the test. > > Luc Grosheintz (6): > libstdc++: Check prerequisites of layout_*::operator(). > libstdc++: Check prerequisite of extents::extents. > libstdc++: Restructure mdspan tests to reuse IntLike. > libstdc++: Implement __mdspan::__size. > libstdc++: Implement mdspan and tests [PR107761]. > libstdc++: Set FMT for complete C++23 mdspan [PR107761]. > > libstdc++-v3/include/bits/version.def | 3 +- > libstdc++-v3/include/bits/version.h | 3 +- > libstdc++-v3/include/std/mdspan | 315 ++++++++- > libstdc++-v3/src/c++23/std.cc.in | 3 +- > .../23_containers/mdspan/class_mandate_neg.cc | 41 ++ > .../mdspan/extents/class_mandates_neg.cc | 2 + > .../mdspan/extents/custom_integer.cc | 27 +- > .../mdspan/extents/extents_mismatch_neg.cc | 35 + > .../23_containers/mdspan/extents/int_like.h | 28 + > .../testsuite/23_containers/mdspan/ftm.cc | 9 + > .../23_containers/mdspan/layout_like.h | 83 +++ > .../mdspan/layouts/debug/out_of_bounds_neg.cc | 30 + > .../testsuite/23_containers/mdspan/mdspan.cc | 643 ++++++++++++++++++ > .../23_containers/mdspan/out_of_bounds_neg.cc | 24 + > 14 files changed, 1212 insertions(+), 34 deletions(-) > create mode 100644 > libstdc++-v3/testsuite/23_containers/mdspan/class_mandate_neg.cc > create mode 100644 > libstdc++-v3/testsuite/23_containers/mdspan/extents/extents_mismatch_neg.cc > create mode 100644 > libstdc++-v3/testsuite/23_containers/mdspan/extents/int_like.h > create mode 100644 libstdc++-v3/testsuite/23_containers/mdspan/ftm.cc > create mode 100644 > libstdc++-v3/testsuite/23_containers/mdspan/layout_like.h > create mode 100644 > libstdc++-v3/testsuite/23_containers/mdspan/layouts/debug/out_of_bounds_neg.cc > create mode 100644 libstdc++-v3/testsuite/23_containers/mdspan/mdspan.cc > create mode 100644 > libstdc++-v3/testsuite/23_containers/mdspan/out_of_bounds_neg.cc > > -- > 2.49.0 > >