From d2d17f2dc9a4fc481ab87c605234e245a386b50b Mon Sep 17 00:00:00 2001 From: Markus Scherer Date: Fri, 14 Mar 2025 14:13:27 -0700 Subject: [PATCH] ICU-23004 string_view cp iterator must use pointer --- icu4c/source/common/unicode/utfiter.h | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/icu4c/source/common/unicode/utfiter.h b/icu4c/source/common/unicode/utfiter.h index 37f2aa0e873..ad913eafb4e 100644 --- a/icu4c/source/common/unicode/utfiter.h +++ b/icu4c/source/common/unicode/utfiter.h @@ -1324,13 +1324,15 @@ public: UTFStringCodePoints &operator=(const UTFStringCodePoints &other) = default; /** @draft ICU 78 */ - UTFIterator::iterator> begin() const { - return {s.begin(), s.begin(), s.end()}; + auto begin() const { + const Unit *limit = s.data() + s.length(); + return UTFIterator(s.data(), s.data(), limit); } /** @draft ICU 78 */ - UTFIterator::iterator> end() const { - return {s.begin(), s.end(), s.end()}; + auto end() const { + const Unit *limit = s.data() + s.length(); + return UTFIterator(s.data(), limit, limit); } /** @@ -1866,13 +1868,13 @@ public: UnsafeUTFStringCodePoints &operator=(const UnsafeUTFStringCodePoints &other) = default; /** @draft ICU 78 */ - UnsafeUTFIterator::iterator> begin() const { - return {s.begin()}; + auto begin() const { + return UnsafeUTFIterator(s.data()); } /** @draft ICU 78 */ - UnsafeUTFIterator::iterator> end() const { - return {s.end()}; + auto end() const { + return UnsafeUTFIterator(s.data() + s.length()); } /**