1// 1999-09-20 bkoz 2 3// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009 4// Free Software Foundation, Inc. 5// 6// This file is part of the GNU ISO C++ Library. This library is free 7// software; you can redistribute it and/or modify it under the 8// terms of the GNU General Public License as published by the 9// Free Software Foundation; either version 3, or (at your option) 10// any later version. 11 12// This library is distributed in the hope that it will be useful, 13// but WITHOUT ANY WARRANTY; without even the implied warranty of 14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15// GNU General Public License for more details. 16 17// You should have received a copy of the GNU General Public License along 18// with this library; see the file COPYING3. If not see 19// <http://www.gnu.org/licenses/>. 20 21 22// 27.4.3 template class fpos 23 24#include <cwchar> // for mbstate_t 25#include <ios> 26#include <cstring> 27#include <testsuite_hooks.h> 28 29void test01() 30{ 31 bool test __attribute__((unused)) = true; 32 33 typedef std::mbstate_t state_type; 34 state_type state01 = state_type(); 35 state_type state02 = state_type(); 36 37 std::streampos pos01(0); 38 std::streampos pos02(0); 39 40 // 27.4.3.1 fpos members 41 // void state(state_type s); 42 // state_type state(); 43 44 // XXX Need to have better sanity checking for the mbstate_t type, 45 // or whatever the insantiating type for class fpos happens to be 46 // for streampos, as things like equality operators and assignment 47 // operators, increment and deincrement operators need to be in 48 // place. 49 pos01.state(state02); 50 state01 = pos01.state(); 51 test = std::memcmp(&state01, &state02, sizeof(state_type)) == 0; 52 VERIFY( test ); 53} 54 55int main() 56{ 57 test01(); 58 return 0; 59} 60