问题描述
我们正在切换到fmt库,旨在重写许多基于宽字符输出流的格式。
我发现fmt::output_file
返回了一个class ostream : private detail::buffer<char>
实例,但似乎不支持wchar_t。
我能想到的唯一方法是手动打开std::wofstream
并使用fmt::format
。
这是在路线图上还是我缺少什么?
解决方法
fmt/ostream.h
提供了一个fmt::print
重载,可以写入wofstream
:
#include <fmt/ostream.h>
#include <fstream>
int main() {
std::wofstream ofs("foo");
fmt::print(ofs,L"The answer is {}.\n",42);
}
也就是说,如果您担心可移植性和性能,建议不要使用wchar_t
。