54 lines · cpp
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9// <fstream>10 11// template <class charT, class traits = char_traits<charT> >12// class basic_fstream13 14// basic_fstream& operator=(basic_fstream&& rhs);15 16#include <fstream>17#include <cassert>18#include "test_macros.h"19#include "platform_support.h"20 21int main(int, char**)22{23 std::string temp = get_temp_file_name();24 {25 std::fstream fso(temp.c_str(), std::ios_base::in | std::ios_base::out26 | std::ios_base::trunc);27 std::fstream fs;28 fs = std::move(fso);29 double x = 0;30 fs << 3.25;31 fs.seekg(0);32 fs >> x;33 assert(x == 3.25);34 }35 std::remove(temp.c_str());36 37#ifndef TEST_HAS_NO_WIDE_CHARACTERS38 {39 std::wfstream fso(temp.c_str(), std::ios_base::in | std::ios_base::out40 | std::ios_base::trunc);41 std::wfstream fs;42 fs = std::move(fso);43 double x = 0;44 fs << 3.25;45 fs.seekg(0);46 fs >> x;47 assert(x == 3.25);48 }49 std::remove(temp.c_str());50#endif51 52 return 0;53}54