1// { dg-options "-std=gnu++14" }
2
3// Copyright (C) 2013-2015 Free Software Foundation, Inc.
4//
5// This file is part of the GNU ISO C++ Library.  This library is free
6// software; you can redistribute it and/or modify it under the
7// terms of the GNU General Public License as published by the
8// Free Software Foundation; either version 3, or (at your option)
9// any later version.
10
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14// GNU General Public License for more details.
15
16// You should have received a copy of the GNU General Public License along
17// with this library; see the file COPYING3.  If not see
18// <http://www.gnu.org/licenses/>.
19
20// inserters
21
22// NB: This file is predicated on sstreams, istreams, and ostreams
23// working, not to mention other major details like char_traits, and
24// all of the string_view class.
25
26#include <experimental/string_view>
27#include <stdexcept>
28#include <sstream>
29#include <fstream>
30#include <iostream>
31#include <testsuite_hooks.h>
32
33bool
34test01()
35{
36  bool test [[gnu::unused]] = true;
37
38  typedef std::experimental::string_view::size_type csize_type;
39  typedef std::experimental::string_view::const_reference cref;
40  typedef std::experimental::string_view::reference ref;
41
42  const std::experimental::string_view str01("sailing grand traverse bay\n"
43	       "\t\t\t    from Elk Rapids to the point reminds me of miles");
44
45  // ostream& operator<<(ostream&, const basic_string_view&)
46  std::ostringstream ostrs01;
47  try
48    {
49      ostrs01 << str01;
50      VERIFY( ostrs01.str() == str01 );
51    }
52  catch(std::exception& fail)
53    {
54      VERIFY( false );
55    }
56
57  std::experimental::string_view hello_world;
58  std::cout << hello_world;
59
60  return test;
61}
62
63int
64main()
65{
66  test01();
67
68  return 0;
69}
70