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