From: <sv...@op...> - 2024-04-11 18:09:42
|
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 |