1 //===----------------------------------------------------------------------===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is dual licensed under the MIT and the University of Illinois Open
6 // Source Licenses. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 // <fstream>
11 
12 // template <class charT, class traits = char_traits<charT> >
13 // class basic_ofstream
14 
15 // basic_ofstream& operator=(basic_ofstream&& rhs);
16 
17 #include <fstream>
18 #include <cassert>
19 #include "platform_support.h"
20 
main()21 int main()
22 {
23 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
24     std::string temp = get_temp_file_name();
25     {
26         std::ofstream fso(temp.c_str());
27         std::ofstream fs;
28         fs = move(fso);
29         fs << 3.25;
30     }
31     {
32         std::ifstream fs(temp.c_str());
33         double x = 0;
34         fs >> x;
35         assert(x == 3.25);
36     }
37     std::remove(temp.c_str());
38     {
39         std::wofstream fso(temp.c_str());
40         std::wofstream fs;
41         fs = move(fso);
42         fs << 3.25;
43     }
44     {
45         std::wifstream fs(temp.c_str());
46         double x = 0;
47         fs >> x;
48         assert(x == 3.25);
49     }
50     std::remove(temp.c_str());
51 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
52 }
53