[libcxx-commits] [libcxx] Use `LIBCPP_STATIC_ASSERT` in chrono test (PR #132566)

via libcxx-commits libcxx-commits at lists.llvm.org
Sat Jun 13 15:15:47 PDT 2026


https://github.com/PaulXiCao updated https://github.com/llvm/llvm-project/pull/132566

>From aa17064756e555ccf13c15b55f33326948f982fc Mon Sep 17 00:00:00 2001
From: Paul <paulxicao7 at gmail.com>
Date: Sat, 22 Mar 2025 22:31:21 +0100
Subject: [PATCH 1/8] get rid off temporary  (maybe_unused)

---
 .../time.clock/time.clock.gps/types.compile.pass.cpp  | 11 +++++------
 .../time.clock/time.clock.tai/types.compile.pass.cpp  | 11 +++++------
 .../time.clock/time.clock.utc/types.compile.pass.cpp  | 11 +++++------
 3 files changed, 15 insertions(+), 18 deletions(-)

diff --git a/libcxx/test/std/time/time.clock/time.clock.gps/types.compile.pass.cpp b/libcxx/test/std/time/time.clock/time.clock.gps/types.compile.pass.cpp
index fea70a304dfdd..707c9221c2332 100644
--- a/libcxx/test/std/time/time.clock/time.clock.gps/types.compile.pass.cpp
+++ b/libcxx/test/std/time/time.clock/time.clock.gps/types.compile.pass.cpp
@@ -37,11 +37,10 @@
 #include "test_macros.h"
 
 // class gps_clock
-using rep                                 = std::chrono::gps_clock::rep;
-using period                              = std::chrono::gps_clock::period;
-using duration                            = std::chrono::gps_clock::duration;
-using time_point                          = std::chrono::gps_clock::time_point;
-[[maybe_unused]] constexpr bool is_steady = std::chrono::gps_clock::is_steady;
+using rep        = std::chrono::gps_clock::rep;
+using period     = std::chrono::gps_clock::period;
+using duration   = std::chrono::gps_clock::duration;
+using time_point = std::chrono::gps_clock::time_point;
 
 // Tests the values. part of them are implementation defined.
 LIBCPP_STATIC_ASSERT(std::same_as<rep, std::chrono::utc_clock::rep>);
@@ -53,7 +52,7 @@ static_assert(std::same_as<period, std::ratio<period::num, period::den>>);
 
 static_assert(std::same_as<duration, std::chrono::duration<rep, period>>);
 static_assert(std::same_as<time_point, std::chrono::time_point<std::chrono::gps_clock>>);
-LIBCPP_STATIC_ASSERT(is_steady == false);
+LIBCPP_STATIC_ASSERT(std::chrono::gps_clock::is_steady == false);
 
 // typedefs
 static_assert(std::same_as<std::chrono::gps_time<int>, std::chrono::time_point<std::chrono::gps_clock, int>>);
diff --git a/libcxx/test/std/time/time.clock/time.clock.tai/types.compile.pass.cpp b/libcxx/test/std/time/time.clock/time.clock.tai/types.compile.pass.cpp
index 6499ecb5fb85e..c0474441e5e79 100644
--- a/libcxx/test/std/time/time.clock/time.clock.tai/types.compile.pass.cpp
+++ b/libcxx/test/std/time/time.clock/time.clock.tai/types.compile.pass.cpp
@@ -37,11 +37,10 @@
 #include "test_macros.h"
 
 // class tai_clock
-using rep                                 = std::chrono::tai_clock::rep;
-using period                              = std::chrono::tai_clock::period;
-using duration                            = std::chrono::tai_clock::duration;
-using time_point                          = std::chrono::tai_clock::time_point;
-[[maybe_unused]] constexpr bool is_steady = std::chrono::tai_clock::is_steady;
+using rep        = std::chrono::tai_clock::rep;
+using period     = std::chrono::tai_clock::period;
+using duration   = std::chrono::tai_clock::duration;
+using time_point = std::chrono::tai_clock::time_point;
 
 // Tests the values. part of them are implementation defined.
 LIBCPP_STATIC_ASSERT(std::same_as<rep, std::chrono::utc_clock::rep>);
@@ -53,7 +52,7 @@ static_assert(std::same_as<period, std::ratio<period::num, period::den>>);
 
 static_assert(std::same_as<duration, std::chrono::duration<rep, period>>);
 static_assert(std::same_as<time_point, std::chrono::time_point<std::chrono::tai_clock>>);
-LIBCPP_STATIC_ASSERT(is_steady == false);
+LIBCPP_STATIC_ASSERT(std::chrono::tai_clock::is_steady == false);
 
 // typedefs
 static_assert(std::same_as<std::chrono::tai_time<int>, std::chrono::time_point<std::chrono::tai_clock, int>>);
diff --git a/libcxx/test/std/time/time.clock/time.clock.utc/types.compile.pass.cpp b/libcxx/test/std/time/time.clock/time.clock.utc/types.compile.pass.cpp
index c69671ba4d2cc..c3d25a4684851 100644
--- a/libcxx/test/std/time/time.clock/time.clock.utc/types.compile.pass.cpp
+++ b/libcxx/test/std/time/time.clock/time.clock.utc/types.compile.pass.cpp
@@ -37,11 +37,10 @@
 #include "test_macros.h"
 
 // class utc_clock
-using rep                                 = std::chrono::utc_clock::rep;
-using period                              = std::chrono::utc_clock::period;
-using duration                            = std::chrono::utc_clock::duration;
-using time_point                          = std::chrono::utc_clock::time_point;
-[[maybe_unused]] constexpr bool is_steady = std::chrono::utc_clock::is_steady;
+using rep        = std::chrono::utc_clock::rep;
+using period     = std::chrono::utc_clock::period;
+using duration   = std::chrono::utc_clock::duration;
+using time_point = std::chrono::utc_clock::time_point;
 
 // Tests the values. Some of them are implementation-defined.
 LIBCPP_STATIC_ASSERT(std::same_as<rep, std::chrono::system_clock::rep>);
@@ -53,7 +52,7 @@ static_assert(std::same_as<period, std::ratio<period::num, period::den>>);
 
 static_assert(std::same_as<duration, std::chrono::duration<rep, period>>);
 static_assert(std::same_as<time_point, std::chrono::time_point<std::chrono::utc_clock>>);
-LIBCPP_STATIC_ASSERT(is_steady == false);
+LIBCPP_STATIC_ASSERT(std::chrono::utc_clock::is_steady == false);
 
 // typedefs
 static_assert(std::same_as<std::chrono::utc_time<int>, std::chrono::time_point<std::chrono::utc_clock, int>>);

>From 11f6d0f8634b5ce3dc4050aefef6bdd154b591f6 Mon Sep 17 00:00:00 2001
From: Paul <paulxicao7 at gmail.com>
Date: Sun, 23 Mar 2025 18:01:21 +0100
Subject: [PATCH 2/8] is_steady: testing type and value

---
 .../std/time/time.clock/time.clock.gps/types.compile.pass.cpp | 4 +++-
 .../std/time/time.clock/time.clock.tai/types.compile.pass.cpp | 4 +++-
 .../std/time/time.clock/time.clock.utc/types.compile.pass.cpp | 4 +++-
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/libcxx/test/std/time/time.clock/time.clock.gps/types.compile.pass.cpp b/libcxx/test/std/time/time.clock/time.clock.gps/types.compile.pass.cpp
index 707c9221c2332..fbd2da885f8b4 100644
--- a/libcxx/test/std/time/time.clock/time.clock.gps/types.compile.pass.cpp
+++ b/libcxx/test/std/time/time.clock/time.clock.gps/types.compile.pass.cpp
@@ -42,6 +42,8 @@ using period     = std::chrono::gps_clock::period;
 using duration   = std::chrono::gps_clock::duration;
 using time_point = std::chrono::gps_clock::time_point;
 
+[[maybe_unused]] constexpr std::same_as<const bool> decltype(auto) is_steady = std::chrono::gps_clock::is_steady;
+
 // Tests the values. part of them are implementation defined.
 LIBCPP_STATIC_ASSERT(std::same_as<rep, std::chrono::utc_clock::rep>);
 static_assert(std::is_arithmetic_v<rep>);
@@ -52,7 +54,7 @@ static_assert(std::same_as<period, std::ratio<period::num, period::den>>);
 
 static_assert(std::same_as<duration, std::chrono::duration<rep, period>>);
 static_assert(std::same_as<time_point, std::chrono::time_point<std::chrono::gps_clock>>);
-LIBCPP_STATIC_ASSERT(std::chrono::gps_clock::is_steady == false);
+LIBCPP_STATIC_ASSERT(is_steady == false);
 
 // typedefs
 static_assert(std::same_as<std::chrono::gps_time<int>, std::chrono::time_point<std::chrono::gps_clock, int>>);
diff --git a/libcxx/test/std/time/time.clock/time.clock.tai/types.compile.pass.cpp b/libcxx/test/std/time/time.clock/time.clock.tai/types.compile.pass.cpp
index c0474441e5e79..66c8653e2bb64 100644
--- a/libcxx/test/std/time/time.clock/time.clock.tai/types.compile.pass.cpp
+++ b/libcxx/test/std/time/time.clock/time.clock.tai/types.compile.pass.cpp
@@ -42,6 +42,8 @@ using period     = std::chrono::tai_clock::period;
 using duration   = std::chrono::tai_clock::duration;
 using time_point = std::chrono::tai_clock::time_point;
 
+[[maybe_unused]] constexpr std::same_as<const bool> decltype(auto) is_steady = std::chrono::tai_clock::is_steady;
+
 // Tests the values. part of them are implementation defined.
 LIBCPP_STATIC_ASSERT(std::same_as<rep, std::chrono::utc_clock::rep>);
 static_assert(std::is_arithmetic_v<rep>);
@@ -52,7 +54,7 @@ static_assert(std::same_as<period, std::ratio<period::num, period::den>>);
 
 static_assert(std::same_as<duration, std::chrono::duration<rep, period>>);
 static_assert(std::same_as<time_point, std::chrono::time_point<std::chrono::tai_clock>>);
-LIBCPP_STATIC_ASSERT(std::chrono::tai_clock::is_steady == false);
+LIBCPP_STATIC_ASSERT(is_steady == false);
 
 // typedefs
 static_assert(std::same_as<std::chrono::tai_time<int>, std::chrono::time_point<std::chrono::tai_clock, int>>);
diff --git a/libcxx/test/std/time/time.clock/time.clock.utc/types.compile.pass.cpp b/libcxx/test/std/time/time.clock/time.clock.utc/types.compile.pass.cpp
index c3d25a4684851..a1b0801f502cb 100644
--- a/libcxx/test/std/time/time.clock/time.clock.utc/types.compile.pass.cpp
+++ b/libcxx/test/std/time/time.clock/time.clock.utc/types.compile.pass.cpp
@@ -42,6 +42,8 @@ using period     = std::chrono::utc_clock::period;
 using duration   = std::chrono::utc_clock::duration;
 using time_point = std::chrono::utc_clock::time_point;
 
+[[maybe_unused]] constexpr std::same_as<const bool> decltype(auto) is_steady = std::chrono::utc_clock::is_steady;
+
 // Tests the values. Some of them are implementation-defined.
 LIBCPP_STATIC_ASSERT(std::same_as<rep, std::chrono::system_clock::rep>);
 static_assert(std::is_arithmetic_v<rep>);
@@ -52,7 +54,7 @@ static_assert(std::same_as<period, std::ratio<period::num, period::den>>);
 
 static_assert(std::same_as<duration, std::chrono::duration<rep, period>>);
 static_assert(std::same_as<time_point, std::chrono::time_point<std::chrono::utc_clock>>);
-LIBCPP_STATIC_ASSERT(std::chrono::utc_clock::is_steady == false);
+LIBCPP_STATIC_ASSERT(is_steady == false);
 
 // typedefs
 static_assert(std::same_as<std::chrono::utc_time<int>, std::chrono::time_point<std::chrono::utc_clock, int>>);

>From 8ad3866192f2bba8c9527440ca1d33e20092f776 Mon Sep 17 00:00:00 2001
From: Paul <paulxicao7 at gmail.com>
Date: Sun, 23 Mar 2025 18:25:30 +0100
Subject: [PATCH 3/8] testing older clock's is_steady type (and optionally
 value)

