Fix ofstream handling in msvc

This commit is contained in:
Victor Zverovich 2022-06-16 14:56:45 -07:00
parent fb991e9d3b
commit eaa8efb950
2 changed files with 10 additions and 1 deletions

View File

@ -82,7 +82,9 @@ template class filebuf_access<filebuf_access_tag,
&filebuf_type::_Myfile>;
inline bool write(std::filebuf& buf, fmt::string_view data) {
print(get_file(buf), data);
FILE* f = get_file(buf);
if (!f) return false;
print(f, data);
return true;
}
inline bool write(std::wfilebuf&, fmt::basic_string_view<wchar_t>) {

View File

@ -5,6 +5,8 @@
//
// For the license information refer to format.h.
#include <fstream>
#include "fmt/format.h"
using fmt::runtime;
@ -297,3 +299,8 @@ TEST(ostream_test, is_formattable) {
EXPECT_TRUE(fmt::is_formattable<std::string>());
EXPECT_TRUE(fmt::is_formattable<fmt::detail::std_string_view<char>>());
}
TEST(ostream_test, closed_ofstream) {
std::ofstream ofs;
fmt::print(ofs, "discard");
}