[libcxx-commits] [PATCH] D96664: [libc++][format] Implement formatters.

Mark de Wever via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Sun Feb 14 06:01:23 PST 2021


Mordante created this revision.
Mordante added reviewers: EricWF, ldionne, mclow.lists, miscco, curdeius.
Herald added a subscriber: mgorny.
Mordante requested review of this revision.
Herald added a project: libc++.
Herald added a subscriber: libcxx-commits.
Herald added a reviewer: libc++.

This implements the initial version of the std::formatter class and its
specializations. It also implements the following formatting functions:

- format
- vformat
- format_to
- vformat_to
- format_to_n
- formatted_size

All functions have a char and wchar_t version. The locale overloaded
versions aren't implemented yet. Parsing the format-spec and using the
parsed format-spec hasn't been implemented. The code isn't optimized,
neither for speed, nor for size.

The goal is to have the rudimentary basics working, which can be used as a
basis to improve upon.

Implements parts of:

- P0645 Text Formatting

Depends on D93593 <https://reviews.llvm.org/D93593>


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D96664

Files:
  libcxx/benchmarks/CMakeLists.txt
  libcxx/benchmarks/vformat_to.bench.cpp
  libcxx/docs/ReleaseNotes.rst
  libcxx/include/format
  libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.bool.pass.cpp
  libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.c-array.pass.cpp
  libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.c_string.pass.cpp
  libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.char.pass.cpp
  libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.floating_point.pass.cpp
  libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.signed_integral.pass.cpp
  libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.string.pass.cpp
  libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.unsigned_integral.pass.cpp
  libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/__advance.pass.cpp
  libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/__consume.pass.cpp
  libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/__get_arg_id.pass.cpp
  libcxx/test/std/utilities/format/format.functions/format.locale.pass.cpp
  libcxx/test/std/utilities/format/format.functions/format.pass.cpp
  libcxx/test/std/utilities/format/format.functions/format_to.locale.pass.cpp
  libcxx/test/std/utilities/format/format.functions/format_to.pass.cpp
  libcxx/test/std/utilities/format/format.functions/format_to_n.locale.pass.cpp
  libcxx/test/std/utilities/format/format.functions/format_to_n.pass.cpp
  libcxx/test/std/utilities/format/format.functions/formatted_size.locale.pass.cpp
  libcxx/test/std/utilities/format/format.functions/formatted_size.pass.cpp
  libcxx/test/std/utilities/format/format.functions/vformat.locale.pass.cpp
  libcxx/test/std/utilities/format/format.functions/vformat.pass.cpp
  libcxx/test/std/utilities/format/format.functions/vformat_to.locale.pass.cpp
  libcxx/test/std/utilities/format/format.functions/vformat_to.pass.cpp
  libcxx/test/support/make_string.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D96664.323615.patch
Type: text/x-patch
Size: 132498 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20210214/b56e6c23/attachment-0001.bin>


More information about the libcxx-commits mailing list