[libc++][format] Adds formatter floating-point.
authorMark de Wever <koraq@xs4all.nl>
Mon, 14 Dec 2020 16:39:15 +0000 (17:39 +0100)
committerMark de Wever <koraq@xs4all.nl>
Mon, 24 Jan 2022 17:12:24 +0000 (18:12 +0100)
commitdb2944e34b16387bf4326ddfd2a8c420594572f4
tree2d943a6ed3d542206d2ea697cb4d29e1cf4b27e2
parent50999e82e8844615b1ae53edb9d56cdcace91b04
[libc++][format] Adds formatter floating-point.

This properly implements the formatter for floating-point types.

Completes:
- P1652R1 Printf corner cases in std::format
- LWG 3250 std::format: # (alternate form) for NaN and inf
- LWG 3243 std::format and negative zeroes

Implements parts of:
- P0645 Text Formatting

Reviewed By: #libc, ldionne, vitaut

Differential Revision: https://reviews.llvm.org/D114001
15 files changed:
libcxx/benchmarks/formatter_float.bench.cpp [new file with mode: 0644]
libcxx/docs/Status/Cxx20Issues.csv
libcxx/docs/Status/Cxx20Papers.csv
libcxx/include/CMakeLists.txt
libcxx/include/__format/formatter.h
libcxx/include/__format/formatter_floating_point.h [new file with mode: 0644]
libcxx/include/__format/formatter_integral.h
libcxx/include/__format/parser_std_format_spec.h
libcxx/include/format
libcxx/include/module.modulemap
libcxx/test/libcxx/diagnostics/detail.headers/format/formatter_floating_point.module.verify.cpp [new file with mode: 0644]
libcxx/test/libcxx/utilities/format/format.string/format.string.std/std_format_spec_floating_point.pass.cpp [new file with mode: 0644]
libcxx/test/std/utilities/format/format.formatter/format.context/format.formatter.spec/formatter.floating_point.pass.cpp
libcxx/test/std/utilities/format/format.functions/format_tests.h
libcxx/test/std/utilities/format/format.functions/locale-specific_form.pass.cpp