move_assign.pass.cpp revision 256813f4e7915d64776a4edd5f4765d893b9f062
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_filebuf 14 15// basic_filebuf& operator=(basic_filebuf&& rhs); 16 17#include <fstream> 18#include <cassert> 19 20int main() 21{ 22#ifdef _LIBCPP_MOVE 23 { 24 std::filebuf f; 25 assert(f.open("test.dat", std::ios_base::out | std::ios_base::in 26 | std::ios_base::trunc) != 0); 27 assert(f.is_open()); 28 assert(f.sputn("123", 3) == 3); 29 f.pubseekoff(1, std::ios_base::beg); 30 assert(f.sgetc() == '2'); 31 std::filebuf f2; 32 f2 = move(f); 33 assert(!f.is_open()); 34 assert(f2.is_open()); 35 assert(f2.sgetc() == '2'); 36 } 37 remove("test.dat"); 38 { 39 std::wfilebuf f; 40 assert(f.open("test.dat", std::ios_base::out | std::ios_base::in 41 | std::ios_base::trunc) != 0); 42 assert(f.is_open()); 43 assert(f.sputn(L"123", 3) == 3); 44 f.pubseekoff(1, std::ios_base::beg); 45 assert(f.sgetc() == L'2'); 46 std::wfilebuf f2; 47 f2 = move(f); 48 assert(!f.is_open()); 49 assert(f2.is_open()); 50 assert(f2.sgetc() == L'2'); 51 } 52 remove("test.dat"); 53#endif // _LIBCPP_MOVE 54} 55