138590b38SEric Fiselier //===----------------------------------------------------------------------===//
238590b38SEric Fiselier //
357b08b09SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
457b08b09SChandler Carruth // See https://llvm.org/LICENSE.txt for license information.
557b08b09SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
638590b38SEric Fiselier //
738590b38SEric Fiselier //===----------------------------------------------------------------------===//
838590b38SEric Fiselier 
931cbe0f2SLouis Dionne // UNSUPPORTED: c++03
1038590b38SEric Fiselier 
1138590b38SEric Fiselier // <string>
1238590b38SEric Fiselier 
1338590b38SEric Fiselier // basic_string<charT,traits,Allocator>&
1438590b38SEric Fiselier //   operator=(basic_string<charT,traits,Allocator>&& str);
1538590b38SEric Fiselier 
1638590b38SEric Fiselier #include <string>
1738590b38SEric Fiselier #include <cassert>
1838590b38SEric Fiselier 
1938590b38SEric Fiselier #include "test_macros.h"
2038590b38SEric Fiselier 
21*e85018b7SNikolas Klauser bool test() {
2238590b38SEric Fiselier   // Test that assignment from {} and {ptr, len} are allowed and are not
2338590b38SEric Fiselier   // ambiguous.
2438590b38SEric Fiselier   {
2538590b38SEric Fiselier     std::string s = "hello world";
2638590b38SEric Fiselier     s = {};
2738590b38SEric Fiselier     assert(s.empty());
2838590b38SEric Fiselier   }
2938590b38SEric Fiselier   {
3038590b38SEric Fiselier     std::string s = "hello world";
3138590b38SEric Fiselier     s = {"abc", 2};
3238590b38SEric Fiselier     assert(s == "ab");
3338590b38SEric Fiselier   }
342df59c50SJF Bastien 
35*e85018b7SNikolas Klauser   return true;
36*e85018b7SNikolas Klauser }
37*e85018b7SNikolas Klauser 
38*e85018b7SNikolas Klauser int main(int, char**)
39*e85018b7SNikolas Klauser {
40*e85018b7SNikolas Klauser   test();
41*e85018b7SNikolas Klauser #if TEST_STD_VER > 17
42*e85018b7SNikolas Klauser   // static_assert(test());
43*e85018b7SNikolas Klauser #endif
44*e85018b7SNikolas Klauser 
452df59c50SJF Bastien   return 0;
4638590b38SEric Fiselier }
47