Mark de Wever
ad76a85954
[libc++][format] Improves escaping. ( #88283 )
...
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
```
2024-04-25 17:16:41 +02:00
..
2024-04-22 22:13:58 +02:00
2024-04-16 10:57:48 -04:00
2024-04-22 22:13:58 +02:00
2024-02-29 10:12:22 -05:00
2024-04-23 19:42:00 +02:00
2024-03-16 12:16:36 +00:00
2024-03-20 09:49:31 +01:00
2024-01-30 08:35:15 -05:00
2024-01-22 18:12:58 -08:00
2024-04-13 18:24:12 +02:00
2024-04-02 13:52:07 +02:00
2024-04-16 10:54:28 -04:00
2024-04-22 22:13:58 +02:00
2024-04-25 17:16:41 +02:00
2024-04-22 22:13:58 +02:00
2024-04-16 20:18:34 +02:00
2023-12-18 14:01:33 -05:00
2024-04-22 22:13:58 +02:00
2024-02-11 19:43:34 +01:00
2024-04-22 22:13:58 +02:00
2024-04-12 19:25:22 +02:00
2024-04-22 22:13:58 +02:00
2024-04-22 22:13:58 +02:00
2024-04-22 22:13:58 +02:00
2024-04-24 17:42:28 +02:00
2024-04-18 07:50:57 -04:00
2024-04-19 18:58:18 +02:00
2024-04-23 10:58:14 -04:00
2024-04-10 20:34:58 +02:00
2024-04-20 11:40:18 +02:00
2024-02-05 12:04:07 -05:00
2024-04-13 13:46:34 +02:00
2024-04-02 13:52:07 +02:00
2024-04-01 08:46:57 +02:00
2024-04-18 06:55:50 +02:00
2024-04-22 22:13:58 +02:00
2023-12-18 14:01:33 -05:00
2024-03-14 19:49:37 +01:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-04-25 09:27:02 -04:00
2024-03-17 20:00:54 +01:00
2024-04-22 22:13:58 +02:00
2024-04-17 13:36:53 -04:00
2024-03-18 08:29:44 +01:00
2024-04-10 20:34:58 +02:00
2023-12-18 14:01:33 -05:00
2024-04-22 22:13:58 +02:00
2024-03-18 08:29:44 +01:00
2023-11-27 10:54:35 -05:00
2023-05-01 13:48:20 -05:00
2024-03-18 08:29:44 +01:00
2023-07-06 17:21:08 +00:00
2023-12-18 14:01:33 -05:00
2024-04-14 15:52:56 +02:00
2024-04-02 13:52:07 +02:00
2024-04-22 22:13:58 +02:00
2024-03-04 18:24:51 -05:00
2024-04-22 22:13:58 +02:00
2024-04-14 15:52:56 +02:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-04-13 13:46:34 +02:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-04-14 15:52:56 +02:00
2024-04-18 17:23:07 +02:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-04-22 08:46:53 -04:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-04-14 15:52:56 +02:00
2024-03-16 15:47:17 +01:00
2024-04-14 15:52:56 +02:00
2024-02-29 10:12:22 -05:00
2024-04-14 15:52:56 +02:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-04-22 22:13:58 +02:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2023-12-18 14:01:33 -05:00
2024-02-29 10:12:22 -05:00
2024-03-18 13:57:07 +01:00
2024-02-29 10:12:22 -05:00
2024-04-22 22:13:58 +02:00
2023-12-18 14:01:33 -05:00
2024-02-29 10:12:22 -05:00
2024-03-18 13:57:07 +01:00
2024-02-29 10:12:22 -05:00
2023-12-18 14:01:33 -05:00
2024-03-03 20:45:17 +01:00
2023-12-18 14:01:33 -05:00
2024-03-29 12:06:09 +01:00
2024-04-22 22:13:58 +02:00
2024-04-06 20:33:41 +08:00
2024-04-09 11:10:20 -04:00
2024-04-22 22:13:58 +02:00
2024-02-29 10:12:22 -05:00
2023-12-18 14:01:33 -05:00
2024-02-29 10:12:22 -05:00
2024-03-12 18:04:14 +01:00
2024-04-16 20:18:34 +02:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-04-12 10:09:05 -04:00
2024-04-16 10:57:48 -04:00
2024-04-22 22:13:58 +02:00
2024-04-22 22:13:58 +02:00
2024-04-05 22:04:07 +03:00
2023-12-18 14:01:33 -05:00
2024-04-22 22:13:58 +02:00
2024-04-22 22:13:58 +02:00
2024-04-12 19:25:22 +02:00
2024-04-14 14:37:51 +03:00
2023-10-29 18:31:37 +01:00
2024-04-22 22:13:58 +02:00
2024-03-16 16:37:35 +01:00
2024-04-22 22:13:58 +02:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-03-18 08:29:44 +01:00
2024-04-06 21:52:52 +03:00
2024-04-06 21:52:52 +03:00
2024-04-22 22:13:58 +02:00
2024-02-29 10:12:22 -05:00
2024-04-23 10:58:14 -04:00
2024-02-29 10:12:22 -05:00
2024-04-22 22:13:58 +02:00
2024-04-22 22:13:58 +02:00
2024-04-16 10:57:48 -04:00
2024-04-22 22:13:58 +02:00
2024-04-02 13:52:07 +02:00
2023-12-06 09:04:06 -05:00
2024-04-12 19:25:22 +02:00
2024-04-20 12:19:23 +02:00
2024-04-22 22:13:58 +02:00
2023-12-18 14:01:33 -05:00
2023-12-18 14:01:33 -05:00
2024-04-11 12:36:56 -04:00
2024-02-29 10:12:22 -05:00
2023-12-18 14:01:33 -05:00
2023-12-18 14:01:33 -05:00
2024-04-22 22:13:58 +02:00
2024-02-29 10:12:22 -05:00
2024-04-25 09:32:35 -04:00
2024-04-22 22:13:58 +02:00
2024-04-22 22:13:58 +02:00
2023-12-18 14:01:33 -05:00
2024-04-04 06:03:00 +03:00
2023-11-08 17:45:06 +01:00
2024-02-29 10:12:22 -05:00
2024-04-02 13:52:07 +02:00
2024-04-02 19:37:31 +02:00
2024-03-18 08:29:44 +01:00
2024-02-29 10:12:22 -05:00
2024-04-03 08:04:43 -04:00
2023-12-18 14:01:33 -05:00
2024-04-22 22:13:58 +02:00
2024-04-22 22:13:58 +02:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-04-25 09:25:46 -04:00
2024-04-22 22:13:58 +02:00
2024-04-09 11:10:20 -04:00
2023-12-18 14:01:33 -05:00
2023-12-18 14:01:33 -05:00