]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc
libstdc++: Ensure c++NN effective target present in all C++17 tests
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 21_strings / basic_string_view / inserters / pod / 10081-out.cc
CommitLineData
ca8f2cb1 1// { dg-options "-std=gnu++17" }
6458742a 2// { dg-do run { target c++17 } }
ca8f2cb1 3
8d9254fc 4// Copyright (C) 2013-2020 Free Software Foundation, Inc.
ca8f2cb1
VV
5//
6// This file is part of the GNU ISO C++ Library. This library is free
7// software; you can redistribute it and/or modify it under the
8// terms of the GNU General Public License as published by the
9// Free Software Foundation; either version 3, or (at your option)
10// any later version.
11
12// This library is distributed in the hope that it will be useful,
13// but WITHOUT ANY WARRANTY; without even the implied warranty of
14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15// GNU General Public License for more details.
16
17// You should have received a copy of the GNU General Public License along
18// with this library; see the file COPYING3. If not see
19// <http://www.gnu.org/licenses/>.
20
21// class basic_istream::sentry
22
23#include <string_view>
24#include <ostream>
25#include <sstream>
26#include <locale>
27#include <typeinfo>
28#include <testsuite_hooks.h>
29#include <testsuite_character.h>
30
31void
32test01()
33{
34 using namespace std;
35
36 using __gnu_test::pod_ushort;
37 typedef basic_string_view<pod_ushort> string_type;
38 typedef basic_stringbuf<pod_ushort> stringbuf_type;
39 typedef basic_ostream<pod_ushort> ostream_type;
40
ca8f2cb1
VV
41 string_type str;
42 stringbuf_type strbuf01;
43 ostream_type stream(&strbuf01);
44
45 try
46 {
47 stream << str;
48 }
49 catch (std::bad_cast& obj)
50 {
51 // Ok, throws bad_cast because locale has no ctype facet.
52 }
53 catch (...)
54 {
55 VERIFY( false );
56 }
57
58 const std::locale loc(std::locale::classic(), new std::ctype<pod_ushort>);
59 stream.imbue(loc);
60 try
61 {
62 stream << str;
63 }
64 catch (...)
65 {
66 VERIFY( false );
67 }
68}
69
70int
71main()
72{
73 test01();
74
75 return 0;
76}