Author: sagamusix
Date: Thu Apr 11 20:09:30 2024
New Revision: 20569
URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20569
Log:
[Fix] Backport mpt::span::subspan for previous commit to work.
Modified:
branches/OpenMPT-1.29/common/mptSpan.h
Modified: branches/OpenMPT-1.29/common/mptSpan.h
==============================================================================
--- branches/OpenMPT-1.29/common/mptSpan.h Thu Apr 11 19:57:36 2024 (r20568)
+++ branches/OpenMPT-1.29/common/mptSpan.h Thu Apr 11 20:09:30 2024 (r20569)
@@ -46,6 +46,9 @@
// objects, i.e. equivalent to a (beg,end) or (data,size) tuple.
// Can eventually be replaced without further modifications with a full C++20
// std::span.
+
+inline constexpr std::size_t dynamic_extent = std::numeric_limits<std::size_t>::max();
+
template <typename T>
class span
{
@@ -116,6 +119,8 @@
index_type size() const noexcept { return static_cast<index_type>(std::distance(m_beg, m_end)); }
index_type length() const noexcept { return size(); }
+ span subspan(std::size_t offset, std::size_t count = mpt::dynamic_extent) const { return span(data() + offset, (count == mpt::dynamic_extent) ? (size() - offset) : count); }
+
}; // class span
#endif // C++20
|