[libcxx-commits] [libcxx] a85b132 - [libc++] Improve make_string test support.

Mark de Wever via libcxx-commits libcxx-commits at lists.llvm.org
Fri May 14 08:43:01 PDT 2021


Author: Mark de Wever
Date: 2021-05-14T17:42:17+02:00
New Revision: a85b1320b6565714dc60b574f86988f4726b9352

URL: https://github.com/llvm/llvm-project/commit/a85b1320b6565714dc60b574f86988f4726b9352
DIFF: https://github.com/llvm/llvm-project/commit/a85b1320b6565714dc60b574f86988f4726b9352.diff

LOG: [libc++] Improve make_string test support.

Adds MAKE_CSTRING and makes the operators of `MultiStringType` `constexpr`.

The code is copied from D96664 so it can be used in D80895.

Differential Revision: https://reviews.llvm.org/D102414

Added: 
    

Modified: 
    libcxx/test/support/make_string.h

Removed: 
    


################################################################################
diff  --git a/libcxx/test/support/make_string.h b/libcxx/test/support/make_string.h
index ede81b0a8dd23..5ffcd48c10f24 100644
--- a/libcxx/test/support/make_string.h
+++ b/libcxx/test/support/make_string.h
@@ -39,13 +39,13 @@ struct MultiStringType {
   const char16_t* u16;
   const char32_t* u32;
 
-  operator const char*() const { return s; }
-  operator const wchar_t*() const { return w; }
+  constexpr operator const char*() const { return s; }
+  constexpr operator const wchar_t*() const { return w; }
 #if TEST_STD_VER > 17 && defined(__cpp_char8_t)
-  operator const char8_t*() const { return u8; }
+  constexpr operator const char8_t*() const { return u8; }
 #endif
-  operator const char16_t*() const { return u16; }
-  operator const char32_t*() const { return u32; }
+  constexpr operator const char16_t*() const { return u16; }
+  constexpr operator const char32_t*() const { return u32; }
 };
 
 // Helper to convert a const char* string to a basic_string<CharT>.
@@ -56,4 +56,8 @@ struct MultiStringType {
     static_cast<const CharT*>(MultiStringType MKSTR(Str))                      \
   }
 
+// Like MAKE_STRING but converts to a const CharT*.
+#define MAKE_CSTRING(CharT, Str)                                               \
+  static_cast<const CharT*>(MultiStringType MKSTR(Str))
+
 #endif


        


More information about the libcxx-commits mailing list