member_swap.pass.cpp revision f5256e16dfc425c1d466f6308d4026d529ce9e0b
1//===----------------------------------------------------------------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10// <fstream> 11 12// template <class charT, class traits = char_traits<charT> > 13// class basic_fstream 14 15// void swap(basic_fstream& rhs); 16 17#include <fstream> 18#include <cassert> 19 20int main() 21{ 22 { 23 std::fstream fs1("test1.dat", std::ios_base::in | std::ios_base::out 24 | std::ios_base::trunc); 25 std::fstream fs2("test2.dat", std::ios_base::in | std::ios_base::out 26 | std::ios_base::trunc); 27 fs1 << 1 << ' ' << 2; 28 fs2 << 2 << ' ' << 1; 29 fs1.seekg(0); 30 fs1.swap(fs2); 31 fs1.seekg(0); 32 int i; 33 fs1 >> i; 34 assert(i == 2); 35 fs1 >> i; 36 assert(i == 1); 37 i = 0; 38 fs2 >> i; 39 assert(i == 1); 40 fs2 >> i; 41 assert(i == 2); 42 } 43 std::remove("test1.dat"); 44 std::remove("test2.dat"); 45 { 46 std::wfstream fs1("test1.dat", std::ios_base::in | std::ios_base::out 47 | std::ios_base::trunc); 48 std::wfstream fs2("test2.dat", std::ios_base::in | std::ios_base::out 49 | std::ios_base::trunc); 50 fs1 << 1 << ' ' << 2; 51 fs2 << 2 << ' ' << 1; 52 fs1.seekg(0); 53 fs1.swap(fs2); 54 fs1.seekg(0); 55 int i; 56 fs1 >> i; 57 assert(i == 2); 58 fs1 >> i; 59 assert(i == 1); 60 i = 0; 61 fs2 >> i; 62 assert(i == 1); 63 fs2 >> i; 64 assert(i == 2); 65 } 66 std::remove("test1.dat"); 67 std::remove("test2.dat"); 68} 69