Hi Tomasz, Indeed, it's wonderful! Thank you for your persistent, thorough and very timely reviews; and taking care of landing the patches in trunk (and remembering patches that were posted months before the corresponding language got merged into the standard).
I'm very happy that together we've made mdspan a reality and I'm excited and hopeful that not every HPC project will start with implementing a multi-dimensional array anymore and more importantly that finally C++ libraries can talk to each other by passing a shared type: mdspan. Let's keep in touch! Luc On 12/9/25 18:18, Tomasz Kaminski wrote:
Hi Luc, I have merged all the patches just now, and that makes the libstdc++ implementation complete for both C++23/26. I would like to take this opportunity to thank you again for the continued, high-quality contributions that led to this. We really appreciated them. If you are interested in taking on the next topic, please do not hesitate to let us know. If you are looking for a smaller contained item, there is https://cplusplus.github.io/LWG/issue4383 issue changing constant_wrapper that was recently approved. Of course, please feel no obligation to do so, there is no expectation or requirement for you to continue, regardless of reason. Hope to hear from you again, Tomasz On Mon, Dec 8, 2025 at 9:21 PM Luc Grosheintz <[email protected]> wrote:Replaces v4. The important changes are: - Split the testcase into one per layout. - Fixed __slice_mapping and moved tests from `*_neg.cc` to generic.cc using concepts. - Make _BufferSize a regular parameter. - Fixed bug in __substrides. I didn't change the logic for _S_is_unpadded_submdspan, because it exactly matches the text of the standard; and this way there's to fear that __slice_kinds[0] is invalid. Luc Grosheintz (7): libstdc++: Silence warning in mdspan. libstdc++: Implement submdspan and submdspan_mapping for layout_left. [PR110352] libstdc++: Implement submdspan_mapping for layout_right. [PR110352] libstdc++: Implement submdspan_mapping for layout_stride. [PR110352] libstdc++: Implement submdspan_mapping for layout_left_padded. [PR110352] libstdc++: Implement submdspan_mapping for layout_right_padded. [PR110352] libstdc++: Set __cpp_lib_submdspan to 202411. libstdc++-v3/include/bits/version.def | 6 +- libstdc++-v3/include/bits/version.h | 7 +- libstdc++-v3/include/std/mdspan | 718 ++++++++++++++++-- libstdc++-v3/src/c++23/std.cc.in | 2 +- .../23_containers/mdspan/layout_traits.h | 4 + .../23_containers/mdspan/submdspan/generic.cc | 71 ++ .../mdspan/submdspan/selections/left.cc | 9 + .../submdspan/selections/left_padded_1.cc | 9 + .../submdspan/selections/left_padded_8.cc | 9 + .../submdspan/selections/left_padded_dyn.cc | 9 + .../mdspan/submdspan/selections/right.cc | 9 + .../submdspan/selections/right_padded_1.cc | 9 + .../submdspan/selections/right_padded_8.cc | 9 + .../submdspan/selections/right_padded_dyn.cc | 9 + .../mdspan/submdspan/selections/stride.cc | 9 + .../mdspan/submdspan/selections/testcases.h | 360 +++++++++ .../mdspan/submdspan/submdspan_mapping.cc | 301 ++++++++ .../mdspan/submdspan/submdspan_neg.cc | 122 +++ 18 files changed, 1608 insertions(+), 64 deletions(-) create mode 100644 libstdc++-v3/testsuite/23_containers/mdspan/submdspan/generic.cc create mode 100644 libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/left.cc create mode 100644 libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/left_padded_1.cc create mode 100644 libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/left_padded_8.cc create mode 100644 libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/left_padded_dyn.cc create mode 100644 libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/right.cc create mode 100644 libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/right_padded_1.cc create mode 100644 libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/right_padded_8.cc create mode 100644 libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/right_padded_dyn.cc create mode 100644 libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/stride.cc create mode 100644 libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/testcases.h create mode 100644 libstdc++-v3/testsuite/23_containers/mdspan/submdspan/submdspan_mapping.cc create mode 100644 libstdc++-v3/testsuite/23_containers/mdspan/submdspan/submdspan_neg.cc -- 2.52.0