---
 .../std/time/time.clock/time.clock.hires/consistency.pass.cpp   | 2 +-
 .../std/time/time.clock/time.clock.steady/consistency.pass.cpp  | 2 +-
 .../std/time/time.clock/time.clock.system/consistency.pass.cpp  | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/libcxx/test/std/time/time.clock/time.clock.hires/consistency.pass.cpp b/libcxx/test/std/time/time.clock/time.clock.hires/consistency.pass.cpp
index ad1bce8963074..6765ffb54b9b2 100644
--- a/libcxx/test/std/time/time.clock/time.clock.hires/consistency.pass.cpp
+++ b/libcxx/test/std/time/time.clock/time.clock.hires/consistency.pass.cpp
@@ -30,7 +30,7 @@ int main(int, char**)
     static_assert((std::is_same<C::rep, C::duration::rep>::value), "");
     static_assert((std::is_same<C::period, C::duration::period>::value), "");
     static_assert((std::is_same<C::duration, C::time_point::duration>::value), "");
-    static_assert(C::is_steady || !C::is_steady, "");
+    static_assert(std::is_same<decltype(C::is_steady), const bool>::value, "");
     test(std::chrono::high_resolution_clock::is_steady);
 
   return 0;
diff --git a/libcxx/test/std/time/time.clock/time.clock.steady/consistency.pass.cpp b/libcxx/test/std/time/time.clock/time.clock.steady/consistency.pass.cpp
index fa0ff4f50db83..fcb0df01a331d 100644
--- a/libcxx/test/std/time/time.clock/time.clock.steady/consistency.pass.cpp
+++ b/libcxx/test/std/time/time.clock/time.clock.steady/consistency.pass.cpp
@@ -32,7 +32,7 @@ int main(int, char**)
     static_assert((std::is_same<C::rep, C::duration::rep>::value), "");
     static_assert((std::is_same<C::period, C::duration::period>::value), "");
     static_assert((std::is_same<C::duration, C::time_point::duration>::value), "");
