libc++ Format Status¶
Overview¶
This document contains the status of the Format library in libc++. It is used to track both the status of the sub-projects of the Format library and who is assigned to these sub-projects. This is imperative to effective implementation so that work is not duplicated and implementors are not blocked by each other.
If you are interested in contributing to the libc++ Format library, please send a message to the #libcxx channel in the LLVM discord. Please do not start working on any of the assigned items below.
Sub-Projects in the Format library¶
Section | Description | Dependencies | Assignee | Status | First released version | |
---|---|---|---|---|---|---|
P1361 P2372 | Formatting chrono | |||||
[time.syn] | Formatter chrono::duration<Rep, Period> |
Mark de Wever | Complete | Clang 16 | ||
[time.syn] | Formatter chrono::sys_time<Duration> |
Mark de Wever | In Progress | |||
[time.syn] | Formatter chrono::utc_time<Duration> |
A <chrono> implementation |
Not assigned | |||
[time.syn] | Formatter chrono::tai_time<Duration> |
A <chrono> implementation |
Not assigned | |||
[time.syn] | Formatter chrono::gps_time<Duration> |
A <chrono> implementation |
Not assigned | |||
[time.syn] | Formatter chrono::file_time<Duration> |
Not assigned | ||||
[time.syn] | Formatter chrono::local_time<Duration> |
Not assigned | ||||
[time.syn] | Formatter chrono::local-time-format-t<Duration> |
A <chrono> implementation |
Not assigned | |||
[time.syn] | Formatter chrono::day |
Mark de Wever | Complete | Clang 16 | ||
[time.syn] | Formatter chrono::month |
Mark de Wever | Complete | Clang 16 | ||
[time.syn] | Formatter chrono::year |
Mark de Wever | Complete | Clang 16 | ||
[time.syn] | Formatter chrono::weekday |
Mark de Wever | Complete | Clang 16 | ||
[time.syn] | Formatter chrono::weekday_indexed |
Mark de Wever | Complete | Clang 16 | ||
[time.syn] | Formatter chrono::weekday_last |
Mark de Wever | Complete | Clang 16 | ||
[time.syn] | Formatter chrono::month_day |
Mark de Wever | Complete | Clang 16 | ||
[time.syn] | Formatter chrono::month_day_last |
Mark de Wever | Complete | Clang 16 | ||
[time.syn] | Formatter chrono::month_weekday |
Mark de Wever | Complete | Clang 16 | ||
[time.syn] | Formatter chrono::month_weekday_last |
Mark de Wever | Complete | Clang 16 | ||
[time.syn] | Formatter chrono::year_month |
Mark de Wever | Complete | Clang 16 | ||
[time.syn] | Formatter chrono::year_month_day |
Mark de Wever | Complete | Clang 16 | ||
[time.syn] | Formatter chrono::year_month_day_last |
Mark de Wever | Complete | Clang 16 | ||
[time.syn] | Formatter chrono::year_month_weekday |
Mark de Wever | Complete | Clang 16 | ||
[time.syn] | Formatter chrono::year_month_weekday_last |
Mark de Wever | Complete | Clang 16 | ||
[time.syn] | Formatter chrono::hh_mm_ss<duration<Rep, Period>> |
Mark de Wever | Complete | Clang 17 | ||
[time.syn] | Formatter chrono::sys_info |
A <chrono> implementation |
Mark de Wever | |||
[time.syn] | Formatter chrono::local_info |
A <chrono> implementation |
Mark de Wever | |||
[time.syn] | Formatter chrono::zoned_time<Duration, TimeZonePtr> |
A <chrono> implementation |
Mark de Wever | |||
P2286R8 | Formatting ranges | |||||
[format.syn] | Concept formattable |
Mark de Wever | Complete | Clang 16 | ||
[format.string.std] | std-format-spec type debug |
Mark de Wever | Complete | Clang 16 | ||
[format.range] | Formatting for ranges: sequences | Mark de Wever | Complete | Clang 16 | ||
[format.range.fmtmap] | Formatting for ranges: map | Mark de Wever | Complete | Clang 16 | ||
[format.range.fmtset] | Formatting for ranges: set | Mark de Wever | Complete | Clang 16 | ||
[format.range] | Formatting for ranges: container adaptors | Mark de Wever | Complete | Clang 16 | ||
[format.range] | Formatting for ranges: pair and tuple |
Mark de Wever | Complete | Clang 16 | ||
[format.range] | Formatting for ranges: vector<bool> |
Mark de Wever | Complete | Clang 16 | ||
P2585R0 | Improving default container formatting | |||||
[format.range.fmtstr] | Formatting for ranges: strings | Mark de Wever | In Progress | |||
[format.range.fmtstr] | Formatting for ranges: strings | Mark de Wever | In Progress | |||
P2693R1 | Formatting thread::id and stacktrace |
|||||
[thread.thread.id] | Formatting thread::id |
Mark de Wever | In Progress | |||
[stacktrace.format] | Formatting stacktrace |
A <stacktrace> implementation |
Mark de Wever |
Misc. Items and TODOs¶
(Please mark all Format-related TODO comments with the string TODO FMT
, so we
can find them easily.)
Paper and Issue Status¶
Number | Name | Standard | Assignee | Status | First released version |
---|---|---|---|---|---|
P0645 | Text Formatting | C++20 | Mark de Wever | Complete | Clang 14 |
P1652 | Printf corner cases in std::format | C++20 | Mark de Wever | Complete | Clang 14 |
P1892 | Extended locale-specific presentation specifiers for std::format | C++20 | Mark de Wever | Complete | Clang 14 |
P1868 | width: clarifying units of width and precision in std::format (Implements the unicode support.) | C++20 | Mark de Wever | Complete | Clang 14 |
P2216 | std::format improvements | C++20 | Mark de Wever | Complete | Clang 15 |
P2418 | Add support for std::generator -like types to std::format |
C++20 | Mark de Wever | Complete | Clang 15 |
P2093R14 | Formatted output | C++23 | |||
P2286R8 | Formatting Ranges | C++23 | Mark de Wever | Complete | Clang 16 |
P2508R1 | Exposing std::basic-format-string |
C++23 | Mark de Wever | Complete | Clang 15 |
P2585R0 | Improving default container formatting | C++23 | Mark de Wever | In Progress | |
P2539R4 | Should the output of std::print to a terminal be synchronized with the underlying stream? |
C++23 | |||
P2713R1 | Escaping improvements in std::format |
C++23 | Mark de Wever | ||
P2675R1 | format ’s width estimation is too approximate and not forward compatible |
C++23 | Mark de Wever | ||
P2572R1 | std::format fill character allowances |
C++23 | Mark de Wever | In Progress | |
P2693R1 | Formatting thread::id and stacktrace |
C++23 | Mark de Wever | In Progress | |
P1361 | Integration of chrono with text formatting | C++20 | Mark de Wever | In Progress | |
P2372 | Fixing locale handling in chrono formatters | C++20 | Mark de Wever | In Progress | |
P2419R2 | Clarify handling of encodings in localized formatting of chrono types | C++23 | |||