C++テンプレートメタプログラミング(MPL)とは?

テンプレートメタプログラミングとは、C++のテンプレート(template)を使って、コンパイル時に様々な処理を行ってしまうテクニックです。

テンプレートメタプログラミングのメリット

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

テンプレートメタプログラミングのデメリット

  1. ビルド時間が長くなる -- コーディングとデバッグのサイクルがしんどくなる
  2. エラーメッセージが意味不明 -- コンパイラに頑張ってほしいです
  3. 難解なコードになりがち -- 綺麗に書けばなんとか読めます

テンプレートメタプログラミングの例

簡単な例をいくつか紹介します


[ 戻る ]

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS