[libc++] Implement P0980R1 (constexpr std::string)

Reviewed By: #libc, ldionne

Spies: daltenty, sdasgup3, ldionne, arichardson, MTC, ChuanqiXu, mehdi_amini, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, stephenneuendorffer, Joonsoo, grosul1, Kayjukh, jurahul, msifontes, tatianashp, rdzhabarov, teijeong, cota, dcaballe, Chia-hungDuan, wrengr, wenzhicui, arphaman, Mordante, miscco, Quuxplusone, smeenai, libcxx-commits

Differential Revision: https://reviews.llvm.org/D110598
This commit is contained in:
Nikolas Klauser committed 2022-04-27 12:25:34 +02:00
1 parent 6e078f9804
commit 425620ccdd
211 files changed
+2291 -2074

No files matched your search

@@ -6,9 +6,11 @@
//
//===----------------------------------------------------------------------===//
// XFAIL: LIBCXX-AIX-FIXME
// <string>
// int compare(const basic_string& str) const
// int compare(const basic_string& str) const // constexpr since C++20
#include <string>
#include <cassert>
@@ -33,7 +35,7 @@ test(const S& s, const S& str, int x)
assert(sign(s.compare(str)) == sign(x));
}
bool test() {
TEST_CONSTEXPR_CXX20 bool test() {
{
typedef std::string S;
test(S(""), S(""), 0);
@@ -89,7 +91,7 @@ int main(int, char**)
{
test();
#if TEST_STD_VER > 17
// static_assert(test());
static_assert(test());
#endif
return 0;