如何连接格式字符串?
Posted
技术标签:
【中文标题】如何连接格式字符串?【英文标题】:How to concatenate the format string? 【发布时间】:2020-06-11 07:46:03 【问题描述】:我想连接两个字符串并将它们用作fmt
库的格式字符串。
显而易见的选择之一是将它们简单地连接为常规字符串,然后将它们传递到库中:
template<typename... Args>
inline void catfmt(std::string a, std::string b, const Args &... args)
std::string c = a+b;
fmt::print(c, args...);
但是,c
将被丢弃。那么也许 fmt 提供了一种完全跳过它的方法?有没有办法在消息中放置一个字符串并告诉库它也应该被解析?比如:
template<typename... Args>
inline void catfmt(std::string a, std::string b, const Args &... args)
fmt::print(":sf:sf", a, b, args...);
:sf
的意思是:放置一个字符串并将其用作格式。
【问题讨论】:
【参考方案1】:有没有办法在消息中放置一个字符串并告诉库它也应该被解析?
没有这样的方法。您必须使用 operator+
连接它,这是对格式的嵌套调用
fmt::print(fmt::format("", a, b), args...);
或其他方法。
【讨论】:
以上是关于如何连接格式字符串?的主要内容,如果未能解决你的问题,请参考以下文章