UnicodeString::tempSubString delete && overloads #3842
+11
−6
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.
Changes
The rvalue overloads for
icu::UnicodeString::tempSubStringandicu::UnicodeString::tempSubStringBetweenare deleted.Justification
Calling
tempSubStringon a rvalue violates the precondition ("[...] requires that the original string not be modified or deleted during the lifetime of the returned substring object."). Therefore disallowing usage like this prevents bugs.A example for the buggy behavior is the following code:
This may lead to output like this:
The above output is from a binary compiled with "Release" mode. When using "Debug" the behavior is correct.
This is tested with https://github.com/unicode-org/icu/releases/download/release-78.2/icu4c-78.2-Ubuntu22.04-x64.tgz.
Jira issue
I am not able to create a new jira issue at all and I'm not able to find a solution for this problem.
TODO: Fill out the checklist below.
Checklist