]>
git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/testsuite/27_io/ostream_manip.cc
3 // Copyright (C) 1994, 1999, 2000 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 2, 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 COPYING. If not, write to the Free
18 // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
21 // 27.6.2.7 standard basic_ostream manipulators
26 #include <testsuite_hooks.h>
32 const char str_lit01
[] = " venice ";
33 const std::string
str01(" santa barbara ");
34 std::string
str02(str_lit01
);
37 std::ios_base::iostate flag1
, flag2
, flag3
, flag4
, flag5
;
39 // template<_CharT, _Traits>
40 // basic_ostream<_CharT, _Traits>& endl(basic_ostream<_Char, _Traits>& os)
41 std::ostringstream
oss01(str01
);
42 std::ostringstream oss02
;
43 std::ostringstream::int_type i01
, i02
;
44 typedef std::ostringstream::traits_type traits_type
;
48 VERIFY( str04
.size() == str01
.size() );
52 VERIFY( str05
.size() == 1 );
54 // template<_CharT, _Traits>
55 // basic_ostream<_CharT, _Traits>& ends(basic_ostream<_Char, _Traits>& os)
58 VERIFY( str04
.size() == str01
.size() );
59 VERIFY( str04
[1] == char() );
63 VERIFY( str05
.size() == 2 );
64 VERIFY( str05
[1] == char() );
66 // template<_CharT, _Traits>
67 // basic_ostream<_CharT, _Traits>& flush(basic_ostream<_Char, _Traits>& os)
70 VERIFY( str04
.size() == str01
.size() );
74 VERIFY( str05
.size() == 2 );
83 // based vaguely on this:
84 // http://gcc.gnu.org/ml/libstdc++/2000-q2/msg00109.html
88 typedef ostringstream::int_type int_type
;
91 ostringstream osst_01
;
92 const string
str_00("herbie_hancock");
93 int_type len1
= str_00
.size();
95 VERIFY( osst_01
.str().size() == len1
);
99 const string
str_01("speak like a child");
100 int_type len2
= str_01
.size();
102 int_type len3
= osst_01
.str().size();
103 VERIFY( len1
< len3
);
104 VERIFY( len3
== len1
+ len2
+ 1 );
108 const string
str_02("+ inventions and dimensions");
109 int_type len4
= str_02
.size();
111 int_type len5
= osst_01
.str().size();
112 VERIFY( len3
< len5
);
113 VERIFY( len5
== len3
+ len4
+ 1 );