42 lines · cpp
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-exception6//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_CONVERT12 13// wbuffer_convert<Codecvt, Elem, Tr>14 15// XFAIL: no-wide-characters16 17#include <cassert>18#include <codecvt>19#include <locale>20#include <sstream>21 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