C++のテンプレートだけで

先日の「C++テンプレートでLisp*1の続きは、いまも続いています。とりあえず、条件分岐(if関数)と、以前Schemeでこちょこちょとやった*2自然数、整数まわりをやっているところ。

if関数を作ったので、これを使うと表現の幅がぐっと広がるのだが、それを使うとテンプレートだけでやる面白さ(コードの変態チックさ)が激減する(何度も書くように、テンプレートで条件分岐をやるにはテンプレートの特殊化を使わなければいけない)ので、使わないようにやっている。

はてなにいちいちソースコードを貼っていては大変なので、きりのいいところまで出来たら要点を貼って、全体についてはWikiの方に整理していこうかと思う。

Boostとは違う趣旨のテンプレートライブラリができるかどうかはまだ分からない。