Mark de Wever 0922ce56f4 [libc++][format] Add __format_arg_store.
This implements the struct `__format_arg_store` and its dependencies:
* the class basic_format_arg,
* the class basic_format_args,
* the class basic_format_context,
* the function make_format_args,
* the function wmake_format_args,
* the function visit_format_arg,
* several Standard required typedefs.

The following parts will be implemented in a later patch:

* the child class `basic_format_arg::handle`,
* the function `basic_format_arg::basic_format_arg(const T* p)`.

The following extension has been implemented:
* the class basic_format_arg supports `__[u]int128_t` on platform where libc++ supports 128 bit integrals.

Implements parts of:
* P0645 Text Formatting

Completes:
* LWG3371 visit_format_arg and make_format_args are not hidden friends
* LWG3542 basic_format_arg mishandles basic_string_view with custom traits

Note https://mordante.github.io/blog/2021/06/05/format.html gives a bit more information about the goals and non-goals of this initial patch series.

Reviewed By: #libc, ldionne, vitaut

Differential Revision: https://reviews.llvm.org/D103357
2021-09-01 19:45:02 +02:00

50 lines
1.1 KiB
ReStructuredText

.. format-status:
================================
libc++ Format Status
================================
.. include:: ../Helpers/Styles.rst
.. contents::
:local:
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
==================================
.. csv-table::
:file: FormatPaper.csv
:header-rows: 1
:widths: auto
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
======================
.. csv-table::
:file: FormatIssues.csv
:header-rows: 1
:widths: auto