[PATCH v3 0/5] Implement mdspan.

Luc Grosheintz luc.grosheintz@gmail.com
Mon Jul 7 09:12:12 GMT 2025



On 7/7/25 11:01, Tomasz Kaminski wrote:
> Hi,
> 
> The patches look good to me, the only real comment is about using header
> guard, that I plan to do locally.
> I am testing on full test suite now, and will merge them pending the
> approval from Jonathan.
> 
>  From the patch that will set __cpp_lib_mdspan, do you want to create it? I
> can also prepare that patch,
> but given that you provided the whole implementation, it would be nice to
> have also this one attributed to you.

I think I have it ready somewhere. I'll find it and send it.

> 
> On Fri, Jul 4, 2025 at 3:18 PM Luc Grosheintz <luc.grosheintz@gmail.com>
> wrote:
> 
>> Additionally, I think we can set __cpp_lib_mdspan.
>>
> Yes, we should set it to value 202207. I can add this patch.
> 
>>
>> On 7/4/25 10:29, Luc Grosheintz wrote:
>>> This patch series replaces:
>>> https://gcc.gnu.org/pipermail/libstdc++/2025-June/062207.html
>>>
>>> Addresses the review comments and improves commit messages. Most notably
>>> the unnecessary patch to "strength" exception guarantees has been
>>> removed (and tests moved into the mdspan commit).
>>>
>>> The outstanding tasks for C++23 mdspan are:
>>>
>>>     - Update cxxapi-data.csv,
>>>     - Update C++23 status page.
>>>
>>> IIUC, the cxxapi-data.csv can be updated separately in bulk for all of
>>> C++23 mdspan and I can take care of it in a follow up patch. I'm not
>>> entirely sure when and by whom the status page is updated.
>>>
>>> Luc Grosheintz (5):
>>>     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++-v3/include/std/mdspan               | 314 ++++++++-
>>>    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 +
>>>    .../23_containers/mdspan/layout_like.h        |  80 +++
>>>    .../mdspan/layouts/debug/out_of_bounds_neg.cc |  30 +
>>>    .../testsuite/23_containers/mdspan/mdspan.cc  | 603 ++++++++++++++++++
>>>    .../23_containers/mdspan/out_of_bounds_neg.cc |  24 +
>>>    11 files changed, 1156 insertions(+), 31 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/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
>>>
>>
>>
> 



More information about the Libstdc++ mailing list