CTemplate是Google开源的一个使用简单但功能很强大的C++模板库,本文简单介绍其的使用。
入门示例
模板库一般用来隔离数据和展现,这样可以减少数据和展现之间的耦合,使其可以相互独立变化,减少耦合,增加代码的复用,下面我们先看一个简单的例子,模板如下:
Hello {
{NAME}},
You have just won ${
{VALUE}}!
{
{#IN_CA}}Well, ${
{TAXED_VALUE}}, after taxes.{
{/IN_CA}}
对应的C++代码是:
#include <cstdlib>
#include <iostream>
#include <string>
#include <ctemplate/template.h>
int main() {
ctemplate::TemplateDictionary dict("example");
int winnings = rand() % 100000;
dict["NAME"] = "John Smith";
dict["VALUE"] = winnings;
dict.SetFormattedValue("TAXED_VALUE", "%.2f", winnings * 0.83);
// For now, assume everyone lives in CA.
// (Try running the program with a 0 here ins