1 //===----------------------------------------------------------------------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 // <locale> 10 11 // ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS -D_LIBCPP_ENABLE_CXX26_REMOVED_CODECVT -D_LIBCPP_ENABLE_CXX26_REMOVED_WSTRING_CONVERT 12 13 // wbuffer_convert<Codecvt, Elem, Tr> 14 15 // XFAIL: no-wide-characters 16 17 #include <cassert> 18 #include <codecvt> 19 #include <locale> 20 #include <sstream> 21 main(int,char **)22int main(int, char**) { 23 std::string storage; 24 { 25 std::ostringstream bytestream; 26 std::wbuffer_convert<std::codecvt_utf8<wchar_t> > mybuf(bytestream.rdbuf()); 27 std::wostream mystr(&mybuf); 28 mystr << L"Hello" << std::endl; 29 storage = bytestream.str(); 30 } 31 { 32 std::istringstream bytestream(storage); 33 std::wbuffer_convert<std::codecvt_utf8<wchar_t> > mybuf(bytestream.rdbuf()); 34 std::wistream mystr(&mybuf); 35 std::wstring ws; 36 mystr >> ws; 37 assert(ws == L"Hello"); 38 } 39 40 return 0; 41 } 42