[libcxx-commits] [libcxx] [libc++] Avoid template instantiations in the duration aliases (PR #178182)
Nikolas Klauser via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Jan 29 01:13:20 PST 2026
https://github.com/philnik777 updated https://github.com/llvm/llvm-project/pull/178182
>From 2484d9ddaa17f3fc094d1ff1e2fa24581285d7b5 Mon Sep 17 00:00:00 2001
From: Nikolas Klauser <nikolasklauser at berlin.de>
Date: Tue, 27 Jan 2026 12:57:52 +0100
Subject: [PATCH] [libc++] Avoid template instantiations in the duration
aliases
---
libcxx/include/__chrono/duration.h | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/libcxx/include/__chrono/duration.h b/libcxx/include/__chrono/duration.h
index 9313fc797ecd5..b7762bd1203ad 100644
--- a/libcxx/include/__chrono/duration.h
+++ b/libcxx/include/__chrono/duration.h
@@ -291,13 +291,13 @@ typedef duration<long long, nano> nanoseconds;
typedef duration<long long, micro> microseconds;
typedef duration<long long, milli> milliseconds;
typedef duration<long long > seconds;
-typedef duration< long, ratio< 60> > minutes;
-typedef duration< long, ratio<3600> > hours;
+typedef duration<long, ratio<60> > minutes;
+typedef duration<long, ratio<60 * 60> > hours;
#if _LIBCPP_STD_VER >= 20
-typedef duration< int, ratio_multiply<ratio<24>, hours::period>> days;
-typedef duration< int, ratio_multiply<ratio<7>, days::period>> weeks;
-typedef duration< int, ratio_multiply<ratio<146097, 400>, days::period>> years;
-typedef duration< int, ratio_divide<years::period, ratio<12>>> months;
+typedef duration<int, ratio<60 * 60 * 24>> days;
+typedef duration<int, ratio<60 * 60 * 24 * 7>> weeks;
+typedef duration<int, ratio<static_cast<int>(365.2425 * 60 * 60 * 24)>> years;
+typedef duration<int, ratio<static_cast<int>(365.2425 * 60 * 60 * 24) / 12>> months;
#endif
// Duration ==
More information about the libcxx-commits
mailing list