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

In Progress

[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

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

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