[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