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// UNSUPPORTED: c++03, c++11, c++14, c++17
10
11// <ostream>
12
13#include <ostream>
14#include <sstream>
15#include <utility>
16
17#include "test_macros.h"
18
19void f() {
20 std::ostringstream s;
21#ifndef TEST_HAS_NO_CHAR8_T
22 char8_t c8_s[] = u8"test";
23 const char8_t* c8_cs = u8"test";
24#endif
25 char16_t c16_s[] = u"test";
26 const char16_t* c16_cs = u"test";
27 char32_t c32_s[] = U"test";
28 const char32_t* c32_cs = U"test";
29
30#ifndef TEST_HAS_NO_WIDE_CHARACTERS
31 wchar_t w_s[] = L"test";
32 const wchar_t* w_cs = L"test";
33 s << wchar_t(); // expected-error {{overload resolution selected deleted operator '<<'}}
34 s << w_s; // expected-error {{overload resolution selected deleted operator '<<'}}
35 s << w_cs; // expected-error {{overload resolution selected deleted operator '<<'}}
36
37 std::wostringstream sw;
38# ifndef TEST_HAS_NO_CHAR8_T
39 sw << char8_t(); // expected-error {{overload resolution selected deleted operator '<<'}}
40 sw << c8_s; // expected-error {{overload resolution selected deleted operator '<<'}}
41 sw << c8_cs; // expected-error {{overload resolution selected deleted operator '<<'}}
42# endif
43
44 sw << char16_t(); // expected-error {{overload resolution selected deleted operator '<<'}}
45 sw << c16_s; // expected-error {{overload resolution selected deleted operator '<<'}}
46 sw << c16_cs; // expected-error {{overload resolution selected deleted operator '<<'}}
47 sw << char32_t(); // expected-error {{overload resolution selected deleted operator '<<'}}
48 sw << c32_s; // expected-error {{overload resolution selected deleted operator '<<'}}
49 sw << c32_cs; // expected-error {{overload resolution selected deleted operator '<<'}}
50
51#endif // TEST_HAS_NO_WIDE_CHARACTERS
52
53#ifndef TEST_HAS_NO_CHAR8_T
54 s << char8_t(); // expected-error {{overload resolution selected deleted operator '<<'}}
55 s << c8_s; // expected-error {{overload resolution selected deleted operator '<<'}}
56 s << c8_cs; // expected-error {{overload resolution selected deleted operator '<<'}}
57#endif
58 s << char16_t(); // expected-error {{overload resolution selected deleted operator '<<'}}
59 s << c16_s; // expected-error {{overload resolution selected deleted operator '<<'}}
60 s << c16_cs; // expected-error {{overload resolution selected deleted operator '<<'}}
61 s << char32_t(); // expected-error {{overload resolution selected deleted operator '<<'}}
62 s << c32_s; // expected-error {{overload resolution selected deleted operator '<<'}}
63 s << c32_cs; // expected-error {{overload resolution selected deleted operator '<<'}}
64}
65

source code of libcxx/test/std/input.output/iostream.format/output.streams/ostream/deleted_output_functions.verify.cpp