Skip to content

Commit

Permalink
[libc++][format] Use granularized charconv.
Browse files Browse the repository at this point in the history
This reduces the number of transitive includes when using format.

Reviewed By: #libc, ldionne

Differential Revision: https://reviews.llvm.org/D146240
  • Loading branch information
mordante committed Apr 7, 2023
1 parent 92fc93e commit 57e20ca
Show file tree
Hide file tree
Showing 10 changed files with 23 additions and 10 deletions.
7 changes: 6 additions & 1 deletion libcxx/include/__format/formatter_floating_point.h
Expand Up @@ -16,9 +16,13 @@
#include <__algorithm/min.h>
#include <__algorithm/rotate.h>
#include <__algorithm/transform.h>
#include <__charconv/chars_format.h>
#include <__charconv/to_chars_floating_point.h>
#include <__charconv/to_chars_result.h>
#include <__concepts/arithmetic.h>
#include <__concepts/same_as.h>
#include <__config>
#include <__errc>
#include <__format/concepts.h>
#include <__format/format_parse_context.h>
#include <__format/formatter.h>
Expand All @@ -29,7 +33,8 @@
#include <__type_traits/conditional.h>
#include <__utility/move.h>
#include <__utility/unreachable.h>
#include <charconv>
#include <cmath>
#include <cstddef>

#ifndef _LIBCPP_HAS_NO_LOCALIZATION
# include <locale>
Expand Down
5 changes: 4 additions & 1 deletion libcxx/include/__format/formatter_integral.h
Expand Up @@ -10,17 +10,20 @@
#ifndef _LIBCPP___FORMAT_FORMATTER_INTEGRAL_H
#define _LIBCPP___FORMAT_FORMATTER_INTEGRAL_H

#include <__charconv/to_chars_integral.h>
#include <__charconv/to_chars_result.h>
#include <__charconv/traits.h>
#include <__concepts/arithmetic.h>
#include <__concepts/same_as.h>
#include <__config>
#include <__errc>
#include <__format/concepts.h>
#include <__format/format_error.h>
#include <__format/formatter_output.h>
#include <__format/parser_std_format_spec.h>
#include <__type_traits/make_unsigned.h>
#include <__utility/unreachable.h>
#include <array>
#include <charconv>
#include <limits>
#include <string>
#include <string_view>
Expand Down
4 changes: 3 additions & 1 deletion libcxx/include/__format/formatter_output.h
Expand Up @@ -14,9 +14,12 @@
#include <__algorithm/ranges_fill_n.h>
#include <__algorithm/ranges_for_each.h>
#include <__algorithm/ranges_transform.h>
#include <__charconv/to_chars_integral.h>
#include <__charconv/to_chars_result.h>
#include <__chrono/statically_widen.h>
#include <__concepts/same_as.h>
#include <__config>
#include <__errc>
#include <__format/buffer.h>
#include <__format/concepts.h>
#include <__format/escaped_output_table.h>
Expand All @@ -29,7 +32,6 @@
#include <__type_traits/make_unsigned.h>
#include <__utility/move.h>
#include <__utility/unreachable.h>
#include <charconv>
#include <cstddef>
#include <string>
#include <string_view>
Expand Down
4 changes: 4 additions & 0 deletions libcxx/include/chrono
Expand Up @@ -797,4 +797,8 @@ constexpr chrono::year operator ""y(unsigned lo
# include <cstring>
#endif

#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER == 20
# include <charconv>
#endif

#endif // _LIBCPP_CHRONO
2 changes: 1 addition & 1 deletion libcxx/test/libcxx/transitive_includes/cxx03.csv
Expand Up @@ -317,7 +317,7 @@ filesystem system_error
filesystem type_traits
filesystem version
format array
format charconv
format cmath
format cstddef
format cstdint
format cstdlib
Expand Down
2 changes: 1 addition & 1 deletion libcxx/test/libcxx/transitive_includes/cxx11.csv
Expand Up @@ -317,7 +317,7 @@ filesystem system_error
filesystem type_traits
filesystem version
format array
format charconv
format cmath
format cstddef
format cstdint
format cstdlib
Expand Down
2 changes: 1 addition & 1 deletion libcxx/test/libcxx/transitive_includes/cxx14.csv
Expand Up @@ -319,7 +319,7 @@ filesystem system_error
filesystem type_traits
filesystem version
format array
format charconv
format cmath
format cstddef
format cstdint
format cstdlib
Expand Down
2 changes: 1 addition & 1 deletion libcxx/test/libcxx/transitive_includes/cxx17.csv
Expand Up @@ -319,7 +319,7 @@ filesystem system_error
filesystem type_traits
filesystem version
format array
format charconv
format cmath
format cstddef
format cstdint
format cstdlib
Expand Down
2 changes: 1 addition & 1 deletion libcxx/test/libcxx/transitive_includes/cxx20.csv
Expand Up @@ -326,7 +326,7 @@ filesystem system_error
filesystem type_traits
filesystem version
format array
format charconv
format cmath
format cstddef
format cstdint
format cstdlib
Expand Down
3 changes: 1 addition & 2 deletions libcxx/test/libcxx/transitive_includes/cxx2b.csv
Expand Up @@ -68,7 +68,6 @@ charconv cstdlib
charconv initializer_list
charconv limits
chrono array
chrono charconv
chrono cmath
chrono compare
chrono cstddef
Expand Down Expand Up @@ -227,7 +226,7 @@ filesystem string_view
filesystem system_error
filesystem version
format array
format charconv
format cmath
format cstddef
format cstdint
format cstdlib
Expand Down

0 comments on commit 57e20ca

Please sign in to comment.