-    static_assert(C::is_steady, "");
+    static_assert(std::is_same<decltype(C::is_steady), const bool>::value && C::is_steady, "");
     test(std::chrono::steady_clock::is_steady);
 
   return 0;
diff --git a/libcxx/test/std/time/time.clock/time.clock.system/consistency.pass.cpp b/libcxx/test/std/time/time.clock/time.clock.system/consistency.pass.cpp
index 124e9fe41bea0..e9bd175efb240 100644
--- a/libcxx/test/std/time/time.clock/time.clock.system/consistency.pass.cpp
+++ b/libcxx/test/std/time/time.clock/time.clock.system/consistency.pass.cpp
@@ -31,7 +31,7 @@ int main(int, char**)
     static_assert((std::is_same<C::period, C::duration::period>::value), "");
     static_assert((std::is_same<C::duration, C::time_point::duration>::value), "");
     static_assert((std::is_same<C::time_point::clock, C>::value), "");
-    static_assert((C::is_steady || !C::is_steady), "");
+    static_assert(std::is_same<decltype(C::is_steady), const bool>::value, "");
     test(std::chrono::system_clock::is_steady);
 
   return 0;

>From d86b1bc9fda20084f2c9fc326a33ac5ac86cf809 Mon Sep 17 00:00:00 2001
From: Paul <paulxicao7 at gmail.com>
Date: Sat, 13 Jun 2026 18:30:03 +0200
Subject: [PATCH 4/8] file clock: is_steady tests

