Fix use of deprecated std::char_traits<unsigned short>::length #753
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.
Some versions of clang - particularly the one on MacOS - emitted the following warning when compiling javacpp:
This commit fixes that warning by adding a function JavaCPP_stringLength for strings of unsigned short.
Related Pull Requests & Issues
#748 was added with the same goal of fixing issue, however the concern raised there was that
char16_t
is not available pre-c++11. This PR aims to fix that issue by instead providing a clean implementation in standard C++.If merged, this PR should resolve Issue #710.
Performance Implications
There should be no performance difference for this change versus using
std::chair_traits<unsigned short>::length
, because it appears that compilers do not handlestd::char_traits<unsigned short>::length
as a special case in the way they dostrlen
.See this godbolt link for reference.
Assembly output is identical between the standard library implementation, and the one provided in this commit.
Implementation:
Assembly: