1// Copyright (C) 2004, 2009 Free Software Foundation, Inc. 2// 3// This file is part of the GNU ISO C++ Library. This library is free 4// software; you can redistribute it and/or modify it under the 5// terms of the GNU General Public License as published by the 6// Free Software Foundation; either version 3, or (at your option) 7// any later version. 8 9// This library is distributed in the hope that it will be useful, 10// but WITHOUT ANY WARRANTY; without even the implied warranty of 11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12// GNU General Public License for more details. 13 14// You should have received a copy of the GNU General Public License along 15// with this library; see the file COPYING3. If not see 16// <http://www.gnu.org/licenses/>. 17 18// 27.6.1.2.2 arithmetic extractors 19 20#include <istream> 21#include <sstream> 22#include <locale> 23#include <testsuite_hooks.h> 24 25// http://gcc.gnu.org/ml/libstdc++/2000-q1/msg00081.html 26// Jim Parsons 27void test06() 28{ 29 // default locale, grouping is turned off 30 bool test __attribute__((unused)) = true; 31 unsigned int h4; 32 wchar_t c; 33 std::wstring s(L"205,199,144"); 34 std::wistringstream is(s); 35 36 is >> h4; // 205 37 VERIFY( h4 == 205 ); 38 is >> c; // L',' 39 VERIFY( c == L',' ); 40 41 is >> h4; // 199 42 VERIFY( h4 == 199 ); 43 is >> c; // L',' 44 VERIFY( c == L',' ); 45 46 is >> h4; // 144 47 VERIFY( is.rdstate() == std::ios_base::eofbit ); 48 VERIFY( h4 == 144 ); 49 is >> c; // EOF 50 VERIFY( c == L',' ); 51 VERIFY( static_cast<bool>(is.rdstate() & std::ios_base::failbit) ); 52} 53 54int main() 55{ 56 test06(); 57 return 0; 58} 59