STL
STL copied to clipboard
`<regex>`: What names can and should `regex_traits::lookup_collatename()` recognize?
The title states this as one question, but it's really two.
First is an actual choice: Should the portable character names in the POSIX standard be recognized and translated bylookup_collatename()?
Cons:
- These aren't actually names for locale-specific collating elements (which are defined in Chapter 7); they are symbolic names of characters for internal use in the POSIX standard.
- TR1 was deliberately changed to not mandate that these are recognized by
lookup_coolatename()(see the end of Section 2 of N1623).
Pro:
- Boost.Regex and the other standard libraries recognize these names as an extension.
- After #5392, these names are the final puzzle piece to make a few more libcxx tests pass.
The second question is a technical issue that I don't have an answer to yet: Can we actually access the set of locale-specific (multi-character) collating elements or recognize them in a reasonable way using some Windows API? Or is there some other reasonable approach to recognize locale-specific collating elements like "ch" in Czech or "dzs" in Hungarian?