libc++ Format Status¶
Overview¶
This document contains the status of the C++20 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 |
Patch |
Status |
First released version |
---|---|---|---|---|---|---|
Fix integral conformance |
Mark de Wever |
Complete |
Clang 13 |
|||
Add floating-point conversion |
Mark de Wever (Code provided by Stephan T. Lavavej of Microsoft) |
Complete |
Clang 14 |
|||
Class format_error |
Mark de Wever |
Complete |
Clang 13 |
|||
Class template basic_format_parse_context |
Mark de Wever |
Complete |
Clang 13 |
|||
Class template basic_format_context |
Mark de Wever |
Complete |
Clang 14 |
|||
Class template basic_format_args |
Mark de Wever |
Complete |
Clang 14 |
|||
Class template basic_format_arg |
Mark de Wever |
Complete |
Clang 14 |
|||
Class template basic_format_arg - handle |
Mark de Wever |
Complete |
Clang 14 |
|||
Class template basic_format_arg - pointers |
Mark de Wever |
Complete |
Clang 14 |
|||
Class template format-arg-store |
Mark de Wever |
Complete |
Clang 14 |
|||
Formatter specializations - character types |
Mark de Wever |
Complete |
Clang 14 |
|||
Formatter specializations - string types |
Mark de Wever |
Complete |
Clang 14 |
|||
Formatter specializations - boolean type |
Mark de Wever |
Complete |
Clang 14 |
|||
Formatter specializations - integral types |
Mark de Wever |
Complete |
Clang 14 |
|||
Formatter specializations - floating-point types |
Mark de Wever |
Complete |
Clang 14 |
|||
Formatter specializations - pointer types |
Mark de Wever |
Complete |
Clang 14 |
|||
Standard format specifiers - character types |
Mark de Wever |
Complete |
Clang 14 |
|||
Standard format specifiers - string types |
Mark de Wever |
Complete |
Clang 14 |
|||
Standard format specifiers - boolean type |
Mark de Wever |
Complete |
Clang 14 |
|||
Standard format specifiers - integral types |
Mark de Wever |
Complete |
Clang 14 |
|||
Standard format specifiers - floating-point types |
Mark de Wever |
Complete |
Clang 14 |
|||
Standard format specifiers - pointer types |
Mark de Wever |
Complete |
Clang 14 |
|||
Format functions - format(string_view fmt, const Args&… args); |
Mark de Wever |
Complete |
Clang 14 |
|||
Format functions - format(wstring_view fmt, const Args&… args); |
Mark de Wever |
Complete |
Clang 14 |
|||
Format functions - format(const locale& loc, string_view fmt, const Args&… args); |
Mark de Wever |
Complete |
Clang 14 |
|||
Format functions - format(const locale& loc, wstring_view fmt, const Args&… args); |
Mark de Wever |
Complete |
Clang 14 |
|||
Format functions - vformat(string_view fmt, format_args args); |
Mark de Wever |
Complete |
Clang 14 |
|||
Format functions - vformat(wstring_view fmt, wformat_args args); |
Mark de Wever |
Complete |
Clang 14 |
|||
Format functions - vformat(const locale& loc, string_view fmt, format_args args); |
Mark de Wever |
Complete |
Clang 14 |
|||
Format functions - vformat(const locale& loc, wstring_view fmt, wformat_args args); |
Mark de Wever |
Complete |
Clang 14 |
|||
Format functions - format_to(Out out, wstring_view fmt, const Args&… args); |
Mark de Wever |
Complete |
Clang 14 |
|||
Format functions - format_to(Out out, const locale& loc, wstring_view fmt, const Args&… args); |
Mark de Wever |
Complete |
Clang 14 |
|||
Format functions - vformat_to(Out out, string_view fmt, format_args_t<type_identity_t<Out>, char> args); |
Mark de Wever |
Complete |
Clang 14 |
|||
Format functions - vformat_to(Out out, wstring_view fmt, format_args_t<type_identity_t<Out>, char> args); |
Mark de Wever |
Complete |
Clang 14 |
|||
Format functions - vformat_to(Out out, const locale& loc, string_view fmt, format_args_t<type_identity_t<Out>, char> args); |
Mark de Wever |
Complete |
Clang 14 |
|||
Format functions - vformat_to(Out out, const locale& loc, wstring_view fmt,format_args_t<type_identity_t<Out>, wchar_t> args); |
Mark de Wever |
Complete |
Clang 14 |
|||
Format functions - format_to_n(Out out, iter_difference_t<Out> n, string_view fmt, const Args&… args); |
Mark de Wever |
Complete |
Clang 14 |
|||
Format functions - format_to_n(Out out, iter_difference_t<Out> n, wstring_view fmt, const Args&… args); |
Mark de Wever |
Complete |
Clang 14 |
|||
Format functions - format_to_n_result<Out> format_to_n(Out out, iter_difference_t<Out> n, const locale& loc, string_view fmt, const Args&… args); |
Mark de Wever |
Complete |
Clang 14 |
|||
Format functions - format_to_n_result<Out> format_to_n(Out out, iter_difference_t<Out> n, const locale& loc, wstring_view fmt, const Args&… args); |
Mark de Wever |
Complete |
Clang 14 |
|||
Format functions - formatted_size(string_view fmt, const Args&… args); |
Mark de Wever |
Complete |
Clang 14 |
|||
Format functions - formatted_size(wstring_view fmt, const Args&… args); |
Mark de Wever |
Complete |
Clang 14 |
|||
Format functions - formatted_size(const locale& loc, string_view fmt, const Args&… args); |
Mark de Wever |
Complete |
Clang 14 |
|||
Format functions - formatted_size(const locale& loc, wstring_view fmt, const Args&… args); |
Mark de Wever |
Complete |
Clang 14 |
|||
Format functions - Improve performance format_to_n |
Mark de Wever |
Review |
||||
Format functions - Improve performance formatted size |
Mark de Wever |
Review |
||||
P2216 - Compile-time checks |
Mark de Wever |
In Progress |
||||
P2216 - Binary size |
Mark de Wever |
Complete |
Clang 14 |
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 |
Assignee |
Patch |
Status |
First released version |
---|---|---|---|---|---|
Text Formatting |
Mark de Wever |
Complete |
Clang 14 |
||
Printf corner cases in std::format |
Mark de Wever |
Complete |
Clang 14 |
||
Extended locale-specific presentation specifiers for std::format |
Mark de Wever |
Complete |
Clang 14 |
||
width: clarifying units of width and precision in std::format (Implements the unicode support.) |
Mark de Wever |
Complete |
Clang 14 |
||
std::format improvements |
Mark de Wever |
In Progress |
|||
Add support for |
Mark de Wever |
In Progress |
|||
Integration of chrono with text formatting |
Not Started |
||||
Fixing locale handling in chrono formatters |
Not Started |