https://gcc.gnu.org/g:15498d5f96378b019df9f255d3f32f76a44684c4

commit r16-4292-g15498d5f96378b019df9f255d3f32f76a44684c4
Author: Luc Grosheintz <[email protected]>
Date:   Thu Oct 2 11:27:15 2025 +0200

    libstdc++: Implement full_extent_t. [PR110352]
    
    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 <[email protected]>
    Reviewed-by: Tomasz KamiƄski <[email protected]>
    Signed-off-by: Luc Grosheintz <[email protected]>

Diff:
---
 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 7acc232024e9..7f69626e4e86 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<typename _OffsetType, typename _ExtentType, typename _StrideType>
     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 8da78fe955b7..bfccf3cec956 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

Reply via email to