---
 .../time/time.clock/time.clock.file/consistency.pass.cpp  | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/libcxx/test/std/time/time.clock/time.clock.file/consistency.pass.cpp b/libcxx/test/std/time/time.clock/time.clock.file/consistency.pass.cpp
index cb49c596c56ca..1726c1c976226 100644
--- a/libcxx/test/std/time/time.clock/time.clock.file/consistency.pass.cpp
+++ b/libcxx/test/std/time/time.clock/time.clock.file/consistency.pass.cpp
@@ -23,9 +23,6 @@
 
 #include "test_macros.h"
 
-template <class T>
-void test(const T &) {}
-
 int main(int, char**)
 {
     typedef std::chrono::file_clock C;
@@ -33,8 +30,9 @@ int main(int, char**)
     static_assert((std::is_same<C::period, C::duration::period>::value), "");
     static_assert((std::is_same<C::duration, C::time_point::duration>::value), "");
     static_assert((std::is_same<C::time_point::clock, C>::value), "");
-    static_assert(!C::is_steady, "");
-    test(std::chrono::file_clock::is_steady);
+
+    [[maybe_unused]] constexpr std::same_as<const bool> decltype(auto) is_steady = C::is_steady;
+    LIBCPP_STATIC_ASSERT(C::is_steady == false);
 
   return 0;
 }

