From 4e0c8667d3bffc5e05abfcfecc5c2e6629336a39 Mon Sep 17 00:00:00 2001 From: Ihor Dutchak Date: Fri, 14 Oct 2022 12:30:48 +0300 Subject: [PATCH] attempt to make the compiler happy --- include/fmt/os.h | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/include/fmt/os.h b/include/fmt/os.h index 2a7ebead..f9cee262 100644 --- a/include/fmt/os.h +++ b/include/fmt/os.h @@ -379,7 +379,7 @@ struct ostream_params { # endif }; -class ostream_buffer final : public detail::buffer { +template class file_buffer final : public detail::buffer { file file_; void grow(size_t) override { @@ -387,25 +387,27 @@ class ostream_buffer final : public detail::buffer { } public: - ostream_buffer(cstring_view path, const detail::ostream_params& params) + file_buffer(cstring_view path, const detail::ostream_params& params) : file_(path, params.oflag) { - set(new char[params.buffer_size], params.buffer_size); + detail::buffer::set(new Char[params.buffer_size], params.buffer_size); } - ostream_buffer(ostream_buffer&& other) - : detail::buffer(other.data(), other.size(), other.capacity()), + file_buffer(file_buffer&& other) + : detail::buffer(other.data(), other.size(), other.capacity()), file_(std::move(other.file_)) { other.clear(); other.set(nullptr, 0); } - ~ostream_buffer() { + ~file_buffer() { flush(); - delete[] data(); + delete[] detail::buffer::data(); } void flush() { - if (size() == 0) return; - file_.write(data(), size()); - clear(); + if (detail::buffer::size() == 0) return; + file_.write( + detail::buffer::data(), + detail::buffer::size() * sizeof(detail::buffer::data()[0])); + detail::buffer::clear(); } void close() { @@ -424,7 +426,7 @@ constexpr detail::buffer_size buffer_size{}; class FMT_API ostream final { private: FMT_MSC_WARNING(suppress : 4251) - detail::ostream_buffer buffer_; + detail::file_buffer buffer_; ostream(cstring_view path, const detail::ostream_params& params) : buffer_(path, params) {}