letsboost::メタプログラミング

トップページ

概要

普通のプログラミングは、実行コードを生成するための作業です。 対して、メタプログラミングは、プログラム言語のコードを生成するための作業、 とでも言いましょうか。一つは defineinclude を駆使することで、C++ソースの繰り返し記述を自動化する preprocessor ライブラリ。

もう一つは、template 上で関数、イテレータ、条件分岐、 他色々を実現することで、コンパイル時に(プリプロセッサと違って C++ の意味論を無視せずに)複雑な処理を行わせる MetaProgramming ライブラリ。

内容

call_traits
引数型の参照 & の自動処理
concept_check
テンプレート引数型に対する表明
mpl
テンプレートメタプログラミング用、データ構造とアルゴリズム
enable_if
メタプログラムによるオーバーロード制御
function_types
関数の型に関する情報取得や操作いろいろ
preprocessor
プリプロセッサ・メタプログラミング
proto
Expression Template構築ライブラリ
result_of
関数適用の結果の型を計算
static_assert
コンパイル時 assert
type_traits
型に関する情報取得や操作いろいろ
presented by k.inaba (kiki .a.t. kmonos.net) under CC0