如何在不运行“fmt::format”的情况下计算出结果的长度?

Mar*_*ler 6 c++ fmt

在回答有关将二维字符串数组打印到表中的问题时,我意识到

我还没有找到更好的方法来确定fmt::format实际格式化为字符串并检查该字符串的长度的调用结果的长度。

这是设计使然,还是有更有效的方法来实现这一点?我不太了解 fmtlib 的内部结构,但我想,在内存分配发生之前就知道结果的长度。我特别想避免内存分配。

Bot*_*tje 13

直接来自API 文档

template<typename ...T>  
auto fmt::formatted_size(format_string<T...> fmt, T&&... args) -> size_t  
Run Code Online (Sandbox Code Playgroud)

返回 的输出中的字符数format(fmt, args...)