From e31f8d76e5b34be6c70f659da2e78d9675b11b64 Mon Sep 17 00:00:00 2001 From: Werner Henze Date: Fri, 3 Jan 2025 16:46:58 +0100 Subject: [PATCH] check for dynamic_extent --- include/gsl/span | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/include/gsl/span b/include/gsl/span index a71ed95..f307e6e 100644 --- a/include/gsl/span +++ b/include/gsl/span @@ -582,7 +582,7 @@ public: template constexpr span 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{data(), Count}; @@ -594,7 +594,7 @@ public: // clang-format on constexpr span 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{data() + (size() - Count), Count}; @@ -607,7 +607,8 @@ public: constexpr auto subspan() const noexcept -> typename details::calculate_subspan_type::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 =