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
f()19 void 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