Fix move constructor (#1844)

This commit is contained in:
Victor Zverovich 2020-09-01 08:16:53 -07:00
parent 69902c1787
commit 6cccdc24bc
2 changed files with 9 additions and 1 deletions

View File

@ -396,7 +396,9 @@ class ostream : private detail::buffer<char> {
}
public:
ostream(ostream&& other) : file_(std::move(other.file_)) {
ostream(ostream&& other)
: detail::buffer<char>(other.data(), other.size(), other.capacity()),
file_(std::move(other.file_)) {
other.set(nullptr, 0);
}
~ostream() {

View File

@ -287,6 +287,12 @@ TEST(BufferedFileTest, Fileno) {
EXPECT_READ(copy, FILE_CONTENT);
}
TEST(OStreamTest, Move) {
fmt::ostream out = fmt::output_file("test-file");
fmt::ostream moved(std::move(out));
moved.print("hello");
}
TEST(OStreamTest, Print) {
fmt::ostream out = fmt::output_file("test-file");
out.print("The answer is {}.\n", 42);