読者です 読者をやめる 読者になる 読者になる

C++テンプレートテクニック読了

C++テンプレートテクニック

C++テンプレートテクニック

C++のテンプレートを利用した様々なテクニックが紹介されている書籍です。

C++のテンプレートを使ったテクニックというとかなり難解なイメージがありますが、この書籍では非常に分かりやすく説明されているので、さくさくと読み進めることができました。
まぁ、本を読んで理解できたからといって、実際に書こうとすると難しいんでしょうけどね。

また、いずれのテクニックも実用で使えそうなのが良いですね。(ジェネレーティブプログラミングを読んだときは、いまいち使いどころが分からなかったので)

たとえばポリシーは、継承ではなくテンプレートパラメータを利用してクラスをカスタマイズする手法。継承だといちいちクラスを作らないといけないし、複数の属性を持たせると多重継承になってしまうので、こういう技は便利ですね。ScalaのTraitにも似てるのかな?

あとは、テンプレート型変換演算子を使って、戻り値の型が異なる関数をオーバーロードができるっていうのも面白いし、Expression TemplateやExtension Member Functionは、LINQのExpressionTree、C#の拡張メソッドを思わせます。しかし、こういう手法ってどうやって思い付けるんだろ。

最後にC++0xについても書かれていますが、コンセプトという仕組みを導入することで、テンプレートのエラーメッセージが分かりやすくなったり、型の制約がつけられるようになるらしいです。これは期待ですね。

非常に知的好奇心が刺激され、久々にC++でプログラミングしたくなる一冊でした。