mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-27 11:46:07 +00:00

The change increments the size of the lookup table considerably. The table has an "upper boundary" check. The removal of the code units with the property Grapheme_Extend=Yes removes the range E0100..E01EF. This breaks the trailing large continuous section in two parts. This will be improved in a followup patch. Implements: - P2713R1 Escaping improvements in std::format - LWG3965 Incorrect example in [format.string.escaped] p3 for formatting of combining characters ``` --------------------------------------------------------- Benchmark Before After --------------------------------------------------------- BM_ascii_escaped<char> 95696 ns 110704 ns BM_unicode_escaped<char> 89311 ns 101371 ns BM_cyrillic_escaped<char> 58633 ns 63329 ns BM_japanese_escaped<char> 44500 ns 41223 ns BM_emoji_escaped<char> 99156 ns 111022 ns BM_ascii_escaped<wchar_t> 92245 ns 112441 ns BM_unicode_escaped<wchar_t> 80970 ns 102776 ns BM_cyrillic_escaped<wchar_t> 51253 ns 58977 ns BM_japanese_escaped<wchar_t> 37252 ns 36885 ns BM_emoji_escaped<wchar_t> 96226 ns 115885 ns ```