Template Meta-Programing
Effective C++ という本を買いました。
で、Introductionに''Template Meta-Programing''という手法が書かれていたのでちょっと動作テスト。
#include <iostream> template < int I > struct kaijo; template <> struct kaijo<1> { enum { value = 1 }; }; template < int I > struct kaijo { enum { value = I * kaijo< I - 1 >::value }; }; int main( int argc, char *argv[] ) { std::cout << kaijo<5>::value << std::endl; }
うーん。
単純なプログラムなので動作の理解は出来ますが、メリットとデメリットは不明。
でも勉強する価値は高そうなので後でやろうっと。
しかし、こんな記述方法もあるんだなぁ・・・。