check for dynamic_extent

This commit is contained in:
Werner Henze 2025-01-03 16:46:58 +01:00 committed by Werner Henze
parent e8fa8b189d
commit e31f8d76e5

View File

@ -582,7 +582,7 @@ public:
template <std::size_t Count>
constexpr span<element_type, Count> first() const noexcept
{
static_assert(Count <= Extent,
static_assert(Extent == dynamic_extent || Count <= Extent,
"first() cannot extract more elements from a span than it contains.");
Expects(Count <= size());
return span<element_type, Count>{data(), Count};
@ -594,7 +594,7 @@ public:
// clang-format on
constexpr span<element_type, Count> last() const noexcept
{
static_assert(Count <= Extent,
static_assert(Extent == dynamic_extent || Count <= Extent,
"last() cannot extract more elements from a span than it contains.");
Expects(Count <= size());
return span<element_type, Count>{data() + (size() - Count), Count};
@ -607,7 +607,8 @@ public:
constexpr auto subspan() const noexcept ->
typename details::calculate_subspan_type<ElementType, Extent, Offset, Count>::type
{
static_assert(Extent >= Offset && (Count == dynamic_extent || Count <= Extent - Offset),
static_assert(Extent == dynamic_extent || (Extent >= Offset && (Count == dynamic_extent ||
Count <= Extent - Offset)),
"subspan() cannot extract more elements from a span than it contains.");
Expects((size() >= Offset) && (Count == dynamic_extent || (Count <= size() - Offset)));
using type =