[libcxx-commits] [libcxx] 30046a3 - [libc++] Prepare string.nonmembers for constexpr
Nikolas Klauser via libcxx-commits
libcxx-commits at lists.llvm.org
Mon Feb 14 13:53:55 PST 2022
Author: Nikolas Klauser
Date: 2022-02-14T22:53:41+01:00
New Revision: 30046a31b8a520b2253433edbb21154c3c874b66
URL: https://github.com/llvm/llvm-project/commit/30046a31b8a520b2253433edbb21154c3c874b66
DIFF: https://github.com/llvm/llvm-project/commit/30046a31b8a520b2253433edbb21154c3c874b66.diff
LOG: [libc++] Prepare string.nonmembers for constexpr
Reviewed By: ldionne, #libc
Spies: libcxx-commits
Differential Revision: https://reviews.llvm.org/D119487
Added:
Modified:
libcxx/test/std/strings/basic.string/string.nonmembers/string.special/swap.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/pointer_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_view_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/char_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/pointer_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_char.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/pointer_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_view_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/pointer_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_view_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/pointer_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_view_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/pointer_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_view_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/pointer_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_view_string.pass.cpp
Removed:
################################################################################
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string.special/swap.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string.special/swap.pass.cpp
index f644f2870753d..5fe15fbf23e24 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string.special/swap.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string.special/swap.pass.cpp
@@ -21,7 +21,7 @@
#include "min_allocator.h"
template <class S>
-void
+TEST_CONSTEXPR_CXX20 void
test(S s1, S s2)
{
S s1_ = s1;
@@ -33,9 +33,8 @@ test(S s1, S s2)
assert(s2 == s1_);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
test(S(""), S(""));
test(S(""), S("12345"));
@@ -53,9 +52,9 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), S("12345"));
test(S("abcdefghijklmnopqrst"), S("1234567890"));
test(S("abcdefghijklmnopqrst"), S("12345678901234567890"));
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
test(S(""), S(""));
test(S(""), S("12345"));
@@ -73,7 +72,17 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), S("12345"));
test(S("abcdefghijklmnopqrst"), S("1234567890"));
test(S("abcdefghijklmnopqrst"), S("12345678901234567890"));
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/pointer_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/pointer_string.pass.cpp
index 3de398264d4dc..b301a5055bb72 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/pointer_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/pointer_string.pass.cpp
@@ -18,15 +18,14 @@
#include "min_allocator.h"
template <class S>
-void
+TEST_CONSTEXPR_CXX20 void
test(const typename S::value_type* lhs, const S& rhs, bool x)
{
assert((lhs != rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
test("", S(""), false);
test("", S("abcde"), true);
@@ -44,9 +43,9 @@ int main(int, char**)
test("abcdefghijklmnopqrst", S("abcde"), true);
test("abcdefghijklmnopqrst", S("abcdefghij"), true);
test("abcdefghijklmnopqrst", S("abcdefghijklmnopqrst"), false);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
test("", S(""), false);
test("", S("abcde"), true);
@@ -64,7 +63,17 @@ int main(int, char**)
test("abcdefghijklmnopqrst", S("abcde"), true);
test("abcdefghijklmnopqrst", S("abcdefghij"), true);
test("abcdefghijklmnopqrst", S("abcdefghijklmnopqrst"), false);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_pointer.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_pointer.pass.cpp
index 220bde69caf00..db79165d568d2 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_pointer.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_pointer.pass.cpp
@@ -18,15 +18,14 @@
#include "min_allocator.h"
template <class S>
-void
+TEST_CONSTEXPR_CXX20 void
test(const S& lhs, const typename S::value_type* rhs, bool x)
{
assert((lhs != rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
test(S(""), "", false);
test(S(""), "abcde", true);
@@ -44,9 +43,9 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), "abcde", true);
test(S("abcdefghijklmnopqrst"), "abcdefghij", true);
test(S("abcdefghijklmnopqrst"), "abcdefghijklmnopqrst", false);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
test(S(""), "", false);
test(S(""), "abcde", true);
@@ -64,7 +63,17 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), "abcde", true);
test(S("abcdefghijklmnopqrst"), "abcdefghij", true);
test(S("abcdefghijklmnopqrst"), "abcdefghijklmnopqrst", false);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_string.pass.cpp
index 51d9f60629cbe..c5007fd15a58e 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_string.pass.cpp
@@ -19,15 +19,14 @@
#include "min_allocator.h"
template <class S>
-void
+TEST_CONSTEXPR_CXX20 void
test(const S& lhs, const S& rhs, bool x)
{
assert((lhs != rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
test(S(""), S(""), false);
test(S(""), S("abcde"), true);
@@ -45,9 +44,9 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), S("abcde"), true);
test(S("abcdefghijklmnopqrst"), S("abcdefghij"), true);
test(S("abcdefghijklmnopqrst"), S("abcdefghijklmnopqrst"), false);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
test(S(""), S(""), false);
test(S(""), S("abcde"), true);
@@ -65,7 +64,17 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), S("abcde"), true);
test(S("abcdefghijklmnopqrst"), S("abcdefghij"), true);
test(S("abcdefghijklmnopqrst"), S("abcdefghijklmnopqrst"), false);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_string_view.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_string_view.pass.cpp
index 80ef8daf2c039..23990f1fb7750 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_string_view.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_string_view.pass.cpp
@@ -17,15 +17,14 @@
#include "min_allocator.h"
template <class S, class SV>
-void
+TEST_CONSTEXPR_CXX20 void
test(const S& lhs, SV rhs, bool x)
{
assert((lhs != rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
typedef std::string SV;
test(S(""), SV(""), false);
@@ -44,9 +43,9 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), SV("abcde"), true);
test(S("abcdefghijklmnopqrst"), SV("abcdefghij"), true);
test(S("abcdefghijklmnopqrst"), SV("abcdefghijklmnopqrst"), false);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
typedef std::basic_string_view<char, std::char_traits<char>> SV;
test(S(""), SV(""), false);
@@ -65,7 +64,17 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), SV("abcde"), true);
test(S("abcdefghijklmnopqrst"), SV("abcdefghij"), true);
test(S("abcdefghijklmnopqrst"), SV("abcdefghijklmnopqrst"), false);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_view_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_view_string.pass.cpp
index bd81bb1667065..1cb88d1786625 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_view_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_view_string.pass.cpp
@@ -17,15 +17,14 @@
#include "min_allocator.h"
template <class S, class SV>
-void
+TEST_CONSTEXPR_CXX20 void
test(SV lhs, const S& rhs, bool x)
{
assert((lhs != rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
typedef std::string_view SV;
test(SV(""), S(""), false);
@@ -44,9 +43,9 @@ int main(int, char**)
test(SV("abcdefghijklmnopqrst"), S("abcde"), true);
test(SV("abcdefghijklmnopqrst"), S("abcdefghij"), true);
test(SV("abcdefghijklmnopqrst"), S("abcdefghijklmnopqrst"), false);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
typedef std::basic_string_view<char, std::char_traits<char>> SV;
test(SV(""), S(""), false);
@@ -65,7 +64,17 @@ int main(int, char**)
test(SV("abcdefghijklmnopqrst"), S("abcde"), true);
test(SV("abcdefghijklmnopqrst"), S("abcdefghij"), true);
test(SV("abcdefghijklmnopqrst"), S("abcdefghijklmnopqrst"), false);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/char_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/char_string.pass.cpp
index 9ab3c0611971d..f9f8cd95fb984 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/char_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/char_string.pass.cpp
@@ -24,18 +24,18 @@
#include "min_allocator.h"
template <class S>
-void test0(typename S::value_type lhs, const S& rhs, const S& x) {
+TEST_CONSTEXPR_CXX20 void test0(typename S::value_type lhs, const S& rhs, const S& x) {
assert(lhs + rhs == x);
}
#if TEST_STD_VER >= 11
template <class S>
-void test1(typename S::value_type lhs, S&& rhs, const S& x) {
+TEST_CONSTEXPR_CXX20 void test1(typename S::value_type lhs, S&& rhs, const S& x) {
assert(lhs + move(rhs) == x);
}
#endif
-int main(int, char**) {
+bool test() {
{
typedef std::string S;
test0('a', S(""), S("a"));
@@ -67,5 +67,14 @@ int main(int, char**) {
}
#endif
+ return true;
+}
+
+int main(int, char**) {
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
+#endif
+
return 0;
}
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/pointer_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/pointer_string.pass.cpp
index cf13fbb51d6e1..89fadc2227e29 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/pointer_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/pointer_string.pass.cpp
@@ -24,18 +24,18 @@
#include "min_allocator.h"
template <class S>
-void test0(const typename S::value_type* lhs, const S& rhs, const S& x) {
+TEST_CONSTEXPR_CXX20 void test0(const typename S::value_type* lhs, const S& rhs, const S& x) {
assert(lhs + rhs == x);
}
#if TEST_STD_VER >= 11
template <class S>
-void test1(const typename S::value_type* lhs, S&& rhs, const S& x) {
+TEST_CONSTEXPR_CXX20 void test1(const typename S::value_type* lhs, S&& rhs, const S& x) {
assert(lhs + move(rhs) == x);
}
#endif
-int main(int, char**) {
+bool test() {
{
typedef std::string S;
test0("", S(""), S(""));
@@ -128,5 +128,14 @@ int main(int, char**) {
}
#endif
+ return true;
+}
+
+int main(int, char**) {
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
+#endif
+
return 0;
}
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_char.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_char.pass.cpp
index 32411144db276..ee2a239539687 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_char.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_char.pass.cpp
@@ -24,18 +24,18 @@
#include "min_allocator.h"
template <class S>
-void test0(const S& lhs, typename S::value_type rhs, const S& x) {
+TEST_CONSTEXPR_CXX20 void test0(const S& lhs, typename S::value_type rhs, const S& x) {
assert(lhs + rhs == x);
}
#if TEST_STD_VER >= 11
template <class S>
-void test1(S&& lhs, typename S::value_type rhs, const S& x) {
+TEST_CONSTEXPR_CXX20 void test1(S&& lhs, typename S::value_type rhs, const S& x) {
assert(move(lhs) + rhs == x);
}
#endif
-int main(int, char**) {
+bool test() {
{
typedef std::string S;
test0(S(""), '1', S("1"));
@@ -67,5 +67,14 @@ int main(int, char**) {
}
#endif
+ return true;
+}
+
+int main(int, char**) {
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
+#endif
+
return 0;
}
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_pointer.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_pointer.pass.cpp
index 4fec848296623..bdcc464e5a8e9 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_pointer.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_pointer.pass.cpp
@@ -24,18 +24,18 @@
#include "min_allocator.h"
template <class S>
-void test0(const S& lhs, const typename S::value_type* rhs, const S& x) {
+TEST_CONSTEXPR_CXX20 void test0(const S& lhs, const typename S::value_type* rhs, const S& x) {
assert(lhs + rhs == x);
}
#if TEST_STD_VER >= 11
template <class S>
-void test1(S&& lhs, const typename S::value_type* rhs, const S& x) {
+TEST_CONSTEXPR_CXX20 void test1(S&& lhs, const typename S::value_type* rhs, const S& x) {
assert(move(lhs) + rhs == x);
}
#endif
-int main(int, char**) {
+bool test() {
{
typedef std::string S;
test0(S(""), "", S(""));
@@ -127,5 +127,14 @@ int main(int, char**) {
}
#endif
+ return true;
+}
+
+int main(int, char**) {
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
+#endif
+
return 0;
}
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_string.pass.cpp
index 00aaf5cc09217..3c349ed96f74c 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_string.pass.cpp
@@ -36,29 +36,28 @@
#include "min_allocator.h"
template <class S>
-void test0(const S& lhs, const S& rhs, const S& x) {
+TEST_CONSTEXPR_CXX20 void test0(const S& lhs, const S& rhs, const S& x) {
assert(lhs + rhs == x);
}
#if TEST_STD_VER >= 11
template <class S>
-void test1(S&& lhs, const S& rhs, const S& x) {
+TEST_CONSTEXPR_CXX20 void test1(S&& lhs, const S& rhs, const S& x) {
assert(move(lhs) + rhs == x);
}
template <class S>
-void test2(const S& lhs, S&& rhs, const S& x) {
+TEST_CONSTEXPR_CXX20 void test2(const S& lhs, S&& rhs, const S& x) {
assert(lhs + move(rhs) == x);
}
template <class S>
-void test3(S&& lhs, S&& rhs, const S& x) {
+TEST_CONSTEXPR_CXX20 void test3(S&& lhs, S&& rhs, const S& x) {
assert(move(lhs) + move(rhs) == x);
}
-
#endif
-int main(int, char**) {
+bool test() {
{
typedef std::string S;
test0(S(""), S(""), S(""));
@@ -246,5 +245,14 @@ int main(int, char**) {
}
#endif // TEST_STD_VER >= 11
+ return true;
+}
+
+int main(int, char**) {
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
+#endif
+
return 0;
}
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/pointer_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/pointer_string.pass.cpp
index 0efd829ee0d17..1b9153168fd82 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/pointer_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/pointer_string.pass.cpp
@@ -18,15 +18,14 @@
#include "min_allocator.h"
template <class S>
-void
+TEST_CONSTEXPR_CXX20 void
test(const typename S::value_type* lhs, const S& rhs, bool x)
{
assert((lhs == rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
test("", S(""), true);
test("", S("abcde"), false);
@@ -44,9 +43,9 @@ int main(int, char**)
test("abcdefghijklmnopqrst", S("abcde"), false);
test("abcdefghijklmnopqrst", S("abcdefghij"), false);
test("abcdefghijklmnopqrst", S("abcdefghijklmnopqrst"), true);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
test("", S(""), true);
test("", S("abcde"), false);
@@ -64,7 +63,17 @@ int main(int, char**)
test("abcdefghijklmnopqrst", S("abcde"), false);
test("abcdefghijklmnopqrst", S("abcdefghij"), false);
test("abcdefghijklmnopqrst", S("abcdefghijklmnopqrst"), true);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_pointer.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_pointer.pass.cpp
index ae0d3e88d5faa..9e6ddcf93d54d 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_pointer.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_pointer.pass.cpp
@@ -18,15 +18,14 @@
#include "min_allocator.h"
template <class S>
-void
+TEST_CONSTEXPR_CXX20 void
test(const S& lhs, const typename S::value_type* rhs, bool x)
{
assert((lhs == rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
test(S(""), "", true);
test(S(""), "abcde", false);
@@ -44,9 +43,9 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), "abcde", false);
test(S("abcdefghijklmnopqrst"), "abcdefghij", false);
test(S("abcdefghijklmnopqrst"), "abcdefghijklmnopqrst", true);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
test(S(""), "", true);
test(S(""), "abcde", false);
@@ -64,7 +63,17 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), "abcde", false);
test(S("abcdefghijklmnopqrst"), "abcdefghij", false);
test(S("abcdefghijklmnopqrst"), "abcdefghijklmnopqrst", true);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_string.pass.cpp
index 387c0016dc15b..aafabdec68a02 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_string.pass.cpp
@@ -19,15 +19,14 @@
#include "min_allocator.h"
template <class S>
-void
+TEST_CONSTEXPR_CXX20 void
test(const S& lhs, const S& rhs, bool x)
{
assert((lhs == rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
test(S(""), S(""), true);
test(S(""), S("abcde"), false);
@@ -45,9 +44,9 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), S("abcde"), false);
test(S("abcdefghijklmnopqrst"), S("abcdefghij"), false);
test(S("abcdefghijklmnopqrst"), S("abcdefghijklmnopqrst"), true);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
test(S(""), S(""), true);
test(S(""), S("abcde"), false);
@@ -65,7 +64,17 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), S("abcde"), false);
test(S("abcdefghijklmnopqrst"), S("abcdefghij"), false);
test(S("abcdefghijklmnopqrst"), S("abcdefghijklmnopqrst"), true);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_string_view.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_string_view.pass.cpp
index a525c752d6cd1..be393ab5c4c0e 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_string_view.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_string_view.pass.cpp
@@ -17,15 +17,14 @@
#include "min_allocator.h"
template <class S, class SV>
-void
+TEST_CONSTEXPR_CXX20 void
test(const S& lhs, SV rhs, bool x)
{
assert((lhs == rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
typedef std::string_view SV;
test(S(""), SV(""), true);
@@ -44,9 +43,9 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), SV("abcde"), false);
test(S("abcdefghijklmnopqrst"), SV("abcdefghij"), false);
test(S("abcdefghijklmnopqrst"), SV("abcdefghijklmnopqrst"), true);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string <char, std::char_traits<char>, min_allocator<char>> S;
typedef std::basic_string_view<char, std::char_traits<char>> SV;
test(S(""), SV(""), true);
@@ -65,7 +64,17 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), SV("abcde"), false);
test(S("abcdefghijklmnopqrst"), SV("abcdefghij"), false);
test(S("abcdefghijklmnopqrst"), SV("abcdefghijklmnopqrst"), true);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_view_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_view_string.pass.cpp
index 793fa2388b274..36cd9e478b61b 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_view_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_view_string.pass.cpp
@@ -17,15 +17,14 @@
#include "min_allocator.h"
template <class S, class SV>
-void
+TEST_CONSTEXPR_CXX20 void
test(SV lhs, const S& rhs, bool x)
{
assert((lhs == rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
typedef std::string_view SV;
test(SV(""), S(""), true);
@@ -44,9 +43,9 @@ int main(int, char**)
test(SV("abcdefghijklmnopqrst"), S("abcde"), false);
test(SV("abcdefghijklmnopqrst"), S("abcdefghij"), false);
test(SV("abcdefghijklmnopqrst"), S("abcdefghijklmnopqrst"), true);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
typedef std::basic_string_view<char, std::char_traits<char>> SV;
test(SV(""), S(""), true);
@@ -65,7 +64,17 @@ int main(int, char**)
test(SV("abcdefghijklmnopqrst"), S("abcde"), false);
test(SV("abcdefghijklmnopqrst"), S("abcdefghij"), false);
test(SV("abcdefghijklmnopqrst"), S("abcdefghijklmnopqrst"), true);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/pointer_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/pointer_string.pass.cpp
index 2e96167b41997..781aafca5d493 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/pointer_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/pointer_string.pass.cpp
@@ -18,15 +18,14 @@
#include "min_allocator.h"
template <class S>
-void
+TEST_CONSTEXPR_CXX20 void
test(const typename S::value_type* lhs, const S& rhs, bool x)
{
assert((lhs > rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
test("", S(""), false);
test("", S("abcde"), false);
@@ -44,9 +43,9 @@ int main(int, char**)
test("abcdefghijklmnopqrst", S("abcde"), true);
test("abcdefghijklmnopqrst", S("abcdefghij"), true);
test("abcdefghijklmnopqrst", S("abcdefghijklmnopqrst"), false);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
test("", S(""), false);
test("", S("abcde"), false);
@@ -64,7 +63,17 @@ int main(int, char**)
test("abcdefghijklmnopqrst", S("abcde"), true);
test("abcdefghijklmnopqrst", S("abcdefghij"), true);
test("abcdefghijklmnopqrst", S("abcdefghijklmnopqrst"), false);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_pointer.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_pointer.pass.cpp
index 57c979d0caafa..c1e5b5b18e3cb 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_pointer.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_pointer.pass.cpp
@@ -18,15 +18,14 @@
#include "min_allocator.h"
template <class S>
-void
+TEST_CONSTEXPR_CXX20 void
test(const S& lhs, const typename S::value_type* rhs, bool x)
{
assert((lhs > rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
test(S(""), "", false);
test(S(""), "abcde", false);
@@ -44,9 +43,9 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), "abcde", true);
test(S("abcdefghijklmnopqrst"), "abcdefghij", true);
test(S("abcdefghijklmnopqrst"), "abcdefghijklmnopqrst", false);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
test(S(""), "", false);
test(S(""), "abcde", false);
@@ -64,7 +63,17 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), "abcde", true);
test(S("abcdefghijklmnopqrst"), "abcdefghij", true);
test(S("abcdefghijklmnopqrst"), "abcdefghijklmnopqrst", false);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_string.pass.cpp
index cc6f331756f96..863ecec14580e 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_string.pass.cpp
@@ -19,15 +19,14 @@
#include "min_allocator.h"
template <class S>
-void
+TEST_CONSTEXPR_CXX20 void
test(const S& lhs, const S& rhs, bool x)
{
assert((lhs > rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
test(S(""), S(""), false);
test(S(""), S("abcde"), false);
@@ -45,9 +44,9 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), S("abcde"), true);
test(S("abcdefghijklmnopqrst"), S("abcdefghij"), true);
test(S("abcdefghijklmnopqrst"), S("abcdefghijklmnopqrst"), false);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
test(S(""), S(""), false);
test(S(""), S("abcde"), false);
@@ -65,7 +64,17 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), S("abcde"), true);
test(S("abcdefghijklmnopqrst"), S("abcdefghij"), true);
test(S("abcdefghijklmnopqrst"), S("abcdefghijklmnopqrst"), false);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_string_view.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_string_view.pass.cpp
index 7f6ad7d3bd210..2220c11571b4a 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_string_view.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_string_view.pass.cpp
@@ -17,15 +17,14 @@
#include "min_allocator.h"
template <class S, class SV>
-void
+TEST_CONSTEXPR_CXX20 void
test(const S& lhs, SV rhs, bool x)
{
assert((lhs > rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
typedef std::string_view SV;
test(S(""), SV(""), false);
@@ -44,9 +43,9 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), SV("abcde"), true);
test(S("abcdefghijklmnopqrst"), SV("abcdefghij"), true);
test(S("abcdefghijklmnopqrst"), SV("abcdefghijklmnopqrst"), false);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string <char, std::char_traits<char>, min_allocator<char>> S;
typedef std::basic_string_view<char, std::char_traits<char>> SV;
test(S(""), SV(""), false);
@@ -65,7 +64,17 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), SV("abcde"), true);
test(S("abcdefghijklmnopqrst"), SV("abcdefghij"), true);
test(S("abcdefghijklmnopqrst"), SV("abcdefghijklmnopqrst"), false);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_view_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_view_string.pass.cpp
index b96ee17aa2e60..18bec19a8df74 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_view_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_view_string.pass.cpp
@@ -17,15 +17,14 @@
#include "min_allocator.h"
template <class S, class SV>
-void
+TEST_CONSTEXPR_CXX20 void
test(SV lhs, const S& rhs, bool x)
{
assert((lhs > rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
typedef std::string_view SV;
test(SV(""), S(""), false);
@@ -44,9 +43,9 @@ int main(int, char**)
test(SV("abcdefghijklmnopqrst"), S("abcde"), true);
test(SV("abcdefghijklmnopqrst"), S("abcdefghij"), true);
test(SV("abcdefghijklmnopqrst"), S("abcdefghijklmnopqrst"), false);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string <char, std::char_traits<char>, min_allocator<char>> S;
typedef std::basic_string_view<char, std::char_traits<char>> SV;
test(SV(""), S(""), false);
@@ -65,7 +64,17 @@ int main(int, char**)
test(SV("abcdefghijklmnopqrst"), S("abcde"), true);
test(SV("abcdefghijklmnopqrst"), S("abcdefghij"), true);
test(SV("abcdefghijklmnopqrst"), S("abcdefghijklmnopqrst"), false);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/pointer_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/pointer_string.pass.cpp
index 9082f36c94882..4ac1ddd9fecca 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/pointer_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/pointer_string.pass.cpp
@@ -18,15 +18,14 @@
#include "min_allocator.h"
template <class S>
-void
+TEST_CONSTEXPR_CXX20 void
test(const typename S::value_type* lhs, const S& rhs, bool x)
{
assert((lhs >= rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
test("", S(""), true);
test("", S("abcde"), false);
@@ -44,9 +43,9 @@ int main(int, char**)
test("abcdefghijklmnopqrst", S("abcde"), true);
test("abcdefghijklmnopqrst", S("abcdefghij"), true);
test("abcdefghijklmnopqrst", S("abcdefghijklmnopqrst"), true);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
test("", S(""), true);
test("", S("abcde"), false);
@@ -64,7 +63,17 @@ int main(int, char**)
test("abcdefghijklmnopqrst", S("abcde"), true);
test("abcdefghijklmnopqrst", S("abcdefghij"), true);
test("abcdefghijklmnopqrst", S("abcdefghijklmnopqrst"), true);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_pointer.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_pointer.pass.cpp
index 72ed73aa2d8c3..2d64d40a4a39b 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_pointer.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_pointer.pass.cpp
@@ -18,15 +18,14 @@
#include "min_allocator.h"
template <class S>
-void
+TEST_CONSTEXPR_CXX20 void
test(const S& lhs, const typename S::value_type* rhs, bool x)
{
assert((lhs >= rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
test(S(""), "", true);
test(S(""), "abcde", false);
@@ -44,9 +43,9 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), "abcde", true);
test(S("abcdefghijklmnopqrst"), "abcdefghij", true);
test(S("abcdefghijklmnopqrst"), "abcdefghijklmnopqrst", true);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
test(S(""), "", true);
test(S(""), "abcde", false);
@@ -64,7 +63,17 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), "abcde", true);
test(S("abcdefghijklmnopqrst"), "abcdefghij", true);
test(S("abcdefghijklmnopqrst"), "abcdefghijklmnopqrst", true);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_string.pass.cpp
index 604698a8d0c10..252a1f1325b56 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_string.pass.cpp
@@ -19,15 +19,14 @@
#include "min_allocator.h"
template <class S>
-void
+TEST_CONSTEXPR_CXX20 void
test(const S& lhs, const S& rhs, bool x)
{
assert((lhs >= rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
test(S(""), S(""), true);
test(S(""), S("abcde"), false);
@@ -45,9 +44,9 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), S("abcde"), true);
test(S("abcdefghijklmnopqrst"), S("abcdefghij"), true);
test(S("abcdefghijklmnopqrst"), S("abcdefghijklmnopqrst"), true);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
test(S(""), S(""), true);
test(S(""), S("abcde"), false);
@@ -65,7 +64,17 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), S("abcde"), true);
test(S("abcdefghijklmnopqrst"), S("abcdefghij"), true);
test(S("abcdefghijklmnopqrst"), S("abcdefghijklmnopqrst"), true);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_string_view.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_string_view.pass.cpp
index 131f83ea44648..f7fcc250c183d 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_string_view.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_string_view.pass.cpp
@@ -17,15 +17,14 @@
#include "min_allocator.h"
template <class S, class SV>
-void
+TEST_CONSTEXPR_CXX20 void
test(const S& lhs, SV rhs, bool x)
{
assert((lhs >= rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
typedef std::string_view SV;
test(S(""), SV(""), true);
@@ -44,9 +43,9 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), SV("abcde"), true);
test(S("abcdefghijklmnopqrst"), SV("abcdefghij"), true);
test(S("abcdefghijklmnopqrst"), SV("abcdefghijklmnopqrst"), true);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
typedef std::basic_string_view<char, std::char_traits<char>> SV;
test(S(""), SV(""), true);
@@ -65,7 +64,17 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), SV("abcde"), true);
test(S("abcdefghijklmnopqrst"), SV("abcdefghij"), true);
test(S("abcdefghijklmnopqrst"), SV("abcdefghijklmnopqrst"), true);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_view_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_view_string.pass.cpp
index 45c0ed11eed02..e0c62c66fc6f1 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_view_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_view_string.pass.cpp
@@ -17,15 +17,14 @@
#include "min_allocator.h"
template <class S, class SV>
-void
+TEST_CONSTEXPR_CXX20 void
test(SV lhs, const S& rhs, bool x)
{
assert((lhs >= rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
typedef std::string_view SV;
test(SV(""), S(""), true);
@@ -44,9 +43,9 @@ int main(int, char**)
test(SV("abcdefghijklmnopqrst"), S("abcde"), true);
test(SV("abcdefghijklmnopqrst"), S("abcdefghij"), true);
test(SV("abcdefghijklmnopqrst"), S("abcdefghijklmnopqrst"), true);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
typedef std::basic_string_view<char, std::char_traits<char>> SV;
test(SV(""), S(""), true);
@@ -65,7 +64,17 @@ int main(int, char**)
test(SV("abcdefghijklmnopqrst"), S("abcde"), true);
test(SV("abcdefghijklmnopqrst"), S("abcdefghij"), true);
test(SV("abcdefghijklmnopqrst"), S("abcdefghijklmnopqrst"), true);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/pointer_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/pointer_string.pass.cpp
index 5e96bf37b3450..02f725c09a089 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/pointer_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/pointer_string.pass.cpp
@@ -18,15 +18,14 @@
#include "min_allocator.h"
template <class S>
-void
+TEST_CONSTEXPR_CXX20 void
test(const typename S::value_type* lhs, const S& rhs, bool x)
{
assert((lhs < rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
test("", S(""), false);
test("", S("abcde"), true);
@@ -44,9 +43,9 @@ int main(int, char**)
test("abcdefghijklmnopqrst", S("abcde"), false);
test("abcdefghijklmnopqrst", S("abcdefghij"), false);
test("abcdefghijklmnopqrst", S("abcdefghijklmnopqrst"), false);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
test("", S(""), false);
test("", S("abcde"), true);
@@ -64,7 +63,17 @@ int main(int, char**)
test("abcdefghijklmnopqrst", S("abcde"), false);
test("abcdefghijklmnopqrst", S("abcdefghij"), false);
test("abcdefghijklmnopqrst", S("abcdefghijklmnopqrst"), false);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_pointer.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_pointer.pass.cpp
index f01b69e620b3f..6909cf884db9b 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_pointer.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_pointer.pass.cpp
@@ -18,15 +18,14 @@
#include "min_allocator.h"
template <class S>
-void
+TEST_CONSTEXPR_CXX20 void
test(const S& lhs, const typename S::value_type* rhs, bool x)
{
assert((lhs < rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
test(S(""), "", false);
test(S(""), "abcde", true);
@@ -44,9 +43,9 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), "abcde", false);
test(S("abcdefghijklmnopqrst"), "abcdefghij", false);
test(S("abcdefghijklmnopqrst"), "abcdefghijklmnopqrst", false);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
test(S(""), "", false);
test(S(""), "abcde", true);
@@ -64,7 +63,17 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), "abcde", false);
test(S("abcdefghijklmnopqrst"), "abcdefghij", false);
test(S("abcdefghijklmnopqrst"), "abcdefghijklmnopqrst", false);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_string.pass.cpp
index b6a61f7034f6c..0cd4f64c81273 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_string.pass.cpp
@@ -19,15 +19,14 @@
#include "min_allocator.h"
template <class S>
-void
+TEST_CONSTEXPR_CXX20 void
test(const S& lhs, const S& rhs, bool x)
{
assert((lhs < rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
test(S(""), S(""), false);
test(S(""), S("abcde"), true);
@@ -45,9 +44,9 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), S("abcde"), false);
test(S("abcdefghijklmnopqrst"), S("abcdefghij"), false);
test(S("abcdefghijklmnopqrst"), S("abcdefghijklmnopqrst"), false);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
test(S(""), S(""), false);
test(S(""), S("abcde"), true);
@@ -65,7 +64,17 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), S("abcde"), false);
test(S("abcdefghijklmnopqrst"), S("abcdefghij"), false);
test(S("abcdefghijklmnopqrst"), S("abcdefghijklmnopqrst"), false);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_string_view.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_string_view.pass.cpp
index fa81ae88fbeed..470ee16bec1e5 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_string_view.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_string_view.pass.cpp
@@ -17,15 +17,14 @@
#include "min_allocator.h"
template <class S, class SV>
-void
+TEST_CONSTEXPR_CXX20 void
test(const S& lhs, SV rhs, bool x)
{
assert((lhs < rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
typedef std::string_view SV;
test(S(""), SV(""), false);
@@ -44,9 +43,9 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), SV("abcde"), false);
test(S("abcdefghijklmnopqrst"), SV("abcdefghij"), false);
test(S("abcdefghijklmnopqrst"), SV("abcdefghijklmnopqrst"), false);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
typedef std::basic_string_view<char, std::char_traits<char>> SV;
test(S(""), SV(""), false);
@@ -65,7 +64,17 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), SV("abcde"), false);
test(S("abcdefghijklmnopqrst"), SV("abcdefghij"), false);
test(S("abcdefghijklmnopqrst"), SV("abcdefghijklmnopqrst"), false);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_view_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_view_string.pass.cpp
index 54f8015442a02..b0baab5085a2a 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_view_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_view_string.pass.cpp
@@ -17,15 +17,14 @@
#include "min_allocator.h"
template <class S, class SV>
-void
+TEST_CONSTEXPR_CXX20 void
test(SV lhs, const S& rhs, bool x)
{
assert((lhs < rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
typedef std::string_view SV;
test(SV(""), S(""), false);
@@ -44,9 +43,9 @@ int main(int, char**)
test(SV("abcdefghijklmnopqrst"), S("abcde"), false);
test(SV("abcdefghijklmnopqrst"), S("abcdefghij"), false);
test(SV("abcdefghijklmnopqrst"), S("abcdefghijklmnopqrst"), false);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
typedef std::basic_string_view<char, std::char_traits<char>> SV;
test(SV(""), S(""), false);
@@ -65,7 +64,17 @@ int main(int, char**)
test(SV("abcdefghijklmnopqrst"), S("abcde"), false);
test(SV("abcdefghijklmnopqrst"), S("abcdefghij"), false);
test(SV("abcdefghijklmnopqrst"), S("abcdefghijklmnopqrst"), false);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/pointer_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/pointer_string.pass.cpp
index 5c43125974e95..67c090d22a83b 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/pointer_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/pointer_string.pass.cpp
@@ -18,15 +18,14 @@
#include "min_allocator.h"
template <class S>
-void
+TEST_CONSTEXPR_CXX20 void
test(const typename S::value_type* lhs, const S& rhs, bool x)
{
assert((lhs <= rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
test("", S(""), true);
test("", S("abcde"), true);
@@ -44,9 +43,9 @@ int main(int, char**)
test("abcdefghijklmnopqrst", S("abcde"), false);
test("abcdefghijklmnopqrst", S("abcdefghij"), false);
test("abcdefghijklmnopqrst", S("abcdefghijklmnopqrst"), true);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
test("", S(""), true);
test("", S("abcde"), true);
@@ -64,7 +63,17 @@ int main(int, char**)
test("abcdefghijklmnopqrst", S("abcde"), false);
test("abcdefghijklmnopqrst", S("abcdefghij"), false);
test("abcdefghijklmnopqrst", S("abcdefghijklmnopqrst"), true);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_pointer.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_pointer.pass.cpp
index 3b1dc2cb8a165..3a6ba9e0871bb 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_pointer.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_pointer.pass.cpp
@@ -18,15 +18,14 @@
#include "min_allocator.h"
template <class S>
-void
+TEST_CONSTEXPR_CXX20 void
test(const S& lhs, const typename S::value_type* rhs, bool x)
{
assert((lhs <= rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
test(S(""), "", true);
test(S(""), "abcde", true);
@@ -44,9 +43,9 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), "abcde", false);
test(S("abcdefghijklmnopqrst"), "abcdefghij", false);
test(S("abcdefghijklmnopqrst"), "abcdefghijklmnopqrst", true);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
test(S(""), "", true);
test(S(""), "abcde", true);
@@ -64,7 +63,17 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), "abcde", false);
test(S("abcdefghijklmnopqrst"), "abcdefghij", false);
test(S("abcdefghijklmnopqrst"), "abcdefghijklmnopqrst", true);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_string.pass.cpp
index 219ed5101b298..ddec31bd33555 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_string.pass.cpp
@@ -19,15 +19,14 @@
#include "min_allocator.h"
template <class S>
-void
+TEST_CONSTEXPR_CXX20 void
test(const S& lhs, const S& rhs, bool x)
{
assert((lhs <= rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
test(S(""), S(""), true);
test(S(""), S("abcde"), true);
@@ -45,9 +44,9 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), S("abcde"), false);
test(S("abcdefghijklmnopqrst"), S("abcdefghij"), false);
test(S("abcdefghijklmnopqrst"), S("abcdefghijklmnopqrst"), true);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
test(S(""), S(""), true);
test(S(""), S("abcde"), true);
@@ -65,7 +64,17 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), S("abcde"), false);
test(S("abcdefghijklmnopqrst"), S("abcdefghij"), false);
test(S("abcdefghijklmnopqrst"), S("abcdefghijklmnopqrst"), true);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_string_view.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_string_view.pass.cpp
index 52806ae60bdd6..dfd8877a62bd2 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_string_view.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_string_view.pass.cpp
@@ -17,15 +17,14 @@
#include "min_allocator.h"
template <class S, class SV>
-void
+TEST_CONSTEXPR_CXX20 void
test(const S& lhs, SV rhs, bool x)
{
assert((lhs <= rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
typedef std::string_view SV;
test(S(""), SV(""), true);
@@ -44,9 +43,9 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), SV("abcde"), false);
test(S("abcdefghijklmnopqrst"), SV("abcdefghij"), false);
test(S("abcdefghijklmnopqrst"), SV("abcdefghijklmnopqrst"), true);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
typedef std::basic_string_view<char, std::char_traits<char>> SV;
test(S(""), SV(""), true);
@@ -65,7 +64,17 @@ int main(int, char**)
test(S("abcdefghijklmnopqrst"), SV("abcde"), false);
test(S("abcdefghijklmnopqrst"), SV("abcdefghij"), false);
test(S("abcdefghijklmnopqrst"), SV("abcdefghijklmnopqrst"), true);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_view_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_view_string.pass.cpp
index 961fc0e5b87a2..527a45a199059 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_view_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_view_string.pass.cpp
@@ -17,15 +17,14 @@
#include "min_allocator.h"
template <class S, class SV>
-void
+TEST_CONSTEXPR_CXX20 void
test(SV lhs, const S& rhs, bool x)
{
assert((lhs <= rhs) == x);
}
-int main(int, char**)
-{
- {
+bool test() {
+ {
typedef std::string S;
typedef std::string_view SV;
test(SV(""), S(""), true);
@@ -44,9 +43,9 @@ int main(int, char**)
test(SV("abcdefghijklmnopqrst"), S("abcde"), false);
test(SV("abcdefghijklmnopqrst"), S("abcdefghij"), false);
test(SV("abcdefghijklmnopqrst"), S("abcdefghijklmnopqrst"), true);
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
typedef std::basic_string_view<char, std::char_traits<char>> SV;
test(SV(""), S(""), true);
@@ -65,7 +64,17 @@ int main(int, char**)
test(SV("abcdefghijklmnopqrst"), S("abcde"), false);
test(SV("abcdefghijklmnopqrst"), S("abcdefghij"), false);
test(SV("abcdefghijklmnopqrst"), S("abcdefghijklmnopqrst"), true);
- }
+ }
+#endif
+
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+#if TEST_STD_VER > 17
+ // static_assert(test());
#endif
return 0;
More information about the libcxx-commits
mailing list