mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-26 02:56:08 +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 ```
3.3 KiB
3.3 KiB
1 | Number | Name | Standard | Assignee | Status | First released version |
---|---|---|---|---|---|---|
2 | `P0645 <https://wg21.link/P0645>`_ | Text Formatting | C++20 | Mark de Wever | |Complete| | 14.0 |
3 | `P1652 <https://wg21.link/P1652>`_ | Printf corner cases in std::format | C++20 | Mark de Wever | |Complete| | 14.0 |
4 | `P1892 <https://wg21.link/P1892>`_ | Extended locale-specific presentation specifiers for std::format | C++20 | Mark de Wever | |Complete| | 14.0 |
5 | `P1868 <https://wg21.link/P1868>`_ | width: clarifying units of width and precision in std::format (Implements the unicode support.) | C++20 | Mark de Wever | |Complete| | 14.0 |
6 | `P2216 <https://wg21.link/P2216>`_ | std::format improvements | C++20 | Mark de Wever | |Complete| | 15.0 |
7 | `P2418 <https://wg21.link/P2418>`__ | Add support for ``std::generator``-like types to ``std::format`` | C++20 | Mark de Wever | |Complete| | 15.0 |
8 | `P2093R14 <https://wg21.link/P2093R14>`__ | Formatted output | C++23 | Mark de Wever | |Complete| | 18.0 |
9 | `P2286R8 <https://wg21.link/P2286R8>`__ | Formatting Ranges | C++23 | Mark de Wever | |Complete| | 16.0 |
10 | `P2508R1 <https://wg21.link/P2508R1>`__ | Exposing ``std::basic-format-string`` | C++23 | Mark de Wever | |Complete| | 15.0 |
11 | `P2585R0 <https://wg21.link/P2585R0>`__ | Improving default container formatting | C++23 | Mark de Wever | |Complete| | 17.0 |
12 | `P2539R4 <https://wg21.link/P2539R4>`__ | Should the output of ``std::print`` to a terminal be synchronized with the underlying stream? | C++23 | Mark de Wever | |Complete| | 18.0 |
13 | `P2713R1 <https://wg21.link/P2713R1>`__ | Escaping improvements in ``std::format`` | C++23 | Mark de Wever | |Complete| | 19.0 |
14 | `P2675R1 <https://wg21.link/P2675R1>`__ | ``format``'s width estimation is too approximate and not forward compatible | C++23 | Mark de Wever | |Complete| | 17.0 |
15 | `P2572R1 <https://wg21.link/P2572R1>`__ | ``std::format`` fill character allowances | C++23 | Mark de Wever | |Complete| | 17.0 |
16 | `P2510R3 <https://wg21.link/P2510R3>`__ | Formatting pointers | C++26 | Mark de Wever | |Complete| | 17.0 |
17 | `P2757R3 <https://wg21.link/P2757R3>`__ | Type-checking format args | C++26 | |||
18 | `P2637R3 <https://wg21.link/P2637R3>`__ | Member ``visit`` | C++26 | Hristo Hristov | |Complete| | 19.0 |
19 | `P2905R2 <https://wg21.link/P2905R2>`__ | Runtime format strings | C++26 DR | Mark de Wever | |Complete| | 18.0 |
20 | `P2918R2 <https://wg21.link/P2918R2>`__ | Runtime format strings II | C++26 | Mark de Wever | |Complete| | 18.0 |
21 | `P2909R4 <https://wg21.link/P2909R4>`__ | Fix formatting of code units as integers (Dude, where’s my ``char``?) | C++26 DR | Mark de Wever | |Complete| | 18.0 |
22 | `P3107R5 <https://wg21.link/P3107R5>`__ | Permit an efficient implementation of ``std::print`` | C++26 DR | Mark de Wever | |In Progress| | |
23 | `P3142R0 <https://wg21.link/P3142R0>`__ | Printing Blank Lines with ``println`` | C++26 DR | Hristo Hristov | |Complete| | 19.0 |
24 | `P2845R8 <https://wg21.link/P2845R8>`__ | Formatting of ``std::filesystem::path`` | C++26 | Mark de Wever | ||
25 | `P1361 <https://wg21.link/P1361>`_ | Integration of chrono with text formatting | C++20 | Mark de Wever | |In Progress| | |
26 | `P2372 <https://wg21.link/P2372>`__ | Fixing locale handling in chrono formatters | C++20 | Mark de Wever | |In Progress| |