[libcxx-commits] [PATCH] D93593: [libc++][format] Add __format_arg_store.
Mark de Wever via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Sun Dec 20 04:36:32 PST 2020
Mordante created this revision.
Mordante added reviewers: EricWF, ldionne, mclow.lists, miscco, curdeius.
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 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 make_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 when there's libc++ support for 128 bit integrals.
Implements parts of:
- P0645 Text Formatting
Completes:
- LWG3371 visit_format_arg and make_format_args are not hidden friends
Note it's possible to make the code more efficient, but for now the focus
is to get a Standard conforming implementation. Improving the QoI will be
done later.
Note the formatting is done with clang-format default settings. Should we
improve these settings or do we prefer to manually adjust the code and
protect it with clang-format: off comments?
Depends on D93166 <https://reviews.llvm.org/D93166> D93414 <https://reviews.llvm.org/D93414>
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D93593
Files:
libcxx/docs/Cxx2aStatusIssuesStatus.csv
libcxx/include/format
libcxx/test/std/utilities/format/format.arguments/format.arg.store/class.pass.cpp
libcxx/test/std/utilities/format/format.arguments/format.arg.store/make_format_args.pass.cpp
libcxx/test/std/utilities/format/format.arguments/format.arg.store/make_wformat_args.pass.cpp
libcxx/test/std/utilities/format/format.arguments/format.arg/ctor.pass.cpp
libcxx/test/std/utilities/format/format.arguments/format.arg/operator_bool.pass.cpp
libcxx/test/std/utilities/format/format.arguments/format.arg/visit_format_arg.pass.cpp
libcxx/test/std/utilities/format/format.arguments/format.args/__size.pass.cpp
libcxx/test/std/utilities/format/format.arguments/format.args/ctor.pass.cpp
libcxx/test/std/utilities/format/format.arguments/format.args/get.pass.cpp
libcxx/test/std/utilities/format/format.arguments/format.args/types.compile.pass.cpp
libcxx/test/std/utilities/format/format.formatter/format.context/advance_to.pass.cpp
libcxx/test/std/utilities/format/format.formatter/format.context/arg.pass.cpp
libcxx/test/std/utilities/format/format.formatter/format.context/ctor.pass.cpp
libcxx/test/std/utilities/format/format.formatter/format.context/locale.pass.cpp
libcxx/test/std/utilities/format/format.formatter/format.context/out.pass.cpp
libcxx/test/std/utilities/format/format.formatter/format.context/types.compile.pass.cpp
libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/check_arg_id.verify.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D93593.312969.patch
Type: text/x-patch
Size: 82963 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20201220/b78a23ef/attachment-0001.bin>
More information about the libcxx-commits
mailing list