[gcc r16-4292] libstdc++: Implement full_extent_t. [PR110352]
Tomasz Kaminski
tkaminsk@gcc.gnu.org
Wed Oct 8 10:36:04 GMT 2025
https://gcc.gnu.org/g:15498d5f96378b019df9f255d3f32f76a44684c4
commit r16-4292-g15498d5f96378b019df9f255d3f32f76a44684c4
Author: Luc Grosheintz <luc.grosheintz@gmail.com>
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 <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 | 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
More information about the Libstdc++-cvs
mailing list