テンプレートメタプログラミングとは、プログラミング言語のテンプレート機能を使用して、コンパイル時に決定できる内容をすべて計算してしまう手法である。
実行時のオーバーヘッドがなくなる点がよいが、可読性が損なわれることがある。
フィボナッチ数列や階乗の計算のように、帰納法を使ったものをC++で組む例が有名である。
C++ライブラリのBoostには、MPLというメタプログラミング用のライブラリが用意されている。
C++のテンプレートを, コンパイル時に走るプログラムを記述するための言語だと思うと, この言語はチューリング完全なので, 当然ラムダ計算のインタプリタを実装できるし, そのラムダ計算の項の型を推論することもできる. できるからと言って馬鹿みたいにやってしまったという話. ソースコードは末尾.