1 // { dg-do compile { target c++11 } }
3 // Copyright (C) 2015-2018 Free Software Foundation, Inc.
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)
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.
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/>.
24 void operator<<(std::ostream
&, const A
&) { }
25 void operator>>(std::istream
&, A
&) { }
27 class MyStream
: private std::ostream
, private std::istream
30 MyStream
& operator <<(const char*)
34 MyStream
& operator >>(int&)
43 MyStream2
& operator <<(const char*)
47 MyStream2
& operator >>(int&)
52 operator std::ostream
&();
53 operator std::istream
&();
58 std::ostream
& operator<<(std::ostream
& os
, const X
&) { return os
; }
59 std::istream
& operator>>(std::istream
& is
, X
&&) { return is
; }
61 struct O
: std::ostream
{ };
63 void operator<<(O
&, X
) = delete;
65 struct I
: std::istream
{ };
67 void operator>>(I
&, X
) = delete;
76 std::ostringstream() << a
;
77 std::istringstream() >> a
;