From 15498d5f96378b019df9f255d3f32f76a44684c4 Mon Sep 17 00:00:00 2001 From: Luc Grosheintz Date: Thu, 2 Oct 2025 11:27:15 +0200 Subject: [PATCH] libstdc++: Implement full_extent_t. [PR110352] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add the class and updates the std module. PR libstdc++/110352 libstdc++-v3/ChangeLog: * include/std/mdspan (full_extent_t): New class. * src/c++23/std.cc.in (full_extent_t): Add. Reviewed-by: Jonathan Wakely Reviewed-by: Tomasz KamiƄski Signed-off-by: Luc Grosheintz --- libstdc++-v3/include/std/mdspan | 7 +++++++ libstdc++-v3/src/c++23/std.cc.in | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/libstdc++-v3/include/std/mdspan b/libstdc++-v3/include/std/mdspan index 7acc232024e..7f69626e4e8 100644 --- a/libstdc++-v3/include/std/mdspan +++ b/libstdc++-v3/include/std/mdspan @@ -337,6 +337,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION } #if __glibcxx_submdspan + struct full_extent_t + { + explicit full_extent_t() = default; + }; + + inline constexpr full_extent_t full_extent{}; + template struct strided_slice { static_assert(__is_standard_integer<_OffsetType>::value diff --git a/libstdc++-v3/src/c++23/std.cc.in b/libstdc++-v3/src/c++23/std.cc.in index 8da78fe955b..bfccf3cec95 100644 --- a/libstdc++-v3/src/c++23/std.cc.in +++ b/libstdc++-v3/src/c++23/std.cc.in @@ -1873,9 +1873,10 @@ export namespace std using std::layout_left_padded; using std::layout_right_padded; using strided_slice; + using full_extent_t; + using full_extent; #endif - // FIXME submdspan_mapping_result, full_extent_t, full_extent, - // submdspan_extents, mdsubspan + // FIXME submdspan_mapping_result, submdspan_extents, mdsubspan } #endif