我尝试做一个小胡子渲染器:
std::string Mustache::render(const std::string& tmplt,const std::map<std::string,std::string>& context)
{
std::string result = tmplt;
for(std::map<std::string,std::string>::const_iterator it=context.begin(); it!=context.end(); ++it)
{
std::regex reg("({{"+it->first+"}})");
result = std::regex_replace(result,reg,std::string(it->second));
}
return result;
}
我用以下代码测试此代码:
std::map<std::string, std::string> context;
context["test"] = "render-test";
std::cout << Mustache::render("It's a simple {{test}}");
但它返回
这是一个简单的{{test}}
而不是
这是一个简单的渲染测试
你看到了什么问题吗?
由于
答案 0 :(得分:0)
尝试
std::cout << Mustache::render("It's a simple {{test}}", context);
而不是
std::cout << Mustache::render("It's a simple {{test}}");