]> git.ipfire.org Git - thirdparty/gcc.git/commit
libstdc++: Implement submdspan_mapping for layout_left_padded. [PR110352]
authorLuc Grosheintz <luc.grosheintz@gmail.com>
Mon, 8 Dec 2025 20:23:44 +0000 (21:23 +0100)
committerTomasz Kamiński <tkaminsk@redhat.com>
Tue, 9 Dec 2025 16:08:01 +0000 (17:08 +0100)
commit558ab7b6389e2dc8dcd5e9da2c982e79a3cdd42c
tree80ef29a63f805b904bdd8a7e4033644b7a611484
parent0fcb1bd46a42c2b0ae5918d30e0ad82f5651f854
libstdc++: Implement submdspan_mapping for layout_left_padded. [PR110352]

Implements submdspan for layout_left_padded as described in P3663.

PR libstdc++/110352

libstdc++-v3/ChangeLog:

* include/std/mdspan (__mdspan::__is_padded_mapping): Define.
(__mdspan::_SubMdspanMapping): Add _Padded template parameter.
(__mdspan::_SubMdspanMapping<_LayoutSide::__left, true>): Define.
(__mdspan::__submdspan_mapping_impl): Updated _Trait alias.
(layout_left_padded::submdspan_mapping): New friend method.
* testsuite/23_containers/mdspan/layout_traits.h
(LayoutTraits::layout_same_padded): New template type alias.
* testsuite/23_containers/mdspan/submdspan/selections/left_padded.cc:
Instantiate tests for layout_left_padded.
* testsuite/23_containers/mdspan/submdspan/submdspan_mapping.cc:
Ditto.

Reviewed-by: Tomasz Kamiński <tkaminsk@redhat.com>
Signed-off-by: Luc Grosheintz <luc.grosheintz@gmail.com>
libstdc++-v3/include/std/mdspan
libstdc++-v3/testsuite/23_containers/mdspan/layout_traits.h
libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/left_padded.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/mdspan/submdspan/submdspan_mapping.cc