【问题标题】:How to figure out the length of the result of `fmt::format` without running it?如何在不运行的情况下计算`fmt::format`结果的长度?
【发布时间】:2022-01-13 16:58:47
【问题描述】:

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

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

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

【问题讨论】:

    标签: c++ fmt


    【解决方案1】:

    直接来自API documentation

    template<typename ...T>  
    auto fmt::formatted_size(format_string<T...> fmt, T&&... args) -> size_t  
    

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

    【讨论】:

    • ... 哦。谢谢!我有一个改进的答案......
    猜你喜欢
    • 2022-06-24
    • 2020-05-13
    • 2013-06-22
    • 1970-01-01
    • 2015-10-28
    • 2022-01-20
    • 2018-05-21
    • 2019-05-02
    • 2018-07-26
    相关资源
    最近更新 更多