ICU-22954 revert making LocalPointer & Co. header-only #3314
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Making LocalPointer header-only, with a different namespace when compiling internally, turned out to be problematic.
In particular, there are DLL-exported ICU classes that have LocalPointer members, and while the LocalPointer functions are usually inlined, there is a chance that they need to be DLL-exported.
Therefore, I am reverting those parts of PR #3295 “USet C++ iterator return std::u16string; header-only LocalPointer”.
One commit here is a clean revert. One is a partial revert.
I also had to fix the USet header-only iterator unit test because it can no longer use a LocalUSetPointer. It is now using a std::unique_ptr.
Best to review one commit at a time.
Checklist
ALLOW_MANY_COMMITS=true