diff options
Diffstat (limited to 'libcxx/test/std/strings/basic.string/string.ops/string_compare/pointer.pass.cpp')
-rw-r--r-- | libcxx/test/std/strings/basic.string/string.ops/string_compare/pointer.pass.cpp | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_compare/pointer.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_compare/pointer.pass.cpp index 072f062fca75..316f64bd66f2 100644 --- a/libcxx/test/std/strings/basic.string/string.ops/string_compare/pointer.pass.cpp +++ b/libcxx/test/std/strings/basic.string/string.ops/string_compare/pointer.pass.cpp @@ -16,7 +16,7 @@ #include "test_macros.h" #include "min_allocator.h" -int sign(int x) +TEST_CONSTEXPR_CXX20 int sign(int x) { if (x == 0) return 0; @@ -26,16 +26,15 @@ int sign(int x) } template <class S> -void +TEST_CONSTEXPR_CXX20 void test(const S& s, const typename S::value_type* str, int x) { LIBCPP_ASSERT_NOEXCEPT(s.compare(str)); assert(sign(s.compare(str)) == sign(x)); } -int main(int, char**) -{ - { +bool test() { + { typedef std::string S; test(S(""), "", 0); test(S(""), "abcde", -5); @@ -53,9 +52,9 @@ int main(int, char**) test(S("abcdefghijklmnopqrst"), "abcde", 15); test(S("abcdefghijklmnopqrst"), "abcdefghij", 10); test(S("abcdefghijklmnopqrst"), "abcdefghijklmnopqrst", 0); - } + } #if TEST_STD_VER >= 11 - { + { typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S; test(S(""), "", 0); test(S(""), "abcde", -5); @@ -73,7 +72,17 @@ int main(int, char**) test(S("abcdefghijklmnopqrst"), "abcde", 15); test(S("abcdefghijklmnopqrst"), "abcdefghij", 10); test(S("abcdefghijklmnopqrst"), "abcdefghijklmnopqrst", 0); - } + } +#endif + + return true; +} + +int main(int, char**) +{ + test(); +#if TEST_STD_VER > 17 + // static_assert(test()); #endif return 0; |