>From 31fcbe8c5b8d36eaddb5e31d4f809c903ffd779a Mon Sep 17 00:00:00 2001
From: Paul <paulxicao7 at gmail.com>
Date: Sat, 13 Jun 2026 23:16:59 +0200
Subject: [PATCH 5/8] hires clock: is_steady tests

---
 .../time.clock/time.clock.hires/consistency.pass.cpp  | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/libcxx/test/std/time/time.clock/time.clock.hires/consistency.pass.cpp b/libcxx/test/std/time/time.clock/time.clock.hires/consistency.pass.cpp
index 6765ffb54b9b2..80892d00e88dc 100644
--- a/libcxx/test/std/time/time.clock/time.clock.hires/consistency.pass.cpp
+++ b/libcxx/test/std/time/time.clock/time.clock.hires/consistency.pass.cpp
@@ -6,6 +6,8 @@
 //
 //===----------------------------------------------------------------------===//
 //
+// REQUIRES: std-at-least-c++11
+//
 // Due to C++17 inline variables ASAN flags this test as containing an ODR
 // violation because Clock::is_steady is defined in both the dylib and this TU.
 // UNSUPPORTED: asan
@@ -16,22 +18,23 @@
 
 // check clock invariants
 
+#include <cassert>
 #include <chrono>
 #include <type_traits>
 
 #include "test_macros.h"
 
-template <class T>
-void test(const T &) {}
-
 int main(int, char**)
 {
     typedef std::chrono::high_resolution_clock C;
     static_assert((std::is_same<C::rep, C::duration::rep>::value), "");
     static_assert((std::is_same<C::period, C::duration::period>::value), "");
     static_assert((std::is_same<C::duration, C::time_point::duration>::value), "");
+
     static_assert(std::is_same<decltype(C::is_steady), const bool>::value, "");
-    test(std::chrono::high_resolution_clock::is_steady);
+    TEST_CONSTEXPR_CXX14 const bool is_steady = C::is_steady;
+    (void)is_steady;
+    LIBCPP_ASSERT(C::is_steady);
 
   return 0;
 }

>From 8c0f9c22f7c35f64e93c36e657d5da85e245259c Mon Sep 17 00:00:00 2001
From: Paul <paulxicao7 at gmail.com>
Date: Sat, 13 Jun 2026 23:50:10 +0200
Subject: [PATCH 6/8] steady clock: is_steady tests

---
 .../time.clock/time.clock.steady/consistency.pass.cpp     | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/libcxx/test/std/time/time.clock/time.clock.steady/consistency.pass.cpp b/libcxx/test/std/time/time.clock/time.clock.steady/consistency.pass.cpp
index fcb0df01a331d..02738aee2732c 100644
--- a/libcxx/test/std/time/time.clock/time.clock.steady/consistency.pass.cpp
+++ b/libcxx/test/std/time/time.clock/time.clock.steady/consistency.pass.cpp
@@ -6,6 +6,7 @@
 //
 //===----------------------------------------------------------------------===//
 //
+// REQUIRES: std-at-least-c++11
 // UNSUPPORTED: no-monotonic-clock
 
 // Due to C++17 inline variables ASAN flags this test as containing an ODR
@@ -21,10 +22,7 @@
 #include <chrono>
 #include <type_traits>
 
-#include "test_macros.h"
-
-template <class T>
-void test(const T &) {}
+void odr_use(const bool &) {}
 
 int main(int, char**)
 {
@@ -33,7 +31,7 @@ int main(int, char**)
     static_assert((std::is_same<C::period, C::duration::period>::value), "");
     static_assert((std::is_same<C::duration, C::time_point::duration>::value), "");
     static_assert(std::is_same<decltype(C::is_steady), const bool>::value && C::is_steady, "");
-    test(std::chrono::steady_clock::is_steady);
+    odr_use(C::is_steady);
 
   return 0;
 }

