diff --git a/icu4c/source/common/unicode/utfiterator.h b/icu4c/source/common/unicode/utfiterator.h index 3dae0637d9c4..7cc7982f5c19 100644 --- a/icu4c/source/common/unicode/utfiterator.h +++ b/icu4c/source/common/unicode/utfiterator.h @@ -12,6 +12,9 @@ #if U_SHOW_CPLUSPLUS_API || U_SHOW_CPLUSPLUS_HEADER_API || !defined(UTYPES_H) #include +#if __has_include() +#include +#endif #if defined(__cpp_lib_ranges) #include #endif @@ -1749,6 +1752,9 @@ auto utfIterator(UnitIter p) { * @see utfStringCodePoints */ template +#if defined(__cpp_lib_ranges) + requires std::ranges::range +#endif class UTFStringCodePoints { static_assert(sizeof(CP32) == 4, "CP32 must be a 32-bit type to hold a code point"); public: @@ -2467,6 +2473,9 @@ auto unsafeUTFIterator(UnitIter iter) { * @see unsafeUTFStringCodePoints */ template +#if defined(__cpp_lib_ranges) + requires std::ranges::range +#endif class UnsafeUTFStringCodePoints { static_assert(sizeof(CP32) == 4, "CP32 must be a 32-bit type to hold a code point"); public: