move_assign.pass.cpp revision 13aaf422e49fa4b66642966bfc6078b5d9adde12
11c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák//===----------------------------------------------------------------------===// 21c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák// 31c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák// The LLVM Compiler Infrastructure 41c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák// 51c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák// This file is dual licensed under the MIT and the University of Illinois Open 61c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák// Source Licenses. See LICENSE.TXT for details. 71c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák// 81c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák//===----------------------------------------------------------------------===// 91c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák 101c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák// <fstream> 111c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák 121c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák// template <class charT, class traits = char_traits<charT> > 131c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák// class basic_ofstream 141c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák 151c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák// basic_ofstream& operator=(basic_ofstream&& rhs); 161c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák 171c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák#include <fstream> 18#include <cassert> 19 20int main() 21{ 22#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES 23 char temp[L_tmpnam]; 24 tmpnam(temp); 25 { 26 std::ofstream fso(temp); 27 std::ofstream fs; 28 fs = move(fso); 29 fs << 3.25; 30 } 31 { 32 std::ifstream fs(temp); 33 double x = 0; 34 fs >> x; 35 assert(x == 3.25); 36 } 37 remove(temp); 38 { 39 std::wofstream fso(temp); 40 std::wofstream fs; 41 fs = move(fso); 42 fs << 3.25; 43 } 44 { 45 std::wifstream fs(temp); 46 double x = 0; 47 fs >> x; 48 assert(x == 3.25); 49 } 50 remove(temp); 51#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES 52} 53