【发布时间】: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} 的意思是:放置一个字符串并将其用作格式。
【问题讨论】:
标签: c++ formatting fmt