1、ctemplate進階【轉自1】
Modifier(修改器),普通變量的類型(html,js或者其他),會進行校驗和編碼處理,比如html類型會将&轉換成&。類型有html,pre,url query,javascript,css和json。如果覺得在模闆變量中定義這些麻煩,可以在加載模闆是使用google::Template::GetTemplateWithAutoEscaping()方法,使用自動替換模式,指定是Html,js還是css。你可以編寫你自己的modifier,來處理一些特殊的需求。
Strip(清除器),模闆中有一些空行和空白字元,在加載時,可以指定參數,是否需要清除。如google::STRIP_BLANK_LINES,google::STRIP_WHITESPACE。
ExpandEmitter,在ctemplate中有這個接口,這個接口是在展開模闆時,輸出資料用的,預設實作了std::string版本的StringEmitter,這種方式是處理完畢後,才能發送到用戶端,std::string性能并不高。如果你要一個高效率的Web伺服器,則可以用流式的模式。比如自己實作ExpandEmitter接口,實作資料流式發送到客戶浏覽器。
字典copy,如果兩個字典很類似,可以copy一個字典,然後修改,調用dict->MakeCopy()。
參考