プログラム中に HTML とか埋め込むためのテンプレートエンジン picotemplate を作った件 - kazuhoのメモ置き場例えばこんなのどうだろう
たとえばドキュメント生成ツールなんかを作ってると、HTML をプログラムの中で生成したい!ってことは良くあると思います。でも、そのためにいちいちテンプレートエンジンを使うのは大げさな場合も多いですよね。たとえば、ちょっとリストを出力するとき。以下のような感じのコードを書いたことがある人は多いと思います。
http://d.hatena.ne.jp/kazuhooku/20120726/1343290960
#include <string>
#include <list>
#include <iostream>
#define _(...) std::string(#__VA_ARGS__)
int
main() {
std::list<std::string> list = {
"foo", "bar", "baz"
};
std::string code = _( <ul class="mylist">\n );
for (auto i = list.begin(); i != list.end(); ++i) {
code += _( <li class="mylist-item"> ) + *i + _( </li>\n );
}
code += _( </ul> );
std::cout << code << std::endl;
}
出力結果
<ul class="mylist">
<li class="mylist-item">foo</li>
<li class="mylist-item">bar</li>
<li class="mylist-item">baz</li>
</ul>
いや、エスケープとか全く考えてないけどね。