当前位置:  软件>C/C++软件

模板引擎 ctemplate

    来源:    发布时间:2015-02-04

    本文导语:  ctemplate (Google-ctemplate)的设计哲学是轻量级,快速,且逻辑和界面分离,因此和ClearSilver和Teng是有一些差异的。比如Ctemplate就没有模板函数,没有条件判断和循环语句(当然,它可以通过变通的方式来实现)。 ctemplate大体上分...

ctemplate (Google-ctemplate)的设计哲学是轻量级,快速,且逻辑和界面分离,因此和ClearSilver和Teng是有一些差异的。比如Ctemplate就没有模板函数,没有条件判断和循环语句(当然,它可以通过变通的方式来实现)。

ctemplate大体上分为两个部分,一部分是模板,另一部分是数据字典。模板定义了界面展现的形式(V),数据字典就是填充模板的数据(M),你自己写业务逻辑去控制界面展现(C),典型的MVC模型。

ctemplate模板中有四中标记,对应的数据字典也有不同的处理方式:

  • 变量,{{变量名}},用两个大括号包含的就是变量名,在c++代码中,可以对变量赋值,任何类型的值都可以(如字符,整数,日期等)。
  • 片断,{{#片断名}},片断在数据字典中表现为一个子字典,字典是可以分级的,根字典下面有多级子字典。片断可以处理条件判断和循环。
  • 包含,{{>模板名}}包含指的是一个模板可以包含其他模板,对应的也是一个字字典。
  • 注释,{{!注释名}},包含注释。

一份演示了完整四种标记的例子如下:

Hello {{NAME}},
You have just won ${{VALUE}}!
{{#IN_CA}}Well, ${{TAXED_VALUE}}, after taxes.{{/IN_CA}}

处理的C++代码如下:

#include 
#include
#include
#include
int main(int argc, char** argv) {
google::TemplateDictionary dict("example");
dict.SetValue("NAME", "John Smith");
int winnings = rand() % 100000;
dict.SetIntValue("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 instead!)
if (1) {
dict.ShowSection("IN_CA");
}
google::Template* tpl = google::Template::GetTemplate("example.tpl",
google::DO_NOT_STRIP);
std::string output;
tpl->Expand(&output, &dict);
std::cout

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • c++模板(Template)介绍及模板参数中包含模版
  • Destoon模板怎么制作?destoon模板制作简单教程
  • c++通用模板类(template class)定义实现详细介绍
  • JavaScript模板引擎 EasyTemplate iis7站长之家
  • C++可变参数模板(variadic template)详细介绍及代码举例
  • destoon公司主页模板风格的添加方法
  • c++模板(template)常见用法代码实例
  • 模板配置系统 CoreTML
  • c++模板(template)中的class和typename关键字异同比较
  • PHP模板语言 Twig
  • C++ STL标准模板库类String成员详细列表参考及示例代码
  • C++类模板与模板类深入详解
  • 教你添加destoon公司主页模板风格方法
  • JavaScript 模板引擎 Velocity.js
  • C++模板库 C++ B-tree
  • 模板引擎 Teddy
  • javascript 模板引擎 artTemplate
  • Destoon模板制作简明教程
  • web.py中调用文件夹内模板的方法
  • web模板语言 jpc-template
  • Zend项目模板 rphp4zf


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3