[gcc r16-4293] libstdc++: Implement submdspan_mapping_result. [PR110352]

Tomasz Kaminski tkaminsk@gcc.gnu.org
Wed Oct 8 10:41:17 GMT 2025


https://gcc.gnu.org/g:e269268e45ba0befabdfc8a8c2f04dcbb44ccdf4

commit r16-4293-ge269268e45ba0befabdfc8a8c2f04dcbb44ccdf4
Author: Luc Grosheintz <luc.grosheintz@gmail.com>
Date:   Thu Oct 2 11:27:16 2025 +0200

    libstdc++: Implement submdspan_mapping_result. [PR110352]
    
    Implement the class submdspan_mapping_result and add it to the std
    module.
    
            PR libstdc++/110352
    
    libstdc++-v3/ChangeLog:
    
            * include/std/mdspan (submdspan_mapping_result): New class.
            * src/c++23/std.cc.in (submdspan_mapping_result): Add.
    
    Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
    Reviewed-by: Tomasz Kamiński <tkaminsk@redhat.com>
    Signed-off-by: Luc Grosheintz <luc.grosheintz@gmail.com>

Diff:
---
 libstdc++-v3/include/std/mdspan  | 7 +++++++
 libstdc++-v3/src/c++23/std.cc.in | 3 ++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/libstdc++-v3/include/std/mdspan b/libstdc++-v3/include/std/mdspan
index 7f69626e4e86..d555b7f2580a 100644
--- a/libstdc++-v3/include/std/mdspan
+++ b/libstdc++-v3/include/std/mdspan
@@ -361,6 +361,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       [[no_unique_address]] extent_type extent{};
       [[no_unique_address]] stride_type stride{};
     };
+
+  template<typename _Mapping>
+    struct submdspan_mapping_result
+    {
+      [[no_unique_address]] _Mapping mapping = _Mapping();
+      size_t offset{};
+    };
 #endif
 
   template<typename _IndexType, size_t... _Extents>
diff --git a/libstdc++-v3/src/c++23/std.cc.in b/libstdc++-v3/src/c++23/std.cc.in
index bfccf3cec956..9cf5fa7dcb62 100644
--- a/libstdc++-v3/src/c++23/std.cc.in
+++ b/libstdc++-v3/src/c++23/std.cc.in
@@ -1875,8 +1875,9 @@ export namespace std
   using strided_slice;
   using full_extent_t;
   using full_extent;
+  using submdspan_mapping_result;
 #endif
-  // FIXME submdspan_mapping_result, submdspan_extents, mdsubspan
+  // FIXME submdspan_extents, mdsubspan
 }
 #endif


More information about the Libstdc++-cvs mailing list