<regex>
: Implement collating ranges
#5238
Open
+393
−30
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.
Resolves #5204. Follow-up to #5164 and #5209.
When compiled under
/MD
or/MDd
, the new test cases specific to collating ranges are skipped:/Zc:wchar_t-
because the test will fail due to<locale>
:std::collate<wchar_t>
does not respect collation order when compiled with/MD(d) /Zc:wchar_t-
#5236._ITERATOR_DEBUG_LEVEL
because the stack will be corrupted whenstd::collate<wchar_t>::do_transform()
is called in the linked DLL.Drive-by changes:
_Parser::_Error()
as[[noreturn]]
._Matcher::_Skip()
and_Matcher::_Do_class()
,_STD
qualify calls to some free functions and clean up the control flow that translates the current character and converts it to an unsigned value.