Remove old autovect-branch by moving to "dead" directory.
[official-gcc.git] / old-autovect-branch / libstdc++-v3 / testsuite / 27_io / basic_istream / extractors_arithmetic / char / 08.cc
blob53dcff0129492a31d033e95d9212ba0454381f58
1 // 1999-04-12 bkoz
3 // Copyright (C) 1999, 2000, 2002, 2003 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 2, or (at your option)
9 // any later version.
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, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
19 // USA.
21 // 27.6.1.2.2 arithmetic extractors
23 #include <istream>
24 #include <sstream>
25 #include <locale>
26 #include <testsuite_hooks.h>
28 namespace std {
29 class test_numpunct2 : public numpunct<char>
31 protected:
32 string
33 do_grouping() const
34 { return string("\002\003"); }
36 } // namespace std
38 void test08()
40 // manufactured locale, grouping is turned on
41 bool test __attribute__((unused)) = true;
42 unsigned int h4 = 0, h3 = 0, h2 = 0;
43 const std::string s1("1,22 205,19 22,123,22");
45 std::istringstream is(s1);
46 is.imbue(std::locale(std::locale(), new std::test_numpunct2));
48 // Basic operation.
49 is >> h4;
50 VERIFY( h4 == 122 );
51 VERIFY( is.good() );
53 is.clear();
54 is >> h3;
55 VERIFY( h3 == 20519 );
56 VERIFY( is.good() );
58 is.clear();
59 is >> h2;
60 VERIFY( h2 == 2212322 );
61 VERIFY( static_cast<bool>(is.rdstate() & std::ios_base::eofbit) );
64 int main()
66 test08();
67 return 0;