llvm-project/libcxx/docs
Mark de Wever 4d8268fbf4 [libc++][format] Improve format-arg-store.
This optimizes the __format_arg_store type to allow a more efficient
storage of the basic_format_args.

It stores the data in two arrays:
- A struct with the tag of the exposition only variant's type and the
  offset of the element in the data array. Since this array only depends
  on the type information it's calculated at compile time and can be
  shared by different instances of this class.
- The arguments converted to the types used in the exposition only
  variant of basic_format_arg. This means the packed data can be
  directly copied to an element of this variant.

The new code uses rvalue reference arguments in preparation for P2418.
The handle class also has some changes to prepare for P2418. The real
changed for P2418 will be done separately, but these parts make it
easier to implement that paper.

Some parts of existing test code are removed since they were no longer
valid after the changes, but new tests have been added.

Implements parts of:
- P2418 Add support for std::generator-like types to std::format

Completes:
- LWG3473 Normative encouragement in non-normative note

Depends on D121138

Reviewed By: #libc, vitaut, Mordante

Differential Revision: https://reviews.llvm.org/D121514
2022-05-18 20:11:36 +02:00
..
DesignDocs [libc++] Correct outdated documentation about __config_site 2022-03-23 13:42:04 -04:00
Helpers [libc++][doc] Use issue labels. 2021-10-15 17:30:33 +02:00
Status [libc++][format] Improve format-arg-store. 2022-05-18 20:11:36 +02:00
AddingNewCIJobs.rst [libc++] Add timeout to BuildKite jobs 2021-08-09 15:31:04 -04:00
BuildingLibcxx.rst [libc++] Overhaul how we select the ABI library 2022-05-13 08:32:09 -04:00
CMakeLists.txt
Contributing.rst [libc++] Remove the __libcpp_version file 2022-03-31 09:34:41 -04:00
FeatureTestMacroTable.rst [libc++][P0943] Add stdatomic.h header. 2022-05-06 09:52:48 -04:00
README.txt [libc++] NFC: Add note about how the libcxx website gets updated 2021-07-05 10:25:33 -04:00
ReleaseNotes.rst [libc++][ranges][NFC] Mark completed issues related to the One Ranges Proposal. 2022-05-14 13:08:51 -07:00
TestingLibcxx.rst [libc++][Docs] Update benchmark doc wrt monorepo 2021-10-02 07:35:32 +05:30
UsingLibcxx.rst [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
conf.py Bump the trunk major version to 15 2022-02-01 23:54:52 -08:00
index.rst [libcxx] [ci] Add a i386 Windows configuration to CI 2022-05-06 10:12:04 +03:00

README.txt

libc++ Documentation
====================

The libc++ documentation is written using the Sphinx documentation generator. It is
currently tested with Sphinx 1.1.3.

To build the documents into html configure libc++ with the following cmake options:

  * -DLLVM_ENABLE_SPHINX=ON
  * -DLIBCXX_INCLUDE_DOCS=ON

After configuring libc++ with these options the make rule `docs-libcxx-html`
should be available.

The documentation in this directory is published at https://libcxx.llvm.org. It is kept up-to-date
by a build bot: https://lab.llvm.org/buildbot/#/builders/publish-sphinx-docs. If you notice that the
documentation is not updating anymore, please contact one of the maintainers.