exp777.hatenablog.com

頭の中はゲームでいっぱい

天つゆより塩のほうが好み

って天ぷらの話じゃなくてテンプレートの話なんですが。
C++は僕の中では一番長く使っている言語なのですが、恥ずかしながら昨日初めてtemplateを使いました。いやーだって個人で作ってるとあんまり使う機会がないじゃないですか。そんなことないですか。
使ってみてマクロの親戚っぽいニオイを感じました。でもマクロはソースの文字列を置き換えるだけなんでちょっと違いますね。*1
テンプレートメタプログラミング、ちょっと調べてみましたがおもしろいですね。

メタ関数では、引数として型または定数値を受け取り、返却値として型または定数値を返します。

http://cppemb.blog17.fc2.com/blog-entry-90.html

この解説で感覚がつかめました。型に関する処理を書けるのが強力そうです。配列の各要素に対するforループの展開は僕も昨日作りました。
つーかこれ、もはやC++じゃねえ! 普通のC++の文法がうずまきナルトならテンプレートメタプログラミングは九尾。

*1:[http://ja.wikipedia.org/wiki/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%A1%E3%82%BF%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0:title=Wikipedia]を見て書きました^^