brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 1a45036 Raw
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