実行時型情報
読み:じっこうじかたじょうほう
外語:RTTI: Run Time Type Information

 プログラム実行時に型の情報を得る機能のこと。RTTIともいう。
目次

概要
 C++のようなオブジェクト指向プログラミング言語では、ポリモルフィズムに対応している。
 この機能では、実行されるまで型が分からないオブジェクトが存在しうる。
 このような場合、コンパイル時点ではその型が分からないため、実行時型情報という機能を用い、実行中にその型を調べる必要が生じる。

特徴

該当
 C++の場合、次のようなものが該当する。
 また、ISO/IEC 14882:2011(C++11)からは以下が追加される。
 プログラムサイズの増加や実行速度の低下など、パフォーマンスを落とすので、処理系によっては指定無しの場合は無効になっていることもある。

処理コスト
 dynamic_castを使えば型キャスト(型変換)が可能。
 これはstatic_castとは違い、コンパイルの時点では型が分からないので、実行段階で処理が行なわれる。そのためのコードとそれを呼び出すコードは実行ファイルに含まれることになるため、その分のサイズと処理速度のコストがある。管理情報としてtype_infoクラスも含まれるため、その分のサイズも増えることになる。
 処理速度については、static_castは単なるコンパイラーへの指示に過ぎずバイナリ段階では何も残らないため0と考えられるが、dynamic_castはコンパイラーによってはかなりの時間を要するようである。

再検索