C++のテンプレートだけで
先日の「C++テンプレートでLisp」*1の続きは、いまも続いています。とりあえず、条件分岐(if関数)と、以前Schemeでこちょこちょとやった*2、自然数、整数まわりをやっているところ。
if関数を作ったので、これを使うと表現の幅がぐっと広がるのだが、それを使うとテンプレートだけでやる面白さ(コードの変態チックさ)が激減する(何度も書くように、テンプレートで条件分岐をやるにはテンプレートの特殊化を使わなければいけない)ので、使わないようにやっている。
はてなにいちいちソースコードを貼っていては大変なので、きりのいいところまで出来たら要点を貼って、全体についてはWikiの方に整理していこうかと思う。
Boostとは違う趣旨のテンプレートライブラリができるかどうかはまだ分からない。