Dear ICU team & users,
I would like to propose the following API for:
ICU 77
In ICU 76, we added
C++ header-only APIs. However, as the bug report ticket above shows, we (mostly I) didn't quite get it right, and we didn't have a good way to test these properly. Sorry!
In terms of API, a header-only API cannot use, and especially cannot return, a non-header-only, DLL-exported ICU C++ API.
Therefore, I am proposing that we change the new-in-76 USetElementIterator from returning an icu::UnicodeString to returning a std::u16string.
Since this is the main functionality of that class, I am changing USetElementIterator, USetElements, UnicodeSet::begin(), and UnicodeSet::end() from @draft ICU 76 to @draft ICU 77.
And this time, I figured out a way to change our C++ unit test framework so that we can write tests that do not rely on DLL-exported ICU C++ API -- and moved the USet C++ iterator test code to do so. Now it works, and we can keep it working.
Sincerely,
markus