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.

Signed-off-by: Luc Grosheintz <[email protected]>
---
 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 4828806d817..00bb9716a9d 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 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
 
-- 
2.50.1

Reply via email to