brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · af67bbe Raw
68 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// UNSUPPORTED: c++03, c++1110// UNSUPPORTED: no-localization11 12// <experimental/iterator>13//14// template <class _Delim, class _CharT = char, class _Traits = char_traits<_CharT>>15//   class ostream_joiner;16//17//     ostream_joiner(ostream_type& __os, _Delim&& __d);18//     ostream_joiner(ostream_type& __os, const _Delim& __d);19 20#include <experimental/iterator>21#include <iostream>22#include <string>23 24#include "test_macros.h"25 26namespace exper = std::experimental;27 28int main(int, char**) {29    const char eight = '8';30    const std::string nine = "9";31#ifndef TEST_HAS_NO_WIDE_CHARACTERS32    const std::wstring ten = L"10";33#endif34    const int eleven = 11;35 36    // Narrow streams w/rvalues37    { exper::ostream_joiner<char>         oj(std::cout, '8'); }38    { exper::ostream_joiner<std::string>  oj(std::cout, std::string("9")); }39#ifndef TEST_HAS_NO_WIDE_CHARACTERS40    { exper::ostream_joiner<std::wstring> oj(std::cout, std::wstring(L"10")); }41#endif42    { exper::ostream_joiner<int>          oj(std::cout, 11); }43 44    // Narrow streams w/lvalues45    { exper::ostream_joiner<char>         oj(std::cout, eight); }46    { exper::ostream_joiner<std::string>  oj(std::cout, nine); }47#ifndef TEST_HAS_NO_WIDE_CHARACTERS48    { exper::ostream_joiner<std::wstring> oj(std::cout, ten); }49#endif50    { exper::ostream_joiner<int>          oj(std::cout, eleven); }51 52#ifndef TEST_HAS_NO_WIDE_CHARACTERS53    // Wide streams w/rvalues54    { exper::ostream_joiner<char, wchar_t>         oj(std::wcout, '8'); }55    { exper::ostream_joiner<std::string, wchar_t>  oj(std::wcout, std::string("9")); }56    { exper::ostream_joiner<std::wstring, wchar_t> oj(std::wcout, std::wstring(L"10")); }57    { exper::ostream_joiner<int, wchar_t>          oj(std::wcout, 11); }58 59    // Wide streams w/lvalues60    { exper::ostream_joiner<char, wchar_t>         oj(std::wcout, eight); }61    { exper::ostream_joiner<std::string, wchar_t>  oj(std::wcout, nine); }62    { exper::ostream_joiner<std::wstring, wchar_t> oj(std::wcout, ten); }63    { exper::ostream_joiner<int, wchar_t>          oj(std::wcout, eleven); }64#endif65 66  return 0;67}68