如何解决C++ fmt 库部分参数替换
我有一个大模板(从文件加载),我应该在其中用实际值替换命名参数。问题是我需要在两个不同的函数中执行此操作,因此需要将部分命名参数替换为 func1()
和部分 - 在 func2()
中。
所需的行为是以下返回 myarg1 myarg2
#include <iostream>
#include <string>
#include <fmt/core.h>
std::string func1(std::string& templ) {
return fmt::format(templ,fmt::arg("arg1","myarg1"));
}
std::string func2(std::string& templ) {
return fmt::format(templ,fmt::arg("arg2","myarg2"));
}
int main() {
std::string templ = "{arg1} {arg2}";
templ = func1(templ);
templ = func2(templ);
std::cout << templ << std::endl;
}
但是我得到
terminate called after throwing an instance of 'fmt::v6::format_error' what(): argument not found
在第一个函数中。
有没有办法在 fmt
中进行部分/渐进参数替换?
解决方法
不,{fmt} 要求在一次调用中传递所有参数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。