C++テンプレートメタプログラミング(MPL)とは? †
テンプレートメタプログラミングとは、C++のテンプレート(template)を使って、コンパイル時に様々な処理を行ってしまうテクニックです。
テンプレートメタプログラミングのメリット †
- ビルド時に処理されるため、エラーや不具合を実行時まで持ち越さない -- ビルド時でバッギングが可能
- テンプレートによって実現されるため、実行速度が速い。-- マクロが展開されるため最適化されやすい
- ユーザーが作ったクラスをプラグインしたり、機能拡張が容易 -- 拡張しても処理速度は落ちない
- 通常のプログラミングでは非常に困難な処理を実現できる -- たとえば、コードジェネレーターのような機能も実現可能