[libcxx-commits] [libcxx] [libc++] Avoid including <cmath> in <format> (PR #186332)
Nikolas Klauser via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Mar 13 01:00:39 PDT 2026
https://github.com/philnik777 created https://github.com/llvm/llvm-project/pull/186332
None
>From 9b022ee5856f967826fe0fb208a49ad22ad4c7b2 Mon Sep 17 00:00:00 2001
From: Nikolas Klauser <nikolasklauser at berlin.de>
Date: Fri, 13 Mar 2026 09:00:17 +0100
Subject: [PATCH] [libc++] Avoid including <cmath> in <format>
---
libcxx/include/__format/formatter_floating_point.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/libcxx/include/__format/formatter_floating_point.h b/libcxx/include/__format/formatter_floating_point.h
index b200bc58baa21..f4de8b927651a 100644
--- a/libcxx/include/__format/formatter_floating_point.h
+++ b/libcxx/include/__format/formatter_floating_point.h
@@ -32,12 +32,12 @@
#include <__format/formatter_output.h>
#include <__format/parser_std_format_spec.h>
#include <__iterator/concepts.h>
+#include <__math/traits.h>
#include <__memory/allocator.h>
#include <__system_error/errc.h>
#include <__type_traits/conditional.h>
#include <__utility/move.h>
#include <__utility/unreachable.h>
-#include <cmath>
#if _LIBCPP_HAS_LOCALIZATION
# include <__locale>
@@ -637,10 +637,10 @@ _LIBCPP_HIDE_FROM_ABI auto __write_using_trailing_zeros(
template <floating_point _Tp, class _CharT, class _FormatContext>
_LIBCPP_HIDE_FROM_ABI typename _FormatContext::iterator
__format_floating_point(_Tp __value, _FormatContext& __ctx, __format_spec::__parsed_specifications<_CharT> __specs) {
- bool __negative = std::signbit(__value);
+ bool __negative = __math::signbit(__value);
- if (!std::isfinite(__value)) [[unlikely]]
- return __formatter::__format_floating_point_non_finite(__ctx.out(), __specs, __negative, std::isnan(__value));
+ if (!__math::isfinite(__value)) [[unlikely]]
+ return __formatter::__format_floating_point_non_finite(__ctx.out(), __specs, __negative, __math::isnan(__value));
// Depending on the std-format-spec string the sign and the value
// might not be outputted together:
More information about the libcxx-commits
mailing list