回答我自己的问题,解决方案实际上很简单。 std::format_to
可以写入输出迭代器,因此所需要的只是构造一个合适的迭代器。
#include <iostream>
#include <iterator>
#include <format>
int main()
{
std::ostream_iterator<char> out(std::cout); // Create an output iterator that writes to std::cout
// Replace std::cout with an ostream to write to a file
std::format_to(out, "Hello {}!\n", "world");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
请注意,如果我们得到 C++23 中的承诺,这当然将变得完全没有必要std::print()
。但这是一个有效的临时解决方案。