diff --git a/include/etl/span.h b/include/etl/span.h index 7e4ad35a..db88f360 100644 --- a/include/etl/span.h +++ b/include/etl/span.h @@ -458,6 +458,16 @@ namespace etl : etl::span(pbegin + offset, pbegin + offset + count); } + //************************************************************************* + /// Moves the pointer to the first element of the span further by a specified number of elements. + ///\tparam elements Number of elements to move forward + //************************************************************************* + void advance(size_t elements) ETL_NOEXCEPT + { + elements = etl::min(elements, size()); + pbegin += elements; + } + //************************************************************************* /// Reinterpret the span as a span with different element type. //************************************************************************* @@ -467,7 +477,7 @@ namespace etl ETL_ASSERT(etl::is_aligned::value>(pbegin), ETL_ERROR(span_alignment_exception)); return etl::span(reinterpret_cast(pbegin), - Extent * sizeof(element_type) / sizeof(TNew)); + Extent * sizeof(element_type) / sizeof(TNew)); } private: @@ -875,7 +885,7 @@ namespace etl ETL_ASSERT(etl::is_aligned::value>(pbegin), ETL_ERROR(span_alignment_exception)); return etl::span(reinterpret_cast(pbegin), - (pend - pbegin) * sizeof(element_type) / sizeof(TNew)); + (pend - pbegin) * sizeof(element_type) / sizeof(TNew)); } private: