]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/1.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 27_io / basic_stringstream / str / char / 1.cc
CommitLineData
23cac885 1// 2001-05-24 Benjamin Kosnik <bkoz@redhat.com>
b2dad0e3 2
a945c346 3// Copyright (C) 2001-2024 Free Software Foundation, Inc.
b2dad0e3
BK
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
748086b7 8// Free Software Foundation; either version 3, or (at your option)
b2dad0e3
BK
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
748086b7
JJ
17// with this library; see the file COPYING3. If not see
18// <http://www.gnu.org/licenses/>.
b2dad0e3 19
23cac885 20// 27.7.6 member functions (stringstream_members)
b2dad0e3 21
b2dad0e3 22#include <sstream>
fe413112 23#include <testsuite_hooks.h>
b2dad0e3 24
b2dad0e3
BK
25void test01()
26{
23cac885 27 std::stringstream is01;
d422980b 28 const std::string str00;
b2dad0e3
BK
29 const std::string str01 = "123";
30 std::string str02;
31 const int i01 = 123;
9c5093d1 32 int a = 0, b = 0;
b2dad0e3 33
ba43cf0b 34 std::ios_base::iostate state1, state2, stateeof;
b2dad0e3 35 stateeof = std::ios_base::eofbit;
d422980b
BK
36
37 // string str() const
38 str02 = is01.str();
39 VERIFY( str00 == str02 );
40
b2dad0e3
BK
41 // void str(const basic_string&)
42 is01.str(str01);
d422980b
BK
43 str02 = is01.str();
44 VERIFY( str01 == str02 );
b2dad0e3
BK
45 state1 = is01.rdstate();
46 is01 >> a;
47 state2 = is01.rdstate();
3dd50c74 48 VERIFY( a == i01 );
b2dad0e3
BK
49 // 22.2.2.1.2 num_get virtual functions
50 // p 13
51 // in any case, if stage 2 processing was terminated by the test for
52 // in == end then err != ios_base::eofbit is performed.
aa1b2f7d
BV
53 VERIFY( state1 != state2 );
54 VERIFY( state2 == stateeof );
b2dad0e3
BK
55
56 is01.str(str01);
57 is01 >> b;
aa1b2f7d 58 VERIFY( b != a );
b2dad0e3
BK
59 // as is01.good() is false, istream::sentry blocks extraction.
60
61 is01.clear();
62 state1 = is01.rdstate();
63 is01 >> b;
64 state2 = is01.rdstate();
aa1b2f7d
BV
65 VERIFY( b == a );
66 VERIFY( state1 != state2 );
67 VERIFY( state2 == stateeof );
d422980b
BK
68}
69
b2dad0e3
BK
70int main()
71{
72 test01();
73 return 0;
74}