>From 008bdfc7a1858dd53244fe49ded950e4afdc74cb Mon Sep 17 00:00:00 2001
From: Paul <paulxicao7 at gmail.com>
Date: Sun, 14 Jun 2026 00:14:48 +0200
Subject: [PATCH 7/8] system clock: is_steady tests

---
 .../time.clock.system/consistency.pass.cpp           | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/libcxx/test/std/time/time.clock/time.clock.system/consistency.pass.cpp b/libcxx/test/std/time/time.clock/time.clock.system/consistency.pass.cpp
index e9bd175efb240..c5d5989ff02be 100644
--- a/libcxx/test/std/time/time.clock/time.clock.system/consistency.pass.cpp
+++ b/libcxx/test/std/time/time.clock/time.clock.system/consistency.pass.cpp
@@ -6,6 +6,8 @@
 //
 //===----------------------------------------------------------------------===//
 //
+// REQUIRES: std-at-least-c++11
+//
 // Due to C++17 inline variables ASAN flags this test as containing an ODR
 // violation because Clock::is_steady is defined in both the dylib and this TU.
 // UNSUPPORTED: asan
@@ -17,12 +19,12 @@
 // check clock invariants
 
 #include <chrono>
+#include <cassert>
 #include <type_traits>
 
 #include "test_macros.h"
 
-template <class T>
-void test(const T &) {}
+void odr_use(const bool &) {}
 
 int main(int, char**)
 {
@@ -31,8 +33,12 @@ int main(int, char**)
     static_assert((std::is_same<C::period, C::duration::period>::value), "");
     static_assert((std::is_same<C::duration, C::time_point::duration>::value), "");
     static_assert((std::is_same<C::time_point::clock, C>::value), "");
+
     static_assert(std::is_same<decltype(C::is_steady), const bool>::value, "");
-    test(std::chrono::system_clock::is_steady);
+    TEST_CONSTEXPR_CXX14 const bool is_steady = C::is_steady;
+    (void)is_steady;
+    LIBCPP_ASSERT(!C::is_steady);
+    odr_use(C::is_steady);
 
   return 0;
 }

>From aa4e7d89542da27aeb1e6240d8eb8d6deb411471 Mon Sep 17 00:00:00 2001
From: Paul <paulxicao7 at gmail.com>
Date: Sun, 14 Jun 2026 00:15:05 +0200
Subject: [PATCH 8/8] tai clock: is_steady tests

---
 .../std/time/time.clock/time.clock.tai/types.compile.pass.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libcxx/test/std/time/time.clock/time.clock.tai/types.compile.pass.cpp b/libcxx/test/std/time/time.clock/time.clock.tai/types.compile.pass.cpp
index 66c8653e2bb64..ddd1a184611bf 100644
--- a/libcxx/test/std/time/time.clock/time.clock.tai/types.compile.pass.cpp
+++ b/libcxx/test/std/time/time.clock/time.clock.tai/types.compile.pass.cpp
@@ -42,7 +42,7 @@ using period     = std::chrono::tai_clock::period;
 using duration   = std::chrono::tai_clock::duration;
 using time_point = std::chrono::tai_clock::time_point;
 
-[[maybe_unused]] constexpr std::same_as<const bool> decltype(auto) is_steady = std::chrono::tai_clock::is_steady;
+[[maybe_unused]] constexpr std::same_as<const bool> decltype(auto) _ = std::chrono::tai_clock::is_steady;
 
 // Tests the values. part of them are implementation defined.
 LIBCPP_STATIC_ASSERT(std::same_as<rep, std::chrono::utc_clock::rep>);
@@ -54,7 +54,7 @@ static_assert(std::same_as<period, std::ratio<period::num, period::den>>);
 
 static_assert(std::same_as<duration, std::chrono::duration<rep, period>>);
 static_assert(std::same_as<time_point, std::chrono::time_point<std::chrono::tai_clock>>);
-LIBCPP_STATIC_ASSERT(is_steady == false);
+LIBCPP_STATIC_ASSERT(!std::chrono::tai_clock::is_steady);
 
 // typedefs
 static_assert(std::same_as<std::chrono::tai_time<int>, std::chrono::time_point<std::chrono::tai_clock, int>>);



More information about the libcxx-commits mailing list