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

[format.functions]

Format functions - Improve performance format_to_n

Mark de Wever

D110499

Complete

Clang 15

[format.functions]

Format functions - Improve performance formatted size

Mark de Wever

D110498

Complete

Clang 15

[format.functions]

P2216 - Compile-time checks

Mark de Wever

D121530

Complete

Clang 15

[format.functions]

P2216 - Binary size

Mark de Wever

D110494

Complete

Clang 14

[time.syn]

Formatter chrono::duration<Rep, Period>

Mark de Wever

In Progress

[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

In Progress

[time.syn]

Formatter chrono::month

Mark de Wever

In Progress

[time.syn]

Formatter chrono::year

Mark de Wever

In Progress

[time.syn]

Formatter chrono::weekday

Mark de Wever

In Progress

[time.syn]

Formatter chrono::weekday_indexed

Mark de Wever

In Progress

[time.syn]

Formatter chrono::weekday_last

Mark de Wever

In Progress

[time.syn]

Formatter chrono::month_day

Mark de Wever

In Progress

[time.syn]

Formatter chrono::month_day_last

Mark de Wever

In Progress

[time.syn]

Formatter chrono::month_weekday

Mark de Wever

In Progress

[time.syn]

Formatter chrono::month_weekday_last

Mark de Wever

In Progress

[time.syn]

Formatter chrono::year_month

Mark de Wever

In Progress

[time.syn]

Formatter chrono::year_month_day

Mark de Wever

In Progress

[time.syn]

Formatter chrono::year_month_day_last

Mark de Wever

In Progress

[time.syn]

Formatter chrono::year_month_weekday

Mark de Wever

In Progress

[time.syn]

Formatter chrono::year_month_weekday_last

Mark de Wever

In Progress

[time.syn]

Formatter chrono::hh_mm_ss<duration<Rep, Period>>

Mark de Wever

In Progress

[time.syn]

Formatter chrono::sys_info

A <chrono> implementation

Not assigned

[time.syn]

Formatter chrono::local_info

A <chrono> implementation

Not assigned

[time.syn]

Formatter chrono::zoned_time<Duration, TimeZonePtr>

A <chrono> implementation

Not assigned

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

P0645

Text Formatting

Mark de Wever

Complete

Clang 14

P1652

Printf corner cases in std::format

Mark de Wever

D103433, D114001

Complete

Clang 14

P1892

Extended locale-specific presentation specifiers for std::format

Mark de Wever

D103368

Complete

Clang 14

P1868

width: clarifying units of width and precision in std::format (Implements the unicode support.)

Mark de Wever

D103413 D103425 D103670

Complete

Clang 14

P2216

std::format improvements

Mark de Wever

Complete

Clang 15

P2418

Add support for std::generator-like types to std::format

Mark de Wever

D127570

Complete

Clang 15

P2508R1

Exposing std::basic-format-string

C++23

Mark de Wever

Complete

Clang 15

P1361

Integration of chrono with text formatting

Mark de Wever

In Progress

P2372

Fixing locale handling in chrono formatters

Mark de Wever

In Progress