[libcxx-commits] [libcxx] [libc++] Use using declarations to pull in functions from the numeric_limits base class (PR #160661)

Nikolas Klauser via libcxx-commits libcxx-commits at lists.llvm.org
Thu Sep 25 01:27:40 PDT 2025


https://github.com/philnik777 created https://github.com/llvm/llvm-project/pull/160661

None

>From 9b74b94d5ba6d8d96ad0db4f7db1efddd10e3d2b Mon Sep 17 00:00:00 2001
From: Nikolas Klauser <nikolasklauser at berlin.de>
Date: Thu, 25 Sep 2025 10:24:13 +0200
Subject: [PATCH] [libc++] Use using declarations to pull in functions from the
 numeric_limits base class

---
 libcxx/include/limits | 30 +++++++++---------------------
 1 file changed, 9 insertions(+), 21 deletions(-)

diff --git a/libcxx/include/limits b/libcxx/include/limits
index e8581cf9c321d..6a93b770f68b0 100644
--- a/libcxx/include/limits
+++ b/libcxx/include/limits
@@ -455,9 +455,9 @@ class numeric_limits : private __libcpp_numeric_limits<_Tp> {
 
 public:
   static inline _LIBCPP_CONSTEXPR const bool is_specialized = __base::is_specialized;
-  [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI static _LIBCPP_CONSTEXPR type min() _NOEXCEPT { return __base::min(); }
-  [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI static _LIBCPP_CONSTEXPR type max() _NOEXCEPT { return __base::max(); }
-  [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI static _LIBCPP_CONSTEXPR type lowest() _NOEXCEPT { return __base::lowest(); }
+  using __base::lowest;
+  using __base::max;
+  using __base::min;
 
   static inline _LIBCPP_CONSTEXPR const int digits       = __base::digits;
   static inline _LIBCPP_CONSTEXPR const int digits10     = __base::digits10;
@@ -466,12 +466,8 @@ public:
   static inline _LIBCPP_CONSTEXPR const bool is_integer  = __base::is_integer;
   static inline _LIBCPP_CONSTEXPR const bool is_exact    = __base::is_exact;
   static inline _LIBCPP_CONSTEXPR const int radix        = __base::radix;
-  [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI static _LIBCPP_CONSTEXPR type epsilon() _NOEXCEPT {
-    return __base::epsilon();
-  }
-  [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI static _LIBCPP_CONSTEXPR type round_error() _NOEXCEPT {
-    return __base::round_error();
-  }
+  using __base::epsilon;
+  using __base::round_error;
 
   static inline _LIBCPP_CONSTEXPR const int min_exponent   = __base::min_exponent;
   static inline _LIBCPP_CONSTEXPR const int min_exponent10 = __base::min_exponent10;
@@ -485,18 +481,10 @@ public:
   static inline _LIBCPP_DEPRECATED_IN_CXX23 _LIBCPP_CONSTEXPR const float_denorm_style has_denorm = __base::has_denorm;
   static inline _LIBCPP_DEPRECATED_IN_CXX23 _LIBCPP_CONSTEXPR const bool has_denorm_loss = __base::has_denorm_loss;
   _LIBCPP_SUPPRESS_DEPRECATED_POP
-  [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI static _LIBCPP_CONSTEXPR type infinity() _NOEXCEPT {
-    return __base::infinity();
-  }
-  [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI static _LIBCPP_CONSTEXPR type quiet_NaN() _NOEXCEPT {
-    return __base::quiet_NaN();
-  }
-  [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {
-    return __base::signaling_NaN();
-  }
-  [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {
-    return __base::denorm_min();
-  }
+  using __base::denorm_min;
+  using __base::infinity;
+  using __base::quiet_NaN;
+  using __base::signaling_NaN;
 
   static inline _LIBCPP_CONSTEXPR const bool is_iec559  = __base::is_iec559;
   static inline _LIBCPP_CONSTEXPR const bool is_bounded = __base::is_bounded;



More information about the libcxx-commits mailing list