[libcxx-commits] [PATCH] D112553: [libc++] Make is_error_condition_enum_v and is_error_code_enum_v bool, not size_t

Joe Loser via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Tue Oct 26 09:52:21 PDT 2021


jloser updated this revision to Diff 382378.
jloser added a comment.

Add tests to verify the variable templates are of the right type


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D112553/new/

https://reviews.llvm.org/D112553

Files:
  libcxx/include/system_error
  libcxx/test/std/diagnostics/syserr/is_error_code_enum.pass.cpp
  libcxx/test/std/diagnostics/syserr/is_error_condition_enum.pass.cpp


Index: libcxx/test/std/diagnostics/syserr/is_error_condition_enum.pass.cpp
===================================================================
--- libcxx/test/std/diagnostics/syserr/is_error_condition_enum.pass.cpp
+++ libcxx/test/std/diagnostics/syserr/is_error_condition_enum.pass.cpp
@@ -23,6 +23,7 @@
     static_assert((std::is_error_condition_enum<T>::value == Expected), "");
 #if TEST_STD_VER > 14
     static_assert((std::is_error_condition_enum_v<T>        == Expected), "");
+    ASSERT_SAME_TYPE(decltype(std::is_error_condition_enum_v<T>), const bool);
 #endif
 }
 
Index: libcxx/test/std/diagnostics/syserr/is_error_code_enum.pass.cpp
===================================================================
--- libcxx/test/std/diagnostics/syserr/is_error_code_enum.pass.cpp
+++ libcxx/test/std/diagnostics/syserr/is_error_code_enum.pass.cpp
@@ -23,6 +23,7 @@
     static_assert((std::is_error_code_enum<T>::value == Expected), "");
 #if TEST_STD_VER > 14
     static_assert((std::is_error_code_enum_v<T>      == Expected), "");
+    ASSERT_SAME_TYPE(decltype(std::is_error_code_enum_v<T>), const bool);
 #endif
 }
 
Index: libcxx/include/system_error
===================================================================
--- libcxx/include/system_error
+++ libcxx/include/system_error
@@ -46,10 +46,10 @@
     : public false_type {};
 
 template <class _Tp>
-inline constexpr size_t is_error_condition_enum_v = is_error_condition_enum<_Tp>::value; // C++17
+inline constexpr bool is_error_condition_enum_v = is_error_condition_enum<_Tp>::value; // C++17
 
 template <class _Tp>
-inline constexpr size_t is_error_code_enum_v = is_error_code_enum<_Tp>::value; // C++17
+inline constexpr bool is_error_code_enum_v = is_error_code_enum<_Tp>::value; // C++17
 
 class error_code
 {
@@ -165,7 +165,7 @@
 
 #if _LIBCPP_STD_VER > 14
 template <class _Tp>
-inline constexpr size_t is_error_code_enum_v = is_error_code_enum<_Tp>::value;
+inline constexpr bool is_error_code_enum_v = is_error_code_enum<_Tp>::value;
 #endif
 
 // is_error_condition_enum
@@ -176,7 +176,7 @@
 
 #if _LIBCPP_STD_VER > 14
 template <class _Tp>
-inline constexpr size_t is_error_condition_enum_v = is_error_condition_enum<_Tp>::value;
+inline constexpr bool is_error_condition_enum_v = is_error_condition_enum<_Tp>::value;
 #endif
 
 template <>


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D112553.382378.patch
Type: text/x-patch
Size: 2322 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20211026/2561c420/attachment.bin>


More information about the libcxx-commits mailing list