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>
This commit is contained in:
Luc Grosheintz 2025-10-02 11:27:15 +02:00 committed by Tomasz Kamiński
parent 61061664e8
commit 15498d5f96
2 changed files with 10 additions and 2 deletions

View File

@ -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

View File

@ -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